From aa4f85e059ea47a5f52cb6e4eb8b3deeeefac706 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Wed, 18 Mar 2020 17:24:29 +0200 Subject: [PATCH 01/63] TS: remove TS-specific TData from ExecutionResult (#2490) Reverts https://github.com/DefinitelyTyped/DefinitelyTyped/pull/26763 Since we can't gurantee that response match types it was basically glorified type cast. --- src/execution/execute.d.ts | 17 +++++------------ src/graphql.d.ts | 21 +++++++-------------- src/subscription/subscribe.d.ts | 21 +++++++-------------- 3 files changed, 19 insertions(+), 40 deletions(-) diff --git a/src/execution/execute.d.ts b/src/execution/execute.d.ts index 3514e4696fe..fdb62dbb319 100644 --- a/src/execution/execute.d.ts +++ b/src/execution/execute.d.ts @@ -37,20 +37,15 @@ export interface ExecutionContext { errors: Array; } -export interface ExecutionResultDataDefault { - [key: string]: any; -} - /** * The result of GraphQL execution. * * - `errors` is included when any errors occurred as a non-empty array. * - `data` is the result of a successful execution of the query. */ -// TS_SPECIFIC: TData and ExecutionResultDataDefault -export interface ExecutionResult { +export interface ExecutionResult { errors?: ReadonlyArray; - data?: TData | null; + data?: { [key: string]: any } | null; } export type ExecutionArgs = { @@ -76,10 +71,8 @@ export type ExecutionArgs = { * * Accepts either an object with named arguments, or individual arguments. */ -export function execute( - args: ExecutionArgs, -): PromiseOrValue>; -export function execute( +export function execute(args: ExecutionArgs): PromiseOrValue; +export function execute( schema: GraphQLSchema, document: DocumentNode, rootValue?: any, @@ -88,7 +81,7 @@ export function execute( operationName?: Maybe, fieldResolver?: Maybe>, typeResolver?: Maybe>, -): PromiseOrValue>; +): PromiseOrValue; /** * Essential assertions before executing to provide developer feedback for diff --git a/src/graphql.d.ts b/src/graphql.d.ts index 90b29c9c4d4..c4ef398ba93 100644 --- a/src/graphql.d.ts +++ b/src/graphql.d.ts @@ -2,10 +2,7 @@ import Maybe from './tsutils/Maybe'; import { Source } from './language/source'; import { GraphQLSchema } from './type/schema'; import { GraphQLFieldResolver, GraphQLTypeResolver } from './type/definition'; -import { - ExecutionResult, - ExecutionResultDataDefault, -} from './execution/execute'; +import { ExecutionResult } from './execution/execute'; /** * This is the primary entry point function for fulfilling GraphQL operations @@ -53,10 +50,8 @@ export interface GraphQLArgs { typeResolver?: Maybe>; } -export function graphql( - args: GraphQLArgs, -): Promise>; -export function graphql( +export function graphql(args: GraphQLArgs): Promise; +export function graphql( schema: GraphQLSchema, source: Source | string, rootValue?: any, @@ -65,7 +60,7 @@ export function graphql( operationName?: Maybe, fieldResolver?: Maybe>, typeResolver?: Maybe>, -): Promise>; +): Promise; /** * The graphqlSync function also fulfills GraphQL operations by parsing, @@ -73,10 +68,8 @@ export function graphql( * However, it guarantees to complete synchronously (or throw an error) assuming * that all field resolvers are also synchronous. */ -export function graphqlSync( - args: GraphQLArgs, -): ExecutionResult; -export function graphqlSync( +export function graphqlSync(args: GraphQLArgs): ExecutionResult; +export function graphqlSync( schema: GraphQLSchema, source: Source | string, rootValue?: any, @@ -85,4 +78,4 @@ export function graphqlSync( operationName?: Maybe, fieldResolver?: Maybe>, typeResolver?: Maybe>, -): ExecutionResult; +): ExecutionResult; diff --git a/src/subscription/subscribe.d.ts b/src/subscription/subscribe.d.ts index a2a2d0820ec..f9af6c7e695 100644 --- a/src/subscription/subscribe.d.ts +++ b/src/subscription/subscribe.d.ts @@ -1,9 +1,6 @@ import Maybe from '../tsutils/Maybe'; import { DocumentNode } from '../language/ast'; -import { - ExecutionResult, - ExecutionResultDataDefault, -} from '../execution/execute'; +import { ExecutionResult } from '../execution/execute'; import { GraphQLSchema } from '../type/schema'; import { GraphQLFieldResolver } from '../type/definition'; @@ -38,13 +35,11 @@ export interface SubscriptionArgs { * * Accepts either an object with named arguments, or individual arguments. */ -export function subscribe( +export function subscribe( args: SubscriptionArgs, -): Promise< - AsyncIterableIterator> | ExecutionResult ->; +): Promise | ExecutionResult>; -export function subscribe( +export function subscribe( schema: GraphQLSchema, document: DocumentNode, rootValue?: any, @@ -53,9 +48,7 @@ export function subscribe( operationName?: Maybe, fieldResolver?: Maybe>, subscribeFieldResolver?: Maybe>, -): Promise< - AsyncIterableIterator> | ExecutionResult ->; +): Promise | ExecutionResult>; /** * Implements the "CreateSourceEventStream" algorithm described in the @@ -75,7 +68,7 @@ export function subscribe( * or otherwise separating these two steps. For more on this, see the * "Supporting Subscriptions at Scale" information in the GraphQL specification. */ -export function createSourceEventStream( +export function createSourceEventStream( schema: GraphQLSchema, document: DocumentNode, rootValue?: any, @@ -83,4 +76,4 @@ export function createSourceEventStream( variableValues?: { [key: string]: any }, operationName?: Maybe, fieldResolver?: Maybe>, -): Promise | ExecutionResult>; +): Promise | ExecutionResult>; From 157edcb4f7dfe9cb2acd3d82831430d983bbfbcf Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Fri, 20 Mar 2020 14:52:27 +0200 Subject: [PATCH 02/63] =?UTF-8?q?TS:=20remove=20TS-specific=20TSource=20ar?= =?UTF-8?q?gument=20for=20resolveFieldValueOr=E2=80=A6=20(#2491)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's internal function so not a breaking change --- src/execution/execute.d.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/execution/execute.d.ts b/src/execution/execute.d.ts index fdb62dbb319..46a1bc60e57 100644 --- a/src/execution/execute.d.ts +++ b/src/execution/execute.d.ts @@ -134,15 +134,18 @@ export function buildResolveInfo( path: Path, ): GraphQLResolveInfo; -// Isolates the "ReturnOrAbrupt" behavior to not de-opt the `resolveField` -// function. Returns the result of resolveFn or the abrupt-return Error object. -// TS_SPECIFIC: TSource -export function resolveFieldValueOrError( +/** + * Isolates the "ReturnOrAbrupt" behavior to not de-opt the `resolveField` + * function. Returns the result of resolveFn or the abrupt-return Error object. + * + * @internal + */ +export function resolveFieldValueOrError( exeContext: ExecutionContext, - fieldDef: GraphQLField, + fieldDef: GraphQLField, fieldNodes: ReadonlyArray, - resolveFn: GraphQLFieldResolver, - source: TSource, + resolveFn: GraphQLFieldResolver, + source: any, info: GraphQLResolveInfo, ): Error | any; From c155ae09e02d42d67373b2c7cae7ee6cf7a05fa2 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 2 Apr 2020 13:41:17 +0300 Subject: [PATCH 03/63] Move custom ESLint rules into internal package (#2498) Based on https://github.com/facebook/react/commit/30cce21ae6c4e960ea629908fc8c307e41e2bae8#diff-a7adbbe27ccec89b583ac77c28b521ac --- .eslintrc.yml | 8 ++++++++ package.json | 3 ++- resources/eslint-rules/README.md | 6 ++++++ resources/eslint-rules/index.js | 9 +++++++++ resources/eslint-rules/package.json | 4 ++++ yarn.lock | 4 ++++ 6 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 resources/eslint-rules/README.md create mode 100644 resources/eslint-rules/index.js create mode 100644 resources/eslint-rules/package.json diff --git a/.eslintrc.yml b/.eslintrc.yml index f5a76467272..6a996d30b30 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -6,10 +6,18 @@ env: node: true reportUnusedDisableDirectives: true plugins: + - graphql-internal - flowtype - import rules: + ############################################################################## + # Internal rules located in 'resources/eslint-rules'. + # See './resources/eslint-rules/README.md' + ############################################################################## + + graphql-internal/no-dir-import: error + ############################################################################## # `eslint-plugin-flowtype` rule list based on `v4.6.x` # https://github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype diff --git a/package.json b/package.json index 8618d5c1ac3..621e7fb8b94 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "test:ci": "yarn check --integrity && npm run prettier:check && npm run lint -- --no-cache && npm run check && npm run testonly:cover && npm run check:ts && npm run check:spelling && npm run build", "testonly": "mocha --full-trace src/**/__tests__/**/*-test.js", "testonly:cover": "nyc npm run testonly", - "lint": "eslint --rulesdir './resources/eslint-rules' --rule 'no-dir-import: error' --cache --ext .js,.ts src resources", + "lint": "eslint --cache --ext .js,.ts src resources", "benchmark": "node --noconcurrent_sweeping --expose-gc --predictable ./resources/benchmark.js", "prettier": "prettier --ignore-path .gitignore --write --list-different \"**/*.{js,ts,md,json,yml}\"", "prettier:check": "prettier --ignore-path .gitignore --check \"**/*.{js,ts,md,json,yml}\"", @@ -56,6 +56,7 @@ "dtslint": "3.3.0", "eslint": "6.8.0", "eslint-plugin-flowtype": "4.6.0", + "eslint-plugin-graphql-internal": "link:./resources/eslint-rules", "eslint-plugin-import": "2.20.1", "flow-bin": "0.120.1", "mocha": "7.1.0", diff --git a/resources/eslint-rules/README.md b/resources/eslint-rules/README.md new file mode 100644 index 00000000000..fd8a496025d --- /dev/null +++ b/resources/eslint-rules/README.md @@ -0,0 +1,6 @@ +# Custom ESLint Rules + +This is a dummy npm package that allows us to treat it as an `eslint-plugin-graphql-internal`. +It's not actually published, nor are the rules here useful for users of graphql. + +**If you modify this rule, you must re-run `yarn` for it to take effect.** diff --git a/resources/eslint-rules/index.js b/resources/eslint-rules/index.js new file mode 100644 index 00000000000..b8370f5772d --- /dev/null +++ b/resources/eslint-rules/index.js @@ -0,0 +1,9 @@ +// @noflow + +'use strict'; + +module.exports = { + rules: { + 'no-dir-import': require('./no-dir-import'), + }, +}; diff --git a/resources/eslint-rules/package.json b/resources/eslint-rules/package.json new file mode 100644 index 00000000000..60cbef8ee92 --- /dev/null +++ b/resources/eslint-rules/package.json @@ -0,0 +1,4 @@ +{ + "name": "eslint-plugin-graphql-internal", + "version": "0.0.0" +} diff --git a/yarn.lock b/yarn.lock index 0ff2053d3cc..c00410aa640 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1728,6 +1728,10 @@ eslint-plugin-flowtype@4.6.0: dependencies: lodash "^4.17.15" +"eslint-plugin-graphql-internal@link:./resources/eslint-rules": + version "0.0.0" + uid "" + eslint-plugin-import@2.20.1: version "2.20.1" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3" From a8f73dbfe0f76ff4eec4829a1426019a6df25eb2 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 2 Apr 2020 15:06:40 +0300 Subject: [PATCH 04/63] Update prettier (#2499) --- .prettierrc | 3 +- README.md | 4 +- docs/Guides-ConstructingTypes.md | 4 +- docs/Tutorial-Authentication.md | 2 +- docs/Tutorial-BasicTypes.md | 2 +- docs/Tutorial-GettingStarted.md | 2 +- docs/Tutorial-GraphQLClients.md | 8 +- docs/Tutorial-Mutations.md | 18 +- docs/Tutorial-ObjectTypes.md | 4 +- docs/Tutorial-PassingArguments.md | 10 +- package.json | 2 +- resources/benchmark-fork.js | 6 +- resources/benchmark.js | 6 +- resources/build.js | 4 +- resources/check-cover.js | 10 +- resources/eslint-rules/no-dir-import.js | 2 +- resources/gen-changelog.js | 22 +- resources/utils.js | 7 +- src/__fixtures__/github-schema.graphql | 14429 ++++++++++++---- src/__fixtures__/kitchen-sink.graphql | 32 +- src/__tests__/starWarsData.js | 2 +- src/__tests__/starWarsSchema.js | 4 +- src/error/GraphQLError.js | 2 +- .../__tests__/abstract-promise-test.js | 10 +- src/execution/__tests__/abstract-test.js | 8 +- src/execution/__tests__/executor-test.js | 10 +- src/execution/__tests__/mutations-test.js | 2 +- src/execution/__tests__/nonnull-test.js | 12 +- .../__tests__/union-interface-test.js | 6 +- src/execution/execute.js | 20 +- src/execution/values.js | 27 +- src/graphql.js | 2 +- src/jsutils/__tests__/inspect-test.js | 2 +- src/jsutils/didYouMean.js | 2 +- src/jsutils/inspect.js | 2 +- src/jsutils/printPathArray.js | 2 +- src/jsutils/promiseForObject.js | 4 +- src/jsutils/promiseReduce.js | 2 +- src/language/__tests__/lexer-test.js | 2 +- src/language/__tests__/predicates-test.js | 4 +- src/language/ast.js | 4 +- src/language/printLocation.js | 2 +- src/language/printer.js | 10 +- src/polyfills/arrayFrom.js | 2 +- src/polyfills/find.js | 4 +- src/polyfills/flatMap.js | 4 +- src/polyfills/isFinite.js | 2 +- src/polyfills/isInteger.js | 2 +- src/polyfills/objectEntries.js | 2 +- src/polyfills/objectValues.js | 2 +- .../eventEmitterAsyncIterator-test.js | 6 +- .../__tests__/eventEmitterAsyncIterator.js | 2 +- .../__tests__/mapAsyncIterator-test.js | 34 +- src/subscription/__tests__/subscribe-test.js | 16 +- src/subscription/mapAsyncIterator.js | 12 +- src/subscription/subscribe.js | 6 +- src/type/definition.js | 20 +- src/type/introspection.js | 57 +- src/type/schema.js | 2 +- src/type/validate.js | 22 +- src/utilities/TypeInfo.js | 2 +- .../__tests__/buildClientSchema-test.js | 4 +- .../__tests__/coerceInputValue-test.js | 6 +- src/utilities/__tests__/extendSchema-test.js | 2 +- .../__tests__/findDeprecatedUsages-test.js | 4 +- .../__tests__/stripIgnoredCharacters-test.js | 2 +- src/utilities/buildASTSchema.js | 6 +- src/utilities/buildClientSchema.js | 12 +- src/utilities/concatAST.js | 2 +- src/utilities/extendSchema.js | 4 +- src/utilities/findBreakingChanges.js | 4 +- src/utilities/lexicographicSortSchema.js | 21 +- src/utilities/printSchema.js | 12 +- src/utilities/separateOperations.js | 2 +- src/utilities/typeComparators.js | 2 +- src/utilities/valueFromAST.js | 2 +- src/utilities/valueFromASTUntyped.js | 8 +- src/validation/ValidationContext.js | 6 +- src/validation/__tests__/validation-test.js | 2 +- .../rules/FieldsOnCorrectTypeRule.js | 2 +- .../rules/KnownArgumentNamesRule.js | 6 +- src/validation/rules/KnownDirectivesRule.js | 2 +- src/validation/rules/KnownTypeNamesRule.js | 2 +- .../rules/LoneAnonymousOperationRule.js | 2 +- src/validation/rules/NoFragmentCyclesRule.js | 2 +- .../rules/OverlappingFieldsCanBeMergedRule.js | 4 +- .../rules/ProvidedRequiredArgumentsRule.js | 8 +- .../rules/ValuesOfCorrectTypeRule.js | 12 +- src/validation/validate.js | 12 +- yarn.lock | 8 +- 90 files changed, 11147 insertions(+), 3929 deletions(-) diff --git a/.prettierrc b/.prettierrc index 6de9cff5b4c..a20502b7f06 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,5 +1,4 @@ { "singleQuote": true, - "trailingComma": "all", - "endOfLine": "lf" + "trailingComma": "all" } diff --git a/README.md b/README.md index 54200e290d3..82b748950ae 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Then, serve the result of a query against that type schema. ```js var query = '{ hello }'; -graphql(schema, query).then(result => { +graphql(schema, query).then((result) => { // Prints // { // data: { hello: "world" } @@ -90,7 +90,7 @@ it, reporting errors otherwise. ```js var query = '{ BoyHowdy }'; -graphql(schema, query).then(result => { +graphql(schema, query).then((result) => { // Prints // { // errors: [ diff --git a/docs/Guides-ConstructingTypes.md b/docs/Guides-ConstructingTypes.md index 5410b7b9c3e..acd1b7ce70f 100644 --- a/docs/Guides-ConstructingTypes.md +++ b/docs/Guides-ConstructingTypes.md @@ -41,7 +41,7 @@ var fakeDatabase = { }; var root = { - user: function({ id }) { + user: function ({ id }) { return fakeDatabase[id]; }, }; @@ -98,7 +98,7 @@ var queryType = new graphql.GraphQLObjectType({ args: { id: { type: graphql.GraphQLString }, }, - resolve: function(_, { id }) { + resolve: function (_, { id }) { return fakeDatabase[id]; }, }, diff --git a/docs/Tutorial-Authentication.md b/docs/Tutorial-Authentication.md index d15ec03a0ca..ac8decd661a 100644 --- a/docs/Tutorial-Authentication.md +++ b/docs/Tutorial-Authentication.md @@ -30,7 +30,7 @@ function loggingMiddleware(req, res, next) { } var root = { - ip: function(args, request) { + ip: function (args, request) { return request.ip; }, }; diff --git a/docs/Tutorial-BasicTypes.md b/docs/Tutorial-BasicTypes.md index 75ff173241e..30a48d8e13d 100644 --- a/docs/Tutorial-BasicTypes.md +++ b/docs/Tutorial-BasicTypes.md @@ -39,7 +39,7 @@ var root = { return Math.random(); }, rollThreeDice: () => { - return [1, 2, 3].map(_ => 1 + Math.floor(Math.random() * 6)); + return [1, 2, 3].map((_) => 1 + Math.floor(Math.random() * 6)); }, }; diff --git a/docs/Tutorial-GettingStarted.md b/docs/Tutorial-GettingStarted.md index 03a9e477047..19c4cfb11f3 100644 --- a/docs/Tutorial-GettingStarted.md +++ b/docs/Tutorial-GettingStarted.md @@ -40,7 +40,7 @@ var root = { }; // Run the GraphQL query '{ hello }' and print out the response -graphql(schema, '{ hello }', root).then(response => { +graphql(schema, '{ hello }', root).then((response) => { console.log(response); }); ``` diff --git a/docs/Tutorial-GraphQLClients.md b/docs/Tutorial-GraphQLClients.md index 10c7cc72a43..578a0d8f470 100644 --- a/docs/Tutorial-GraphQLClients.md +++ b/docs/Tutorial-GraphQLClients.md @@ -36,8 +36,8 @@ fetch('/graphql', { }, body: JSON.stringify({ query: '{ hello }' }), }) - .then(r => r.json()) - .then(data => console.log('data returned:', data)); + .then((r) => r.json()) + .then((data) => console.log('data returned:', data)); ``` You should see the data returned, logged in the console: @@ -76,8 +76,8 @@ fetch('/graphql', { variables: { dice, sides }, }), }) - .then(r => r.json()) - .then(data => console.log('data returned:', data)); + .then((r) => r.json()) + .then((data) => console.log('data returned:', data)); ``` Using this syntax for variables is a good idea because it automatically prevents bugs due to escaping, and it makes it easier to monitor your server. diff --git a/docs/Tutorial-Mutations.md b/docs/Tutorial-Mutations.md index df8f1614c49..e1e30a24805 100644 --- a/docs/Tutorial-Mutations.md +++ b/docs/Tutorial-Mutations.md @@ -27,11 +27,11 @@ Both mutations and queries can be handled by root resolvers, so the root that im ```js var fakeDatabase = {}; var root = { - setMessage: function({ message }) { + setMessage: function ({ message }) { fakeDatabase.message = message; return message; }, - getMessage: function() { + getMessage: function () { return fakeDatabase.message; }, }; @@ -112,22 +112,20 @@ class Message { var fakeDatabase = {}; var root = { - getMessage: function({ id }) { + getMessage: function ({ id }) { if (!fakeDatabase[id]) { throw new Error('no message exists with id ' + id); } return new Message(id, fakeDatabase[id]); }, - createMessage: function({ input }) { + createMessage: function ({ input }) { // Create a random id for our "database". - var id = require('crypto') - .randomBytes(10) - .toString('hex'); + var id = require('crypto').randomBytes(10).toString('hex'); fakeDatabase[id] = input; return new Message(id, input); }, - updateMessage: function({ id, input }) { + updateMessage: function ({ id, input }) { if (!fakeDatabase[id]) { throw new Error('no message exists with id ' + id); } @@ -188,8 +186,8 @@ fetch('/graphql', { }, }), }) - .then(r => r.json()) - .then(data => console.log('data returned:', data)); + .then((r) => r.json()) + .then((data) => console.log('data returned:', data)); ``` One particular type of mutation is operations that change users, like signing up a new user. While you can implement this using GraphQL mutations, you can reuse many existing libraries if you learn about [GraphQL with authentication and Express middleware](/graphql-js/authentication-and-express-middleware/). diff --git a/docs/Tutorial-ObjectTypes.md b/docs/Tutorial-ObjectTypes.md index 3bef47f6bd4..f45ffa73f1a 100644 --- a/docs/Tutorial-ObjectTypes.md +++ b/docs/Tutorial-ObjectTypes.md @@ -50,7 +50,7 @@ class RandomDie { } var root = { - getDie: function({ numSides }) { + getDie: function ({ numSides }) { return new RandomDie(numSides || 6); }, }; @@ -111,7 +111,7 @@ class RandomDie { // The root provides the top-level API endpoints var root = { - getDie: function({ numSides }) { + getDie: function ({ numSides }) { return new RandomDie(numSides || 6); }, }; diff --git a/docs/Tutorial-PassingArguments.md b/docs/Tutorial-PassingArguments.md index fac0c1f3c4a..9a1ada9f184 100644 --- a/docs/Tutorial-PassingArguments.md +++ b/docs/Tutorial-PassingArguments.md @@ -28,7 +28,7 @@ So far, our resolver functions took no arguments. When a resolver takes argument ```js var root = { - rollDice: function(args) { + rollDice: function (args) { var output = []; for (var i = 0; i < args.numDice; i++) { output.push(1 + Math.floor(Math.random() * (args.numSides || 6))); @@ -42,7 +42,7 @@ It's convenient to use [ES6 destructuring assignment](https://developer.mozilla. ```js var root = { - rollDice: function({ numDice, numSides }) { + rollDice: function ({ numDice, numSides }) { var output = []; for (var i = 0; i < numDice; i++) { output.push(1 + Math.floor(Math.random() * (numSides || 6))); @@ -70,7 +70,7 @@ var schema = buildSchema(` // The root provides a resolver function for each API endpoint var root = { - rollDice: function({ numDice, numSides }) { + rollDice: function ({ numDice, numSides }) { var output = []; for (var i = 0; i < numDice; i++) { output.push(1 + Math.floor(Math.random() * (numSides || 6))); @@ -125,8 +125,8 @@ fetch('/graphql', { variables: { dice, sides }, }), }) - .then(r => r.json()) - .then(data => console.log('data returned:', data)); + .then((r) => r.json()) + .then((data) => console.log('data returned:', data)); ``` Using `$dice` and `$sides` as variables in GraphQL means we don't have to worry about escaping on the client side. diff --git a/package.json b/package.json index 621e7fb8b94..fbe1e6b7483 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "flow-bin": "0.120.1", "mocha": "7.1.0", "nyc": "15.0.0", - "prettier": "1.19.1", + "prettier": "2.0.2", "typescript": "^3.8.3" } } diff --git a/resources/benchmark-fork.js b/resources/benchmark-fork.js index 206f839669b..9a0abfe9316 100644 --- a/resources/benchmark-fork.js +++ b/resources/benchmark-fork.js @@ -43,15 +43,15 @@ function sampleModule(modulePath) { let message; let error; - child.on('message', msg => (message = msg)); - child.on('error', e => (error = e)); + child.on('message', (msg) => (message = msg)); + child.on('error', (e) => (error = e)); child.on('close', () => { if (message) { return resolve(message); } reject(error || new Error('Forked process closed without error')); }); - }).then(result => { + }).then((result) => { global.gc(); return result; }); diff --git a/resources/benchmark.js b/resources/benchmark.js index aae0b71f54b..c8a39255ce8 100644 --- a/resources/benchmark.js +++ b/resources/benchmark.js @@ -229,7 +229,7 @@ function maxBy(array, fn) { // Prepare all revisions and run benchmarks matching a pattern against them. async function prepareAndRunBenchmarks(benchmarkPatterns, revisions) { - const environments = revisions.map(revision => ({ + const environments = revisions.map((revision) => ({ revision, distPath: prepareRevision(revision), })); @@ -269,8 +269,8 @@ async function prepareAndRunBenchmarks(benchmarkPatterns, revisions) { function matchBenchmarks(patterns) { let benchmarks = findFiles(LOCAL_DIR('src'), '*/__tests__/*-benchmark.js'); if (patterns.length > 0) { - benchmarks = benchmarks.filter(benchmark => - patterns.some(pattern => path.join('src', benchmark).includes(pattern)), + benchmarks = benchmarks.filter((benchmark) => + patterns.some((pattern) => path.join('src', benchmark).includes(pattern)), ); } diff --git a/resources/build.js b/resources/build.js index 6b1b7a6d121..f21020f9941 100644 --- a/resources/build.js +++ b/resources/build.js @@ -77,8 +77,8 @@ function showStats() { stats.sort((a, b) => b[1] - a[1]); stats = stats.map(([type, size]) => [type, (size / 1024).toFixed(2) + ' KB']); - const typeMaxLength = Math.max(...stats.map(x => x[0].length)); - const sizeMaxLength = Math.max(...stats.map(x => x[1].length)); + const typeMaxLength = Math.max(...stats.map((x) => x[0].length)); + const sizeMaxLength = Math.max(...stats.map((x) => x[1].length)); for (const [type, size] of stats) { console.log( type.padStart(typeMaxLength) + ' | ' + size.padStart(sizeMaxLength), diff --git a/resources/check-cover.js b/resources/check-cover.js index aaf070da2fe..42a30e4eee5 100644 --- a/resources/check-cover.js +++ b/resources/check-cover.js @@ -14,13 +14,13 @@ const { rmdirRecursive('./coverage/flow'); getFullCoverage() - .then(fullCoverage => + .then((fullCoverage) => writeFile( './coverage/flow/full-coverage.json', JSON.stringify(fullCoverage), ), ) - .catch(error => { + .catch((error) => { console.error(error.stack); process.exit(1); }); @@ -34,10 +34,10 @@ async function getFullCoverage() { // TODO: measure coverage for all files. ATM missing types for chai & mocha const files = readdirRecursive('./src', { ignoreDir: /^__.*__$/ }) - .filter(filepath => filepath.endsWith('.js')) - .map(filepath => path.join('src/', filepath)); + .filter((filepath) => filepath.endsWith('.js')) + .map((filepath) => path.join('src/', filepath)); - await Promise.all(files.map(getCoverage)).then(coverages => { + await Promise.all(files.map(getCoverage)).then((coverages) => { for (const coverage of coverages) { fullCoverage[coverage.path] = coverage; } diff --git a/resources/eslint-rules/no-dir-import.js b/resources/eslint-rules/no-dir-import.js index 41220c35fa5..45ab9d19f31 100644 --- a/resources/eslint-rules/no-dir-import.js +++ b/resources/eslint-rules/no-dir-import.js @@ -5,7 +5,7 @@ const fs = require('fs'); const path = require('path'); -module.exports = function(context) { +module.exports = function (context) { return { ImportDeclaration: checkImporPath, ExportNamedDeclaration: checkImporPath, diff --git a/resources/gen-changelog.js b/resources/gen-changelog.js index 35422851cad..19e8bfda853 100644 --- a/resources/gen-changelog.js +++ b/resources/gen-changelog.js @@ -59,8 +59,8 @@ if (repoURLMatch == null) { const [, githubOrg, githubRepo] = repoURLMatch; getChangeLog() - .then(changelog => process.stdout.write(changelog)) - .catch(error => console.error(error)); + .then((changelog) => process.stdout.write(changelog)) + .catch((error) => console.error(error)); function getChangeLog() { const { version } = packageJSON; @@ -76,8 +76,8 @@ function getChangeLog() { const date = exec('git log -1 --format=%cd --date=short'); return getCommitsInfo(commitsList.split('\n')) - .then(commitsInfo => getPRsInfo(commitsInfoToPRs(commitsInfo))) - .then(prsInfo => genChangeLog(tag, date, prsInfo)); + .then((commitsInfo) => getPRsInfo(commitsInfoToPRs(commitsInfo))) + .then((prsInfo) => genChangeLog(tag, date, prsInfo)); } function genChangeLog(tag, date, allPRs) { @@ -86,8 +86,8 @@ function genChangeLog(tag, date, allPRs) { for (const pr of allPRs) { const labels = pr.labels.nodes - .map(label => label.name) - .filter(label => label.startsWith('PR: ')); + .map((label) => label.name) + .filter((label) => label.startsWith('PR: ')); if (labels.length === 0) { throw new Error(`PR is missing label. See ${pr.url}`); @@ -153,12 +153,12 @@ function graphqlRequestImpl(query, variables, cb) { }, }); - req.on('response', res => { + req.on('response', (res) => { let responseBody = ''; res.setEncoding('utf8'); - res.on('data', d => (responseBody += d)); - res.on('error', error => resultCB(error)); + res.on('data', (d) => (responseBody += d)); + res.on('error', (error) => resultCB(error)); res.on('end', () => { if (res.statusCode !== 200) { @@ -187,7 +187,7 @@ function graphqlRequestImpl(query, variables, cb) { }); }); - req.on('error', error => resultCB(error)); + req.on('error', (error) => resultCB(error)); req.write(JSON.stringify({ query, variables })); req.end(); } @@ -271,7 +271,7 @@ function commitsInfoToPRs(commits) { const prs = {}; for (const commit of commits) { const associatedPRs = commit.associatedPullRequests.nodes.filter( - pr => pr.repository.nameWithOwner === `${githubOrg}/${githubRepo}`, + (pr) => pr.repository.nameWithOwner === `${githubOrg}/${githubRepo}`, ); if (associatedPRs.length === 0) { const match = / \(#([0-9]+)\)$/m.exec(commit.message); diff --git a/resources/utils.js b/resources/utils.js index 75df766d005..3c64785d7fa 100644 --- a/resources/utils.js +++ b/resources/utils.js @@ -31,10 +31,7 @@ function removeTrailingNewLine(str) { return str; } - return str - .split('\n') - .slice(0, -1) - .join('\n'); + return str.split('\n').slice(0, -1).join('\n'); } function mkdirRecursive(dirPath) { @@ -68,7 +65,7 @@ function readdirRecursive(dirPath, opts = {}) { if (ignoreDir && ignoreDir.test(name)) { continue; } - const list = readdirRecursive(path.join(dirPath, name), opts).map(f => + const list = readdirRecursive(path.join(dirPath, name), opts).map((f) => path.join(name, f), ); result.push(...list); diff --git a/src/__fixtures__/github-schema.graphql b/src/__fixtures__/github-schema.graphql index 51dbeff4b33..7baa42397a5 100644 --- a/src/__fixtures__/github-schema.graphql +++ b/src/__fixtures__/github-schema.graphql @@ -1,21 +1,35 @@ -"""Autogenerated input type of AcceptTopicSuggestion""" +""" +Autogenerated input type of AcceptTopicSuggestion +""" input AcceptTopicSuggestionInput { - """The Node ID of the repository.""" + """ + The Node ID of the repository. + """ repositoryId: ID! - """The name of the suggested topic.""" + """ + The name of the suggested topic. + """ name: String! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of AcceptTopicSuggestion""" +""" +Autogenerated return type of AcceptTopicSuggestion +""" type AcceptTopicSuggestionPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The accepted topic.""" + """ + The accepted topic. + """ topic: Topic } @@ -23,67 +37,109 @@ type AcceptTopicSuggestionPayload { Represents an object which can take actions on GitHub. Typically a User or Bot. """ interface Actor { - """A URL pointing to the actor's public avatar.""" + """ + A URL pointing to the actor's public avatar. + """ avatarUrl( - """The size of the resulting square image.""" + """ + The size of the resulting square image. + """ size: Int ): URI! - """The username of the actor.""" + """ + The username of the actor. + """ login: String! - """The HTTP path for this actor.""" + """ + The HTTP path for this actor. + """ resourcePath: URI! - """The HTTP URL for this actor.""" + """ + The HTTP URL for this actor. + """ url: URI! } -"""Autogenerated input type of AddAssigneesToAssignable""" +""" +Autogenerated input type of AddAssigneesToAssignable +""" input AddAssigneesToAssignableInput { - """The id of the assignable object to add assignees to.""" + """ + The id of the assignable object to add assignees to. + """ assignableId: ID! - """The id of users to add as assignees.""" + """ + The id of users to add as assignees. + """ assigneeIds: [ID!]! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of AddAssigneesToAssignable""" +""" +Autogenerated return type of AddAssigneesToAssignable +""" type AddAssigneesToAssignablePayload { - """The item that was assigned.""" + """ + The item that was assigned. + """ assignable: Assignable - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated input type of AddComment""" +""" +Autogenerated input type of AddComment +""" input AddCommentInput { - """The Node ID of the subject to modify.""" + """ + The Node ID of the subject to modify. + """ subjectId: ID! - """The contents of the comment.""" + """ + The contents of the comment. + """ body: String! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of AddComment""" +""" +Autogenerated return type of AddComment +""" type AddCommentPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The edge from the subject's comment connection.""" + """ + The edge from the subject's comment connection. + """ commentEdge: IssueCommentEdge - """The subject""" + """ + The subject + """ subject: Node - """The edge from the subject's timeline connection.""" + """ + The edge from the subject's timeline connection. + """ timelineEdge: IssueTimelineItemEdge } @@ -91,248 +147,410 @@ type AddCommentPayload { Represents a 'added_to_project' event on a given issue or pull request. """ type AddedToProjectEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! } -"""Autogenerated input type of AddLabelsToLabelable""" +""" +Autogenerated input type of AddLabelsToLabelable +""" input AddLabelsToLabelableInput { - """The id of the labelable object to add labels to.""" + """ + The id of the labelable object to add labels to. + """ labelableId: ID! - """The ids of the labels to add.""" + """ + The ids of the labels to add. + """ labelIds: [ID!]! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of AddLabelsToLabelable""" +""" +Autogenerated return type of AddLabelsToLabelable +""" type AddLabelsToLabelablePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The item that was labeled.""" + """ + The item that was labeled. + """ labelable: Labelable } -"""Autogenerated input type of AddProjectCard""" +""" +Autogenerated input type of AddProjectCard +""" input AddProjectCardInput { - """The Node ID of the ProjectColumn.""" + """ + The Node ID of the ProjectColumn. + """ projectColumnId: ID! - """The content of the card. Must be a member of the ProjectCardItem union""" + """ + The content of the card. Must be a member of the ProjectCardItem union + """ contentId: ID - """The note on the card.""" + """ + The note on the card. + """ note: String - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of AddProjectCard""" +""" +Autogenerated return type of AddProjectCard +""" type AddProjectCardPayload { - """The edge from the ProjectColumn's card connection.""" + """ + The edge from the ProjectColumn's card connection. + """ cardEdge: ProjectCardEdge - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The ProjectColumn""" + """ + The ProjectColumn + """ projectColumn: ProjectColumn } -"""Autogenerated input type of AddProjectColumn""" +""" +Autogenerated input type of AddProjectColumn +""" input AddProjectColumnInput { - """The Node ID of the project.""" + """ + The Node ID of the project. + """ projectId: ID! - """The name of the column.""" + """ + The name of the column. + """ name: String! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of AddProjectColumn""" +""" +Autogenerated return type of AddProjectColumn +""" type AddProjectColumnPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The edge from the project's column connection.""" + """ + The edge from the project's column connection. + """ columnEdge: ProjectColumnEdge - """The project""" + """ + The project + """ project: Project } -"""Autogenerated input type of AddPullRequestReviewComment""" +""" +Autogenerated input type of AddPullRequestReviewComment +""" input AddPullRequestReviewCommentInput { - """The Node ID of the review to modify.""" + """ + The Node ID of the review to modify. + """ pullRequestReviewId: ID! - """The SHA of the commit to comment on.""" + """ + The SHA of the commit to comment on. + """ commitOID: GitObjectID - """The text of the comment.""" + """ + The text of the comment. + """ body: String! - """The relative path of the file to comment on.""" + """ + The relative path of the file to comment on. + """ path: String - """The line index in the diff to comment on.""" + """ + The line index in the diff to comment on. + """ position: Int - """The comment id to reply to.""" + """ + The comment id to reply to. + """ inReplyTo: ID - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of AddPullRequestReviewComment""" +""" +Autogenerated return type of AddPullRequestReviewComment +""" type AddPullRequestReviewCommentPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The newly created comment.""" + """ + The newly created comment. + """ comment: PullRequestReviewComment - """The edge from the review's comment connection.""" + """ + The edge from the review's comment connection. + """ commentEdge: PullRequestReviewCommentEdge } -"""Autogenerated input type of AddPullRequestReview""" +""" +Autogenerated input type of AddPullRequestReview +""" input AddPullRequestReviewInput { - """The Node ID of the pull request to modify.""" + """ + The Node ID of the pull request to modify. + """ pullRequestId: ID! - """The commit OID the review pertains to.""" + """ + The commit OID the review pertains to. + """ commitOID: GitObjectID - """The contents of the review body comment.""" + """ + The contents of the review body comment. + """ body: String - """The event to perform on the pull request review.""" + """ + The event to perform on the pull request review. + """ event: PullRequestReviewEvent - """The review line comments.""" + """ + The review line comments. + """ comments: [DraftPullRequestReviewComment] - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of AddPullRequestReview""" +""" +Autogenerated return type of AddPullRequestReview +""" type AddPullRequestReviewPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The newly created pull request review.""" + """ + The newly created pull request review. + """ pullRequestReview: PullRequestReview - """The edge from the pull request's review connection.""" + """ + The edge from the pull request's review connection. + """ reviewEdge: PullRequestReviewEdge } -"""Autogenerated input type of AddReaction""" +""" +Autogenerated input type of AddReaction +""" input AddReactionInput { - """The Node ID of the subject to modify.""" + """ + The Node ID of the subject to modify. + """ subjectId: ID! - """The name of the emoji to react with.""" + """ + The name of the emoji to react with. + """ content: ReactionContent! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of AddReaction""" +""" +Autogenerated return type of AddReaction +""" type AddReactionPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The reaction object.""" + """ + The reaction object. + """ reaction: Reaction - """The reactable subject.""" + """ + The reactable subject. + """ subject: Reactable } -"""Autogenerated input type of AddStar""" +""" +Autogenerated input type of AddStar +""" input AddStarInput { - """The Starrable ID to star.""" + """ + The Starrable ID to star. + """ starrableId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of AddStar""" +""" +Autogenerated return type of AddStar +""" type AddStarPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The starrable.""" + """ + The starrable. + """ starrable: Starrable } -"""A GitHub App.""" +""" +A GitHub App. +""" type App implements Node { - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The description of the app.""" + """ + The description of the app. + """ description: String id: ID! - """The hex color code, without the leading '#', for the logo background.""" + """ + The hex color code, without the leading '#', for the logo background. + """ logoBackgroundColor: String! - """A URL pointing to the app's logo.""" + """ + A URL pointing to the app's logo. + """ logoUrl( - """The size of the resulting image.""" + """ + The size of the resulting image. + """ size: Int ): URI! - """The name of the app.""" + """ + The name of the app. + """ name: String! - """A slug based on the name of the app for use in URLs.""" + """ + A slug based on the name of the app for use in URLs. + """ slug: String! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The URL to the app's homepage.""" + """ + The URL to the app's homepage. + """ url: URI! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type AppEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: App } -"""An object that can have users assigned to it.""" +""" +An object that can have users assigned to it. +""" interface Assignable { - """A list of Users assigned to this object.""" + """ + A list of Users assigned to this object. + """ assignees( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -340,27 +558,41 @@ interface Assignable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserConnection! } -"""Represents an 'assigned' event on any assignable object.""" +""" +Represents an 'assigned' event on any assignable object. +""" type AssignedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the assignable associated with the event.""" + """ + Identifies the assignable associated with the event. + """ assignable: Assignable! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Identifies the user who was assigned.""" + """ + Identifies the user who was assigned. + """ user: User } @@ -368,23 +600,35 @@ type AssignedEvent implements Node { Represents a 'base_ref_changed' event on a given issue or pull request. """ type BaseRefChangedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! } -"""Represents a 'base_ref_force_pushed' event on a given pull request.""" +""" +Represents a 'base_ref_force_pushed' event on a given pull request. +""" type BaseRefForcePushedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the after commit SHA for the 'base_ref_force_pushed' event.""" + """ + Identifies the after commit SHA for the 'base_ref_force_pushed' event. + """ afterCommit: Commit """ @@ -392,11 +636,15 @@ type BaseRefForcePushedEvent implements Node { """ beforeCommit: Commit - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """PullRequest referenced by event.""" + """ + PullRequest referenced by event. + """ pullRequest: PullRequest! """ @@ -405,13 +653,19 @@ type BaseRefForcePushedEvent implements Node { ref: Ref } -"""Represents a Git blame.""" +""" +Represents a Git blame. +""" type Blame { - """The list of ranges from a Git blame.""" + """ + The list of ranges from a Git blame. + """ ranges: [BlameRange!]! } -"""Represents a range of information from a Git blame.""" +""" +Represents a range of information from a Git blame. +""" type BlameRange { """ Identifies the recency of the change, from 1 (new) to 10 (old). This is @@ -421,82 +675,130 @@ type BlameRange { """ age: Int! - """Identifies the line author""" + """ + Identifies the line author + """ commit: Commit! - """The ending line for the range""" + """ + The ending line for the range + """ endingLine: Int! - """The starting line for the range""" + """ + The starting line for the range + """ startingLine: Int! } -"""Represents a Git blob.""" +""" +Represents a Git blob. +""" type Blob implements Node & GitObject { - """An abbreviated version of the Git object ID""" + """ + An abbreviated version of the Git object ID + """ abbreviatedOid: String! - """Byte size of Blob object""" + """ + Byte size of Blob object + """ byteSize: Int! - """The HTTP path for this Git object""" + """ + The HTTP path for this Git object + """ commitResourcePath: URI! - """The HTTP URL for this Git object""" + """ + The HTTP URL for this Git object + """ commitUrl: URI! id: ID! - """Indicates whether the Blob is binary or text""" + """ + Indicates whether the Blob is binary or text + """ isBinary: Boolean! - """Indicates whether the contents is truncated""" + """ + Indicates whether the contents is truncated + """ isTruncated: Boolean! - """The Git object ID""" + """ + The Git object ID + """ oid: GitObjectID! - """The Repository the Git object belongs to""" + """ + The Repository the Git object belongs to + """ repository: Repository! - """UTF8 text data or null if the Blob is binary""" + """ + UTF8 text data or null if the Blob is binary + """ text: String } -"""A special type of user which takes actions on behalf of GitHub Apps.""" +""" +A special type of user which takes actions on behalf of GitHub Apps. +""" type Bot implements Node & Actor & UniformResourceLocatable { - """A URL pointing to the GitHub App's public avatar.""" + """ + A URL pointing to the GitHub App's public avatar. + """ avatarUrl( - """The size of the resulting square image.""" + """ + The size of the resulting square image. + """ size: Int ): URI! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! - """The username of the actor.""" + """ + The username of the actor. + """ login: String! - """The HTTP path for this bot""" + """ + The HTTP path for this bot + """ resourcePath: URI! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this bot""" + """ + The HTTP URL for this bot + """ url: URI! } -"""A branch protection rule.""" +""" +A branch protection rule. +""" type BranchProtectionRule implements Node { """ A list of conflicts matching branches protection rule and other branch protection rules """ branchProtectionRuleConflicts( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -504,17 +806,25 @@ type BranchProtectionRule implements Node { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): BranchProtectionRuleConflictConnection! - """The actor who created this branch protection rule.""" + """ + The actor who created this branch protection rule. + """ creator: Actor - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int """ @@ -523,12 +833,18 @@ type BranchProtectionRule implements Node { dismissesStaleReviews: Boolean! id: ID! - """Can admins overwrite branch protection.""" + """ + Can admins overwrite branch protection. + """ isAdminEnforced: Boolean! - """Repository refs that are protected by this rule""" + """ + Repository refs that are protected by this rule + """ matchingRefs( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -536,19 +852,29 @@ type BranchProtectionRule implements Node { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): RefConnection! - """Identifies the protection rule pattern.""" + """ + Identifies the protection rule pattern. + """ pattern: String! - """A list push allowances for this branch protection rule.""" + """ + A list push allowances for this branch protection rule. + """ pushAllowances( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -556,17 +882,25 @@ type BranchProtectionRule implements Node { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PushAllowanceConnection! - """The repository associated with this branch protection rule.""" + """ + The repository associated with this branch protection rule. + """ repository: Repository - """Number of approving reviews required to update matching branches.""" + """ + Number of approving reviews required to update matching branches. + """ requiredApprovingReviewCount: Int """ @@ -574,27 +908,43 @@ type BranchProtectionRule implements Node { """ requiredStatusCheckContexts: [String] - """Are approving reviews required to update matching branches.""" + """ + Are approving reviews required to update matching branches. + """ requiresApprovingReviews: Boolean! - """Are commits required to be signed.""" + """ + Are commits required to be signed. + """ requiresCommitSignatures: Boolean! - """Are status checks required to update matching branches.""" + """ + Are status checks required to update matching branches. + """ requiresStatusChecks: Boolean! - """Are branches required to be up to date before merging.""" + """ + Are branches required to be up to date before merging. + """ requiresStrictStatusChecks: Boolean! - """Is pushing to matching branches restricted.""" + """ + Is pushing to matching branches restricted. + """ restrictsPushes: Boolean! - """Is dismissal of pull request reviews restricted.""" + """ + Is dismissal of pull request reviews restricted. + """ restrictsReviewDismissals: Boolean! - """A list review dismissal allowances for this branch protection rule.""" + """ + A list review dismissal allowances for this branch protection rule. + """ reviewDismissalAllowances( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -602,82 +952,130 @@ type BranchProtectionRule implements Node { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): ReviewDismissalAllowanceConnection! } -"""A conflict between two branch protection rules.""" +""" +A conflict between two branch protection rules. +""" type BranchProtectionRuleConflict { - """Identifies the branch protection rule.""" + """ + Identifies the branch protection rule. + """ branchProtectionRule: BranchProtectionRule - """Identifies the conflicting branch protection rule.""" + """ + Identifies the conflicting branch protection rule. + """ conflictingBranchProtectionRule: BranchProtectionRule - """Identifies the branch ref that has conflicting rules""" + """ + Identifies the branch ref that has conflicting rules + """ ref: Ref } -"""The connection type for BranchProtectionRuleConflict.""" +""" +The connection type for BranchProtectionRuleConflict. +""" type BranchProtectionRuleConflictConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [BranchProtectionRuleConflictEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [BranchProtectionRuleConflict] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type BranchProtectionRuleConflictEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: BranchProtectionRuleConflict } -"""The connection type for BranchProtectionRule.""" +""" +The connection type for BranchProtectionRule. +""" type BranchProtectionRuleConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [BranchProtectionRuleEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [BranchProtectionRule] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type BranchProtectionRuleEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: BranchProtectionRule } -"""Autogenerated input type of ChangeUserStatus""" +""" +Autogenerated input type of ChangeUserStatus +""" input ChangeUserStatusInput { """ The emoji to represent your status. Can either be a native Unicode emoji or an emoji name with colons, e.g., :grinning:. """ emoji: String - """A short description of your current status.""" + """ + A short description of your current status. + """ message: String """ @@ -691,167 +1089,271 @@ input ChangeUserStatusInput { """ limitedAvailability: Boolean = false - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of ChangeUserStatus""" +""" +Autogenerated return type of ChangeUserStatus +""" type ChangeUserStatusPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """Your updated status.""" + """ + Your updated status. + """ status: UserStatus } -"""Autogenerated input type of ClearLabelsFromLabelable""" +""" +Autogenerated input type of ClearLabelsFromLabelable +""" input ClearLabelsFromLabelableInput { - """The id of the labelable object to clear the labels from.""" + """ + The id of the labelable object to clear the labels from. + """ labelableId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of ClearLabelsFromLabelable""" +""" +Autogenerated return type of ClearLabelsFromLabelable +""" type ClearLabelsFromLabelablePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The item that was unlabeled.""" + """ + The item that was unlabeled. + """ labelable: Labelable } -"""Autogenerated input type of CloneProject""" +""" +Autogenerated input type of CloneProject +""" input CloneProjectInput { - """The owner ID to create the project under.""" + """ + The owner ID to create the project under. + """ targetOwnerId: ID! - """The source project to clone.""" + """ + The source project to clone. + """ sourceId: ID! - """Whether or not to clone the source project's workflows.""" + """ + Whether or not to clone the source project's workflows. + """ includeWorkflows: Boolean! - """The name of the project.""" + """ + The name of the project. + """ name: String! - """The description of the project.""" + """ + The description of the project. + """ body: String - """The visibility of the project, defaults to false (private).""" + """ + The visibility of the project, defaults to false (private). + """ public: Boolean - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of CloneProject""" +""" +Autogenerated return type of CloneProject +""" type CloneProjectPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The id of the JobStatus for populating cloned fields.""" + """ + The id of the JobStatus for populating cloned fields. + """ jobStatusId: String - """The new cloned project.""" + """ + The new cloned project. + """ project: Project } -"""An object that can be closed""" +""" +An object that can be closed +""" interface Closable { """ `true` if the object is closed (definition of closed may depend on type) """ closed: Boolean! - """Identifies the date and time when the object was closed.""" + """ + Identifies the date and time when the object was closed. + """ closedAt: DateTime } -"""Represents a 'closed' event on any `Closable`.""" +""" +Represents a 'closed' event on any `Closable`. +""" type ClosedEvent implements Node & UniformResourceLocatable { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Object that was closed.""" + """ + Object that was closed. + """ closable: Closable! - """Object which triggered the creation of this event.""" + """ + Object which triggered the creation of this event. + """ closer: Closer - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """The HTTP path for this closed event.""" + """ + The HTTP path for this closed event. + """ resourcePath: URI! - """The HTTP URL for this closed event.""" + """ + The HTTP URL for this closed event. + """ url: URI! } -"""Autogenerated input type of CloseIssue""" +""" +Autogenerated input type of CloseIssue +""" input CloseIssueInput { - """ID of the issue to be closed.""" + """ + ID of the issue to be closed. + """ issueId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of CloseIssue""" +""" +Autogenerated return type of CloseIssue +""" type CloseIssuePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The issue that was closed.""" + """ + The issue that was closed. + """ issue: Issue } -"""Autogenerated input type of ClosePullRequest""" +""" +Autogenerated input type of ClosePullRequest +""" input ClosePullRequestInput { - """ID of the pull request to be closed.""" + """ + ID of the pull request to be closed. + """ pullRequestId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of ClosePullRequest""" +""" +Autogenerated return type of ClosePullRequest +""" type ClosePullRequestPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The pull request that was closed.""" + """ + The pull request that was closed. + """ pullRequest: PullRequest } -"""The object which triggered a `ClosedEvent`.""" +""" +The object which triggered a `ClosedEvent`. +""" union Closer = Commit | PullRequest -"""The Code of Conduct for a repository""" +""" +The Code of Conduct for a repository +""" type CodeOfConduct implements Node { - """The body of the Code of Conduct""" + """ + The body of the Code of Conduct + """ body: String id: ID! - """The key for the Code of Conduct""" + """ + The key for the Code of Conduct + """ key: String! - """The formal name of the Code of Conduct""" + """ + The formal name of the Code of Conduct + """ name: String! - """The HTTP path for this Code of Conduct""" + """ + The HTTP path for this Code of Conduct + """ resourcePath: URI - """The HTTP URL for this Code of Conduct""" + """ + The HTTP URL for this Code of Conduct + """ url: URI } -"""Collaborators affiliation level with a subject.""" +""" +Collaborators affiliation level with a subject. +""" enum CollaboratorAffiliation { - """All outside collaborators of an organization-owned subject.""" + """ + All outside collaborators of an organization-owned subject. + """ OUTSIDE """ @@ -859,37 +1361,59 @@ enum CollaboratorAffiliation { """ DIRECT - """All collaborators the authenticated user can see.""" + """ + All collaborators the authenticated user can see. + """ ALL } -"""Types that can be inside Collection Items.""" +""" +Types that can be inside Collection Items. +""" union CollectionItemContent = Repository | Organization | User -"""Represents a comment.""" +""" +Represents a comment. +""" interface Comment { - """The actor who authored the comment.""" + """ + The actor who authored the comment. + """ author: Actor - """Author's association with the subject of the comment.""" + """ + Author's association with the subject of the comment. + """ authorAssociation: CommentAuthorAssociation! - """The body as Markdown.""" + """ + The body as Markdown. + """ body: String! - """The body rendered to HTML.""" + """ + The body rendered to HTML. + """ bodyHTML: HTML! - """The body rendered to text.""" + """ + The body rendered to text. + """ bodyText: String! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Check if this comment was created via an email reply.""" + """ + Check if this comment was created via an email reply. + """ createdViaEmail: Boolean! - """The actor who edited the comment.""" + """ + The actor who edited the comment. + """ editor: Actor id: ID! @@ -898,18 +1422,28 @@ interface Comment { """ includesCreatedEdit: Boolean! - """The moment the editor made the last edit""" + """ + The moment the editor made the last edit + """ lastEditedAt: DateTime - """Identifies when the comment was published at.""" + """ + Identifies when the comment was published at. + """ publishedAt: DateTime - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """A list of edits to this content.""" + """ + A list of edits to this content. + """ userContentEdits( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -917,88 +1451,140 @@ interface Comment { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserContentEditConnection - """Did the viewer author this comment.""" + """ + Did the viewer author this comment. + """ viewerDidAuthor: Boolean! } -"""A comment author association with repository.""" +""" +A comment author association with repository. +""" enum CommentAuthorAssociation { - """Author is a member of the organization that owns the repository.""" + """ + Author is a member of the organization that owns the repository. + """ MEMBER - """Author is the owner of the repository.""" + """ + Author is the owner of the repository. + """ OWNER - """Author has been invited to collaborate on the repository.""" + """ + Author has been invited to collaborate on the repository. + """ COLLABORATOR - """Author has previously committed to the repository.""" + """ + Author has previously committed to the repository. + """ CONTRIBUTOR - """Author has not previously committed to the repository.""" + """ + Author has not previously committed to the repository. + """ FIRST_TIME_CONTRIBUTOR - """Author has not previously committed to GitHub.""" + """ + Author has not previously committed to GitHub. + """ FIRST_TIMER - """Author has no association with the repository.""" + """ + Author has no association with the repository. + """ NONE } -"""The possible errors that will prevent a user from updating a comment.""" +""" +The possible errors that will prevent a user from updating a comment. +""" enum CommentCannotUpdateReason { """ You must be the author or have write access to this repository to update this comment. """ INSUFFICIENT_ACCESS - """Unable to create comment because issue is locked.""" + """ + Unable to create comment because issue is locked. + """ LOCKED - """You must be logged in to update this comment.""" + """ + You must be logged in to update this comment. + """ LOGIN_REQUIRED - """Repository is under maintenance.""" + """ + Repository is under maintenance. + """ MAINTENANCE - """At least one email address must be verified to update this comment.""" + """ + At least one email address must be verified to update this comment. + """ VERIFIED_EMAIL_REQUIRED - """You cannot update this comment""" + """ + You cannot update this comment + """ DENIED } -"""Represents a 'comment_deleted' event on a given issue or pull request.""" +""" +Represents a 'comment_deleted' event on a given issue or pull request. +""" type CommentDeletedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! } -"""Represents a Git commit.""" +""" +Represents a Git commit. +""" type Commit implements Node & GitObject & Subscribable & UniformResourceLocatable { - """An abbreviated version of the Git object ID""" + """ + An abbreviated version of the Git object ID + """ abbreviatedOid: String! - """The number of additions in this commit.""" + """ + The number of additions in this commit. + """ additions: Int! - """The pull requests associated with a commit""" + """ + The pull requests associated with a commit + """ associatedPullRequests( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1006,37 +1592,59 @@ type Commit implements Node & GitObject & Subscribable & UniformResourceLocatabl """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Ordering options for pull requests.""" + """ + Ordering options for pull requests. + """ orderBy: PullRequestOrder ): PullRequestConnection - """Authorship details of the commit.""" + """ + Authorship details of the commit. + """ author: GitActor - """Check if the committer and the author match.""" + """ + Check if the committer and the author match. + """ authoredByCommitter: Boolean! - """The datetime when this commit was authored.""" + """ + The datetime when this commit was authored. + """ authoredDate: DateTime! - """Fetches `git blame` information.""" + """ + Fetches `git blame` information. + """ blame( - """The file whose Git blame information you want.""" + """ + The file whose Git blame information you want. + """ path: String! ): Blame! - """The number of changed files in this commit.""" + """ + The number of changed files in this commit. + """ changedFiles: Int! - """Comments made on the commit.""" + """ + Comments made on the commit. + """ comments( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1044,40 +1652,64 @@ type Commit implements Node & GitObject & Subscribable & UniformResourceLocatabl """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): CommitCommentConnection! - """The HTTP path for this Git object""" + """ + The HTTP path for this Git object + """ commitResourcePath: URI! - """The HTTP URL for this Git object""" + """ + The HTTP URL for this Git object + """ commitUrl: URI! - """The datetime when this commit was committed.""" + """ + The datetime when this commit was committed. + """ committedDate: DateTime! - """Check if commited via GitHub web UI.""" + """ + Check if commited via GitHub web UI. + """ committedViaWeb: Boolean! - """Committership details of the commit.""" + """ + Committership details of the commit. + """ committer: GitActor - """The number of deletions in this commit.""" + """ + The number of deletions in this commit. + """ deletions: Int! - """The deployments associated with a commit.""" + """ + The deployments associated with a commit. + """ deployments( - """Environments to list deployments for""" + """ + Environments to list deployments for + """ environments: [String!] - """Ordering options for deployments returned from the connection.""" + """ + Ordering options for deployments returned from the connection. + """ orderBy: DeploymentOrder - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1085,10 +1717,14 @@ type Commit implements Node & GitObject & Subscribable & UniformResourceLocatabl """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): DeploymentConnection @@ -1096,7 +1732,9 @@ type Commit implements Node & GitObject & Subscribable & UniformResourceLocatabl The linear commit history starting from (and including) this commit, in the same order as `git log`. """ history( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1104,10 +1742,14 @@ type Commit implements Node & GitObject & Subscribable & UniformResourceLocatabl """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int """ @@ -1120,35 +1762,55 @@ type Commit implements Node & GitObject & Subscribable & UniformResourceLocatabl """ author: CommitAuthor - """Allows specifying a beginning time or date for fetching commits.""" + """ + Allows specifying a beginning time or date for fetching commits. + """ since: GitTimestamp - """Allows specifying an ending time or date for fetching commits.""" + """ + Allows specifying an ending time or date for fetching commits. + """ until: GitTimestamp ): CommitHistoryConnection! id: ID! - """The Git commit message""" + """ + The Git commit message + """ message: String! - """The Git commit message body""" + """ + The Git commit message body + """ messageBody: String! - """The commit message body rendered to HTML.""" + """ + The commit message body rendered to HTML. + """ messageBodyHTML: HTML! - """The Git commit message headline""" + """ + The Git commit message headline + """ messageHeadline: String! - """The commit message headline rendered to HTML.""" + """ + The commit message headline rendered to HTML. + """ messageHeadlineHTML: HTML! - """The Git object ID""" + """ + The Git object ID + """ oid: GitObjectID! - """The parents of a commit.""" + """ + The parents of a commit. + """ parents( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1156,26 +1818,40 @@ type Commit implements Node & GitObject & Subscribable & UniformResourceLocatabl """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): CommitConnection! - """The datetime when this commit was pushed.""" + """ + The datetime when this commit was pushed. + """ pushedDate: DateTime - """The Repository this commit belongs to""" + """ + The Repository this commit belongs to + """ repository: Repository! - """The HTTP path for this commit""" + """ + The HTTP path for this commit + """ resourcePath: URI! - """Commit signing information, if present.""" + """ + Commit signing information, if present. + """ signature: GitSignature - """Status information for this commit""" + """ + Status information for this commit + """ status: Status """ @@ -1184,16 +1860,24 @@ type Commit implements Node & GitObject & Subscribable & UniformResourceLocatabl """ tarballUrl: URI! - """Commit's root Tree""" + """ + Commit's root Tree + """ tree: Tree! - """The HTTP path for the tree of this commit""" + """ + The HTTP path for the tree of this commit + """ treeResourcePath: URI! - """The HTTP URL for the tree of this commit""" + """ + The HTTP URL for the tree of this commit + """ treeUrl: URI! - """The HTTP URL for this commit""" + """ + The HTTP URL for this commit + """ url: URI! """ @@ -1213,7 +1897,9 @@ type Commit implements Node & GitObject & Subscribable & UniformResourceLocatabl zipballUrl: URI! } -"""Specifies an author for filtering Git commits.""" +""" +Specifies an author for filtering Git commits. +""" input CommitAuthor { """ ID of a User to filter by. If non-null, only commits authored by this user @@ -1227,21 +1913,33 @@ input CommitAuthor { emails: [String!] } -"""Represents a comment on a given Commit.""" +""" +Represents a comment on a given Commit. +""" type CommitComment implements Node & Comment & Deletable & Updatable & UpdatableComment & Reactable & RepositoryNode { - """The actor who authored the comment.""" + """ + The actor who authored the comment. + """ author: Actor - """Author's association with the subject of the comment.""" + """ + Author's association with the subject of the comment. + """ authorAssociation: CommentAuthorAssociation! - """Identifies the comment body.""" + """ + Identifies the comment body. + """ body: String! - """Identifies the comment body rendered to HTML.""" + """ + Identifies the comment body rendered to HTML. + """ bodyHTML: HTML! - """The body rendered to text.""" + """ + The body rendered to text. + """ bodyText: String! """ @@ -1249,16 +1947,24 @@ type CommitComment implements Node & Comment & Deletable & Updatable & Updatable """ commit: Commit - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Check if this comment was created via an email reply.""" + """ + Check if this comment was created via an email reply. + """ createdViaEmail: Boolean! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The actor who edited the comment.""" + """ + The actor who edited the comment. + """ editor: Actor id: ID! @@ -1267,30 +1973,48 @@ type CommitComment implements Node & Comment & Deletable & Updatable & Updatable """ includesCreatedEdit: Boolean! - """Returns whether or not a comment has been minimized.""" + """ + Returns whether or not a comment has been minimized. + """ isMinimized: Boolean! - """The moment the editor made the last edit""" + """ + The moment the editor made the last edit + """ lastEditedAt: DateTime - """Returns why the comment was minimized.""" + """ + Returns why the comment was minimized. + """ minimizedReason: String - """Identifies the file path associated with the comment.""" + """ + Identifies the file path associated with the comment. + """ path: String - """Identifies the line position associated with the comment.""" + """ + Identifies the line position associated with the comment. + """ position: Int - """Identifies when the comment was published at.""" + """ + Identifies when the comment was published at. + """ publishedAt: DateTime - """A list of reactions grouped by content left on the subject.""" + """ + A list of reactions grouped by content left on the subject. + """ reactionGroups: [ReactionGroup!] - """A list of Reactions left on the Issue.""" + """ + A list of Reactions left on the Issue. + """ reactions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1298,34 +2022,54 @@ type CommitComment implements Node & Comment & Deletable & Updatable & Updatable """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Allows filtering Reactions by emoji.""" + """ + Allows filtering Reactions by emoji. + """ content: ReactionContent - """Allows specifying the order in which reactions are returned.""" + """ + Allows specifying the order in which reactions are returned. + """ orderBy: ReactionOrder ): ReactionConnection! - """The repository associated with this node.""" + """ + The repository associated with this node. + """ repository: Repository! - """The HTTP path permalink for this commit comment.""" + """ + The HTTP path permalink for this commit comment. + """ resourcePath: URI! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL permalink for this commit comment.""" + """ + The HTTP URL permalink for this commit comment. + """ url: URI! - """A list of edits to this content.""" + """ + A list of edits to this content. + """ userContentEdits( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1333,61 +2077,99 @@ type CommitComment implements Node & Comment & Deletable & Updatable & Updatable """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserContentEditConnection - """Check if the current viewer can delete this object.""" + """ + Check if the current viewer can delete this object. + """ viewerCanDelete: Boolean! - """Check if the current viewer can minimize this object.""" + """ + Check if the current viewer can minimize this object. + """ viewerCanMinimize: Boolean! - """Can user react to this subject""" + """ + Can user react to this subject + """ viewerCanReact: Boolean! - """Check if the current viewer can update this object.""" + """ + Check if the current viewer can update this object. + """ viewerCanUpdate: Boolean! - """Reasons why the current viewer can not update this comment.""" + """ + Reasons why the current viewer can not update this comment. + """ viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! - """Did the viewer author this comment.""" + """ + Did the viewer author this comment. + """ viewerDidAuthor: Boolean! } -"""The connection type for CommitComment.""" +""" +The connection type for CommitComment. +""" type CommitCommentConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [CommitCommentEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [CommitComment] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type CommitCommentEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: CommitComment } -"""A thread of comments on a commit.""" +""" +A thread of comments on a commit. +""" type CommitCommentThread implements Node & RepositoryNode { - """The comments that exist in this thread.""" + """ + The comments that exist in this thread. + """ comments( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1395,65 +2177,105 @@ type CommitCommentThread implements Node & RepositoryNode { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): CommitCommentConnection! - """The commit the comments were made on.""" + """ + The commit the comments were made on. + """ commit: Commit! id: ID! - """The file the comments were made on.""" + """ + The file the comments were made on. + """ path: String - """The position in the diff for the commit that the comment was made on.""" + """ + The position in the diff for the commit that the comment was made on. + """ position: Int - """The repository associated with this node.""" + """ + The repository associated with this node. + """ repository: Repository! } -"""The connection type for Commit.""" +""" +The connection type for Commit. +""" type CommitConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [CommitEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Commit] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""Ordering options for commit contribution connections.""" +""" +Ordering options for commit contribution connections. +""" input CommitContributionOrder { - """The field by which to order commit contributions.""" + """ + The field by which to order commit contributions. + """ field: CommitContributionOrderField! - """The ordering direction.""" + """ + The ordering direction. + """ direction: OrderDirection! } -"""Properties by which commit contribution connections can be ordered.""" +""" +Properties by which commit contribution connections can be ordered. +""" enum CommitContributionOrderField { - """Order commit contributions by when they were made.""" + """ + Order commit contributions by when they were made. + """ OCCURRED_AT - """Order commit contributions by how many commits they represent.""" + """ + Order commit contributions by how many commits they represent. + """ COMMIT_COUNT } -"""This aggregates commits made by a user within one repository.""" +""" +This aggregates commits made by a user within one repository. +""" type CommitContributionsByRepository { - """The commit contributions, each representing a day.""" + """ + The commit contributions, each representing a day. + """ contributions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1461,10 +2283,14 @@ type CommitContributionsByRepository { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int """ @@ -1473,7 +2299,9 @@ type CommitContributionsByRepository { orderBy: CommitContributionOrder ): CreatedCommitContributionConnection! - """The repository in which the commits were made.""" + """ + The repository in which the commits were made. + """ repository: Repository! """ @@ -1487,55 +2315,85 @@ type CommitContributionsByRepository { url: URI! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type CommitEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Commit } -"""The connection type for Commit.""" +""" +The connection type for Commit. +""" type CommitHistoryConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [CommitEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Commit] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""A content attachment""" +""" +A content attachment +""" type ContentAttachment { """ The body text of the content attachment. This parameter supports markdown. """ body: String! - """The content reference that the content attachment is attached to.""" + """ + The content reference that the content attachment is attached to. + """ contentReference: ContentReference! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int! id: ID! - """The title of the content attachment.""" + """ + The title of the content attachment. + """ title: String! } -"""A content reference""" +""" +A content reference +""" type ContentReference { - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int! id: ID! - """The reference of the content reference.""" + """ + The reference of the content reference. + """ reference: String! } @@ -1547,27 +2405,33 @@ interface Contribution { Whether this contribution is associated with a record you do not have access to. For example, your own 'first issue' contribution may have been made on a repository you can no longer access. - """ isRestricted: Boolean! - """When this contribution was made.""" + """ + When this contribution was made. + """ occurredAt: DateTime! - """The HTTP path for this contribution.""" + """ + The HTTP path for this contribution. + """ resourcePath: URI! - """The HTTP URL for this contribution.""" + """ + The HTTP URL for this contribution. + """ url: URI! """ The user who made this contribution. - """ user: User! } -"""A calendar of contributions made on GitHub by a user.""" +""" +A calendar of contributions made on GitHub by a user. +""" type ContributionCalendar { """ A list of hex color codes used in this calendar. The darker the color, the more contributions it represents. @@ -1579,27 +2443,39 @@ type ContributionCalendar { """ isHalloween: Boolean! - """A list of the months of contributions in this calendar.""" + """ + A list of the months of contributions in this calendar. + """ months: [ContributionCalendarMonth!]! - """The count of total contributions in the calendar.""" + """ + The count of total contributions in the calendar. + """ totalContributions: Int! - """A list of the weeks of contributions in this calendar.""" + """ + A list of the weeks of contributions in this calendar. + """ weeks: [ContributionCalendarWeek!]! } -"""Represents a single day of contributions on GitHub by a user.""" +""" +Represents a single day of contributions on GitHub by a user. +""" type ContributionCalendarDay { """ The hex color code that represents how many contributions were made on this day compared to others in the calendar. """ color: String! - """How many contributions were made by the user on this day.""" + """ + How many contributions were made by the user on this day. + """ contributionCount: Int! - """The day this square represents.""" + """ + The day this square represents. + """ date: Date! """ @@ -1608,42 +2484,68 @@ type ContributionCalendarDay { weekday: Int! } -"""A month of contributions in a user's contribution graph.""" +""" +A month of contributions in a user's contribution graph. +""" type ContributionCalendarMonth { - """The date of the first day of this month.""" + """ + The date of the first day of this month. + """ firstDay: Date! - """The name of the month.""" + """ + The name of the month. + """ name: String! - """How many weeks started in this month.""" + """ + How many weeks started in this month. + """ totalWeeks: Int! - """The year the month occurred in.""" + """ + The year the month occurred in. + """ year: Int! } -"""A week of contributions in a user's contribution graph.""" +""" +A week of contributions in a user's contribution graph. +""" type ContributionCalendarWeek { - """The days of contributions in this week.""" + """ + The days of contributions in this week. + """ contributionDays: [ContributionCalendarDay!]! - """The date of the earliest square in this week.""" + """ + The date of the earliest square in this week. + """ firstDay: Date! } -"""Ordering options for contribution connections.""" +""" +Ordering options for contribution connections. +""" input ContributionOrder { - """The field by which to order contributions.""" + """ + The field by which to order contributions. + """ field: ContributionOrderField! - """The ordering direction.""" + """ + The ordering direction. + """ direction: OrderDirection! } -"""Properties by which contribution connections can be ordered.""" +""" +Properties by which contribution connections can be ordered. +""" enum ContributionOrderField { - """Order contributions by when they were made.""" + """ + Order contributions by when they were made. + """ OCCURRED_AT } @@ -1651,13 +2553,19 @@ enum ContributionOrderField { A contributions collection aggregates contributions such as opened issues and commits created by a user. """ type ContributionsCollection { - """Commit contributions made by the user, grouped by repository.""" + """ + Commit contributions made by the user, grouped by repository. + """ commitContributionsByRepository( - """How many repositories should be included.""" + """ + How many repositories should be included. + """ maxRepositories: Int = 25 ): [CommitContributionsByRepository!]! - """A calendar of this user's contributions on GitHub.""" + """ + A calendar of this user's contributions on GitHub. + """ contributionCalendar: ContributionCalendar! """ @@ -1667,7 +2575,6 @@ type ContributionsCollection { """ Determine if this collection's time span ends in the current month. - """ doesEndInCurrentMonth: Boolean! @@ -1677,7 +2584,9 @@ type ContributionsCollection { """ earliestRestrictedContributionDate: Date - """The ending date and time of this collection.""" + """ + The ending date and time of this collection. + """ endedAt: DateTime! """ @@ -1689,11 +2598,10 @@ type ContributionsCollection { firstIssueContribution( """ If true, the first issue will be returned even if it was opened outside of the collection's time range. - + **Upcoming Change on 2019-07-01 UTC** **Description:** `ignoreTimeRange` will be removed. Use a `ContributionsCollection` starting sufficiently far back **Reason:** ignore_time_range will be removed - """ ignoreTimeRange: Boolean = false ): CreatedIssueOrRestrictedContribution @@ -1707,11 +2615,10 @@ type ContributionsCollection { firstPullRequestContribution( """ If true, the first pull request will be returned even if it was opened outside of the collection's time range. - + **Upcoming Change on 2019-07-01 UTC** **Description:** `ignoreTimeRange` will be removed. Use a `ContributionsCollection` starting sufficiently far back **Reason:** ignore_time_range will be removed - """ ignoreTimeRange: Boolean = false ): CreatedPullRequestOrRestrictedContribution @@ -1725,11 +2632,10 @@ type ContributionsCollection { firstRepositoryContribution( """ If true, the first repository will be returned even if it was opened outside of the collection's time range. - + **Upcoming Change on 2019-07-01 UTC** **Description:** `ignoreTimeRange` will be removed. Use a `ContributionsCollection` starting sufficiently far back **Reason:** ignore_time_range will be removed - """ ignoreTimeRange: Boolean = false ): CreatedRepositoryOrRestrictedContribution @@ -1739,7 +2645,9 @@ type ContributionsCollection { """ hasActivityInThePast: Boolean! - """Determine if there are any contributions in this collection.""" + """ + Determine if there are any contributions in this collection. + """ hasAnyContributions: Boolean! """ @@ -1749,12 +2657,18 @@ type ContributionsCollection { """ hasAnyRestrictedContributions: Boolean! - """Whether or not the collector's time span is all within the same day.""" + """ + Whether or not the collector's time span is all within the same day. + """ isSingleDay: Boolean! - """A list of issues the user opened.""" + """ + A list of issues the user opened. + """ issueContributions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1762,31 +2676,49 @@ type ContributionsCollection { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Should the user's first issue ever be excluded from the result.""" + """ + Should the user's first issue ever be excluded from the result. + """ excludeFirst: Boolean = false - """Should the user's most commented issue be excluded from the result.""" + """ + Should the user's most commented issue be excluded from the result. + """ excludePopular: Boolean = false - """Ordering options for contributions returned from the connection.""" + """ + Ordering options for contributions returned from the connection. + """ orderBy: ContributionOrder ): CreatedIssueContributionConnection! - """Issue contributions made by the user, grouped by repository.""" + """ + Issue contributions made by the user, grouped by repository. + """ issueContributionsByRepository( - """How many repositories should be included.""" + """ + How many repositories should be included. + """ maxRepositories: Int = 25 - """Should the user's first issue ever be excluded from the result.""" + """ + Should the user's first issue ever be excluded from the result. + """ excludeFirst: Boolean = false - """Should the user's most commented issue be excluded from the result.""" + """ + Should the user's most commented issue be excluded from the result. + """ excludePopular: Boolean = false ): [IssueContributionsByRepository!]! @@ -1797,11 +2729,10 @@ type ContributionsCollection { joinedGitHubContribution( """ If true, the contribution will be returned even if the user signed up outside of the collection's time range. - + **Upcoming Change on 2019-07-01 UTC** **Description:** `ignoreTimeRange` will be removed. Use a `ContributionsCollection` starting sufficiently far back **Reason:** ignore_time_range will be removed - """ ignoreTimeRange: Boolean = false ): JoinedGitHubContribution @@ -1815,34 +2746,34 @@ type ContributionsCollection { """ When this collection's time range does not include any activity from the user, use this to get a different collection from an earlier time range that does have activity. - """ mostRecentCollectionWithActivity: ContributionsCollection """ Returns a different contributions collection from an earlier time range than this one that does not have any contributions. - """ mostRecentCollectionWithoutActivity: ContributionsCollection """ The issue the user opened on GitHub that received the most comments in the specified time frame. - """ popularIssueContribution: CreatedIssueContribution """ The pull request the user opened on GitHub that received the most comments in the specified time frame. - """ popularPullRequestContribution: CreatedPullRequestContribution - """Pull request contributions made by the user.""" + """ + Pull request contributions made by the user. + """ pullRequestContributions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1850,13 +2781,19 @@ type ContributionsCollection { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Should the user's first pull request ever be excluded from the result.""" + """ + Should the user's first pull request ever be excluded from the result. + """ excludeFirst: Boolean = false """ @@ -1864,16 +2801,24 @@ type ContributionsCollection { """ excludePopular: Boolean = false - """Ordering options for contributions returned from the connection.""" + """ + Ordering options for contributions returned from the connection. + """ orderBy: ContributionOrder ): CreatedPullRequestContributionConnection! - """Pull request contributions made by the user, grouped by repository.""" + """ + Pull request contributions made by the user, grouped by repository. + """ pullRequestContributionsByRepository( - """How many repositories should be included.""" + """ + How many repositories should be included. + """ maxRepositories: Int = 25 - """Should the user's first pull request ever be excluded from the result.""" + """ + Should the user's first pull request ever be excluded from the result. + """ excludeFirst: Boolean = false """ @@ -1882,9 +2827,13 @@ type ContributionsCollection { excludePopular: Boolean = false ): [PullRequestContributionsByRepository!]! - """Pull request review contributions made by the user.""" + """ + Pull request review contributions made by the user. + """ pullRequestReviewContributions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1892,13 +2841,19 @@ type ContributionsCollection { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Ordering options for contributions returned from the connection.""" + """ + Ordering options for contributions returned from the connection. + """ orderBy: ContributionOrder ): CreatedPullRequestReviewContributionConnection! @@ -1906,7 +2861,9 @@ type ContributionsCollection { Pull request review contributions made by the user, grouped by repository. """ pullRequestReviewContributionsByRepository( - """How many repositories should be included.""" + """ + How many repositories should be included. + """ maxRepositories: Int = 25 ): [PullRequestReviewContributionsByRepository!]! @@ -1914,7 +2871,9 @@ type ContributionsCollection { A list of repositories owned by the user that the user created in this time range. """ repositoryContributions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -1922,16 +2881,24 @@ type ContributionsCollection { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Should the user's first repository ever be excluded from the result.""" + """ + Should the user's first repository ever be excluded from the result. + """ excludeFirst: Boolean = false - """Ordering options for contributions returned from the connection.""" + """ + Ordering options for contributions returned from the connection. + """ orderBy: ContributionOrder ): CreatedRepositoryContributionConnection! @@ -1941,24 +2908,38 @@ type ContributionsCollection { """ restrictedContributionsCount: Int! - """The beginning date and time of this collection.""" + """ + The beginning date and time of this collection. + """ startedAt: DateTime! - """How many commits were made by the user in this time span.""" + """ + How many commits were made by the user in this time span. + """ totalCommitContributions: Int! - """How many issues the user opened.""" + """ + How many issues the user opened. + """ totalIssueContributions( - """Should the user's first issue ever be excluded from this count.""" + """ + Should the user's first issue ever be excluded from this count. + """ excludeFirst: Boolean = false - """Should the user's most commented issue be excluded from this count.""" + """ + Should the user's most commented issue be excluded from this count. + """ excludePopular: Boolean = false ): Int! - """How many pull requests the user opened.""" + """ + How many pull requests the user opened. + """ totalPullRequestContributions( - """Should the user's first pull request ever be excluded from this count.""" + """ + Should the user's first pull request ever be excluded from this count. + """ excludeFirst: Boolean = false """ @@ -1967,27 +2948,43 @@ type ContributionsCollection { excludePopular: Boolean = false ): Int! - """How many pull request reviews the user left.""" + """ + How many pull request reviews the user left. + """ totalPullRequestReviewContributions: Int! - """How many different repositories the user committed to.""" + """ + How many different repositories the user committed to. + """ totalRepositoriesWithContributedCommits: Int! - """How many different repositories the user opened issues in.""" + """ + How many different repositories the user opened issues in. + """ totalRepositoriesWithContributedIssues( - """Should the user's first issue ever be excluded from this count.""" + """ + Should the user's first issue ever be excluded from this count. + """ excludeFirst: Boolean = false - """Should the user's most commented issue be excluded from this count.""" + """ + Should the user's most commented issue be excluded from this count. + """ excludePopular: Boolean = false ): Int! - """How many different repositories the user left pull request reviews in.""" + """ + How many different repositories the user left pull request reviews in. + """ totalRepositoriesWithContributedPullRequestReviews: Int! - """How many different repositories the user opened pull requests in.""" + """ + How many different repositories the user opened pull requests in. + """ totalRepositoriesWithContributedPullRequests( - """Should the user's first pull request ever be excluded from this count.""" + """ + Should the user's first pull request ever be excluded from this count. + """ excludeFirst: Boolean = false """ @@ -1996,13 +2993,19 @@ type ContributionsCollection { excludePopular: Boolean = false ): Int! - """How many repositories the user created.""" + """ + How many repositories the user created. + """ totalRepositoryContributions( - """Should the user's first repository ever be excluded from this count.""" + """ + Should the user's first repository ever be excluded from this count. + """ excludeFirst: Boolean = false ): Int! - """The user who made the contributions in this collection.""" + """ + The user who made the contributions in this collection. + """ user: User! } @@ -2010,23 +3013,35 @@ type ContributionsCollection { Represents a 'converted_note_to_issue' event on a given issue or pull request. """ type ConvertedNoteToIssueEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! } -"""Autogenerated input type of ConvertProjectCardNoteToIssue""" +""" +Autogenerated input type of ConvertProjectCardNoteToIssue +""" input ConvertProjectCardNoteToIssueInput { - """The ProjectCard ID to convert.""" + """ + The ProjectCard ID to convert. + """ projectCardId: ID! - """The ID of the repository to create the issue in.""" + """ + The ID of the repository to create the issue in. + """ repositoryId: ID! """ @@ -2034,51 +3049,79 @@ input ConvertProjectCardNoteToIssueInput { """ title: String - """The body of the newly created issue.""" + """ + The body of the newly created issue. + """ body: String - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of ConvertProjectCardNoteToIssue""" +""" +Autogenerated return type of ConvertProjectCardNoteToIssue +""" type ConvertProjectCardNoteToIssuePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The updated ProjectCard.""" + """ + The updated ProjectCard. + """ projectCard: ProjectCard } -"""Autogenerated input type of CreateBranchProtectionRule""" +""" +Autogenerated input type of CreateBranchProtectionRule +""" input CreateBranchProtectionRuleInput { """ The global relay id of the repository in which a new branch protection rule should be created in. """ repositoryId: ID! - """The glob-like pattern used to determine matching branches.""" + """ + The glob-like pattern used to determine matching branches. + """ pattern: String! - """Are approving reviews required to update matching branches.""" + """ + Are approving reviews required to update matching branches. + """ requiresApprovingReviews: Boolean - """Number of approving reviews required to update matching branches.""" + """ + Number of approving reviews required to update matching branches. + """ requiredApprovingReviewCount: Int - """Are commits required to be signed.""" + """ + Are commits required to be signed. + """ requiresCommitSignatures: Boolean - """Can admins overwrite branch protection.""" + """ + Can admins overwrite branch protection. + """ isAdminEnforced: Boolean - """Are status checks required to update matching branches.""" + """ + Are status checks required to update matching branches. + """ requiresStatusChecks: Boolean - """Are branches required to be up to date before merging.""" + """ + Are branches required to be up to date before merging. + """ requiresStrictStatusChecks: Boolean - """Are reviews from code owners required to update matching branches.""" + """ + Are reviews from code owners required to update matching branches. + """ requiresCodeOwnerReviews: Boolean """ @@ -2086,7 +3129,9 @@ input CreateBranchProtectionRuleInput { """ dismissesStaleReviews: Boolean - """Is dismissal of pull request reviews restricted.""" + """ + Is dismissal of pull request reviews restricted. + """ restrictsReviewDismissals: Boolean """ @@ -2094,10 +3139,14 @@ input CreateBranchProtectionRuleInput { """ reviewDismissalActorIds: [ID!] - """Is pushing to matching branches restricted.""" + """ + Is pushing to matching branches restricted. + """ restrictsPushes: Boolean - """A list of User or Team IDs allowed to push to matching branches.""" + """ + A list of User or Team IDs allowed to push to matching branches. + """ pushActorIds: [ID!] """ @@ -2105,150 +3154,217 @@ input CreateBranchProtectionRuleInput { """ requiredStatusCheckContexts: [String!] - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of CreateBranchProtectionRule""" +""" +Autogenerated return type of CreateBranchProtectionRule +""" type CreateBranchProtectionRulePayload { - """The newly created BranchProtectionRule.""" + """ + The newly created BranchProtectionRule. + """ branchProtectionRule: BranchProtectionRule - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated input type of CreateContentAttachment""" +""" +Autogenerated input type of CreateContentAttachment +""" input CreateContentAttachmentInput { - """The node ID of the content_reference.""" + """ + The node ID of the content_reference. + """ contentReferenceId: ID! - """The title of the content attachment.""" + """ + The title of the content attachment. + """ title: String! - """The body of the content attachment, which may contain markdown.""" + """ + The body of the content attachment, which may contain markdown. + """ body: String! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Represents the contribution a user made by committing to a repository.""" +""" +Represents the contribution a user made by committing to a repository. +""" type CreatedCommitContribution implements Contribution { - """How many commits were made on this day to this repository by the user.""" + """ + How many commits were made on this day to this repository by the user. + """ commitCount: Int! """ Whether this contribution is associated with a record you do not have access to. For example, your own 'first issue' contribution may have been made on a repository you can no longer access. - """ isRestricted: Boolean! - """When this contribution was made.""" + """ + When this contribution was made. + """ occurredAt: DateTime! - """The repository the user made a commit in.""" + """ + The repository the user made a commit in. + """ repository: Repository! - """The HTTP path for this contribution.""" + """ + The HTTP path for this contribution. + """ resourcePath: URI! - """The HTTP URL for this contribution.""" + """ + The HTTP URL for this contribution. + """ url: URI! """ The user who made this contribution. - """ user: User! } -"""The connection type for CreatedCommitContribution.""" +""" +The connection type for CreatedCommitContribution. +""" type CreatedCommitContributionConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [CreatedCommitContributionEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [CreatedCommitContribution] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! """ Identifies the total count of commits across days and repositories in the connection. - """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type CreatedCommitContributionEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: CreatedCommitContribution } -"""Represents the contribution a user made on GitHub by opening an issue.""" +""" +Represents the contribution a user made on GitHub by opening an issue. +""" type CreatedIssueContribution implements Contribution { """ Whether this contribution is associated with a record you do not have access to. For example, your own 'first issue' contribution may have been made on a repository you can no longer access. - """ isRestricted: Boolean! - """The issue that was opened.""" + """ + The issue that was opened. + """ issue: Issue! - """When this contribution was made.""" + """ + When this contribution was made. + """ occurredAt: DateTime! - """The HTTP path for this contribution.""" + """ + The HTTP path for this contribution. + """ resourcePath: URI! - """The HTTP URL for this contribution.""" + """ + The HTTP URL for this contribution. + """ url: URI! """ The user who made this contribution. - """ user: User! } -"""The connection type for CreatedIssueContribution.""" +""" +The connection type for CreatedIssueContribution. +""" type CreatedIssueContributionConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [CreatedIssueContributionEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [CreatedIssueContribution] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type CreatedIssueContributionEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: CreatedIssueContribution } """ Represents either a issue the viewer can access or a restricted contribution. """ -union CreatedIssueOrRestrictedContribution = CreatedIssueContribution | RestrictedContribution +union CreatedIssueOrRestrictedContribution = + CreatedIssueContribution + | RestrictedContribution """ Represents the contribution a user made on GitHub by opening a pull request. @@ -2258,57 +3374,81 @@ type CreatedPullRequestContribution implements Contribution { Whether this contribution is associated with a record you do not have access to. For example, your own 'first issue' contribution may have been made on a repository you can no longer access. - """ isRestricted: Boolean! - """When this contribution was made.""" + """ + When this contribution was made. + """ occurredAt: DateTime! - """The pull request that was opened.""" + """ + The pull request that was opened. + """ pullRequest: PullRequest! - """The HTTP path for this contribution.""" + """ + The HTTP path for this contribution. + """ resourcePath: URI! - """The HTTP URL for this contribution.""" + """ + The HTTP URL for this contribution. + """ url: URI! """ The user who made this contribution. - """ user: User! } -"""The connection type for CreatedPullRequestContribution.""" +""" +The connection type for CreatedPullRequestContribution. +""" type CreatedPullRequestContributionConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [CreatedPullRequestContributionEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [CreatedPullRequestContribution] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type CreatedPullRequestContributionEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: CreatedPullRequestContribution } """ Represents either a pull request the viewer can access or a restricted contribution. """ -union CreatedPullRequestOrRestrictedContribution = CreatedPullRequestContribution | RestrictedContribution +union CreatedPullRequestOrRestrictedContribution = + CreatedPullRequestContribution + | RestrictedContribution """ Represents the contribution a user made by leaving a review on a pull request. @@ -2318,56 +3458,82 @@ type CreatedPullRequestReviewContribution implements Contribution { Whether this contribution is associated with a record you do not have access to. For example, your own 'first issue' contribution may have been made on a repository you can no longer access. - """ isRestricted: Boolean! - """When this contribution was made.""" + """ + When this contribution was made. + """ occurredAt: DateTime! - """The pull request the user reviewed.""" + """ + The pull request the user reviewed. + """ pullRequest: PullRequest! - """The review the user left on the pull request.""" + """ + The review the user left on the pull request. + """ pullRequestReview: PullRequestReview! - """The repository containing the pull request that the user reviewed.""" + """ + The repository containing the pull request that the user reviewed. + """ repository: Repository! - """The HTTP path for this contribution.""" + """ + The HTTP path for this contribution. + """ resourcePath: URI! - """The HTTP URL for this contribution.""" + """ + The HTTP URL for this contribution. + """ url: URI! """ The user who made this contribution. - """ user: User! } -"""The connection type for CreatedPullRequestReviewContribution.""" +""" +The connection type for CreatedPullRequestReviewContribution. +""" type CreatedPullRequestReviewContributionConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [CreatedPullRequestReviewContributionEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [CreatedPullRequestReviewContribution] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type CreatedPullRequestReviewContributionEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: CreatedPullRequestReviewContribution } @@ -2379,392 +3545,628 @@ type CreatedRepositoryContribution implements Contribution { Whether this contribution is associated with a record you do not have access to. For example, your own 'first issue' contribution may have been made on a repository you can no longer access. - """ isRestricted: Boolean! - """When this contribution was made.""" + """ + When this contribution was made. + """ occurredAt: DateTime! - """The repository that was created.""" + """ + The repository that was created. + """ repository: Repository! - """The HTTP path for this contribution.""" + """ + The HTTP path for this contribution. + """ resourcePath: URI! - """The HTTP URL for this contribution.""" + """ + The HTTP URL for this contribution. + """ url: URI! """ The user who made this contribution. - """ user: User! } -"""The connection type for CreatedRepositoryContribution.""" +""" +The connection type for CreatedRepositoryContribution. +""" type CreatedRepositoryContributionConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [CreatedRepositoryContributionEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [CreatedRepositoryContribution] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type CreatedRepositoryContributionEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: CreatedRepositoryContribution } """ Represents either a repository the viewer can access or a restricted contribution. """ -union CreatedRepositoryOrRestrictedContribution = CreatedRepositoryContribution | RestrictedContribution +union CreatedRepositoryOrRestrictedContribution = + CreatedRepositoryContribution + | RestrictedContribution -"""Autogenerated input type of CreateIssue""" +""" +Autogenerated input type of CreateIssue +""" input CreateIssueInput { - """The Node ID of the repository.""" + """ + The Node ID of the repository. + """ repositoryId: ID! - """The title for the issue.""" + """ + The title for the issue. + """ title: String! - """The body for the issue description.""" + """ + The body for the issue description. + """ body: String - """The Node ID for the user assignee for this issue.""" + """ + The Node ID for the user assignee for this issue. + """ assigneeIds: [ID!] - """The Node ID of the milestone for this issue.""" + """ + The Node ID of the milestone for this issue. + """ milestoneId: ID - """An array of Node IDs of labels for this issue.""" + """ + An array of Node IDs of labels for this issue. + """ labelIds: [ID!] - """An array of Node IDs for projects associated with this issue.""" + """ + An array of Node IDs for projects associated with this issue. + """ projectIds: [ID!] - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of CreateIssue""" +""" +Autogenerated return type of CreateIssue +""" type CreateIssuePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The new issue.""" + """ + The new issue. + """ issue: Issue } -"""Autogenerated input type of CreateProject""" +""" +Autogenerated input type of CreateProject +""" input CreateProjectInput { - """The owner ID to create the project under.""" + """ + The owner ID to create the project under. + """ ownerId: ID! - """The name of project.""" + """ + The name of project. + """ name: String! - """The description of project.""" + """ + The description of project. + """ body: String - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of CreateProject""" +""" +Autogenerated return type of CreateProject +""" type CreateProjectPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The new project.""" + """ + The new project. + """ project: Project } -"""Autogenerated input type of CreatePullRequest""" +""" +Autogenerated input type of CreatePullRequest +""" input CreatePullRequestInput { - """The Node ID of the repository.""" + """ + The Node ID of the repository. + """ repositoryId: ID! """ The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository. - """ baseRefName: String! """ The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head_ref_name` with a user like this: `username:branch`. - """ headRefName: String! - """The title of the pull request.""" + """ + The title of the pull request. + """ title: String! - """The contents of the pull request.""" + """ + The contents of the pull request. + """ body: String - """Indicates whether maintainers can modify the pull request.""" + """ + Indicates whether maintainers can modify the pull request. + """ maintainerCanModify: Boolean = true - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of CreatePullRequest""" +""" +Autogenerated return type of CreatePullRequest +""" type CreatePullRequestPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The new pull request.""" + """ + The new pull request. + """ pullRequest: PullRequest } -"""Represents a mention made by one issue or pull request to another.""" +""" +Represents a mention made by one issue or pull request to another. +""" type CrossReferencedEvent implements Node & UniformResourceLocatable { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Reference originated in a different repository.""" + """ + Reference originated in a different repository. + """ isCrossRepository: Boolean! - """Identifies when the reference was made.""" + """ + Identifies when the reference was made. + """ referencedAt: DateTime! - """The HTTP path for this pull request.""" + """ + The HTTP path for this pull request. + """ resourcePath: URI! - """Issue or pull request that made the reference.""" + """ + Issue or pull request that made the reference. + """ source: ReferencedSubject! - """Issue or pull request to which the reference was made.""" + """ + Issue or pull request to which the reference was made. + """ target: ReferencedSubject! - """The HTTP URL for this pull request.""" + """ + The HTTP URL for this pull request. + """ url: URI! - """Checks if the target will be closed when the source is merged.""" + """ + Checks if the target will be closed when the source is merged. + """ willCloseTarget: Boolean! } -"""An ISO-8601 encoded date string.""" +""" +An ISO-8601 encoded date string. +""" scalar Date -"""An ISO-8601 encoded UTC date string.""" +""" +An ISO-8601 encoded UTC date string. +""" scalar DateTime -"""Autogenerated input type of DeclineTopicSuggestion""" +""" +Autogenerated input type of DeclineTopicSuggestion +""" input DeclineTopicSuggestionInput { - """The Node ID of the repository.""" + """ + The Node ID of the repository. + """ repositoryId: ID! - """The name of the suggested topic.""" + """ + The name of the suggested topic. + """ name: String! - """The reason why the suggested topic is declined.""" + """ + The reason why the suggested topic is declined. + """ reason: TopicSuggestionDeclineReason! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of DeclineTopicSuggestion""" +""" +Autogenerated return type of DeclineTopicSuggestion +""" type DeclineTopicSuggestionPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The declined topic.""" + """ + The declined topic. + """ topic: Topic } -"""The possible default permissions for repositories.""" +""" +The possible default permissions for repositories. +""" enum DefaultRepositoryPermissionField { - """No access""" + """ + No access + """ NONE - """Can read repos by default""" + """ + Can read repos by default + """ READ - """Can read and write repos by default""" + """ + Can read and write repos by default + """ WRITE - """Can read, write, and administrate repos by default""" + """ + Can read, write, and administrate repos by default + """ ADMIN } -"""Entities that can be deleted.""" +""" +Entities that can be deleted. +""" interface Deletable { - """Check if the current viewer can delete this object.""" + """ + Check if the current viewer can delete this object. + """ viewerCanDelete: Boolean! } -"""Autogenerated input type of DeleteBranchProtectionRule""" +""" +Autogenerated input type of DeleteBranchProtectionRule +""" input DeleteBranchProtectionRuleInput { - """The global relay id of the branch protection rule to be deleted.""" + """ + The global relay id of the branch protection rule to be deleted. + """ branchProtectionRuleId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of DeleteBranchProtectionRule""" +""" +Autogenerated return type of DeleteBranchProtectionRule +""" type DeleteBranchProtectionRulePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated input type of DeleteIssueComment""" +""" +Autogenerated input type of DeleteIssueComment +""" input DeleteIssueCommentInput { - """The ID of the comment to delete.""" + """ + The ID of the comment to delete. + """ id: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of DeleteIssueComment""" +""" +Autogenerated return type of DeleteIssueComment +""" type DeleteIssueCommentPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated input type of DeleteIssue""" +""" +Autogenerated input type of DeleteIssue +""" input DeleteIssueInput { - """The ID of the issue to delete.""" + """ + The ID of the issue to delete. + """ issueId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of DeleteIssue""" +""" +Autogenerated return type of DeleteIssue +""" type DeleteIssuePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The repository the issue belonged to""" + """ + The repository the issue belonged to + """ repository: Repository } -"""Autogenerated input type of DeleteProjectCard""" +""" +Autogenerated input type of DeleteProjectCard +""" input DeleteProjectCardInput { - """The id of the card to delete.""" + """ + The id of the card to delete. + """ cardId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of DeleteProjectCard""" +""" +Autogenerated return type of DeleteProjectCard +""" type DeleteProjectCardPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The column the deleted card was in.""" + """ + The column the deleted card was in. + """ column: ProjectColumn - """The deleted card ID.""" + """ + The deleted card ID. + """ deletedCardId: ID } -"""Autogenerated input type of DeleteProjectColumn""" +""" +Autogenerated input type of DeleteProjectColumn +""" input DeleteProjectColumnInput { - """The id of the column to delete.""" + """ + The id of the column to delete. + """ columnId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of DeleteProjectColumn""" +""" +Autogenerated return type of DeleteProjectColumn +""" type DeleteProjectColumnPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The deleted column ID.""" + """ + The deleted column ID. + """ deletedColumnId: ID - """The project the deleted column was in.""" + """ + The project the deleted column was in. + """ project: Project } -"""Autogenerated input type of DeleteProject""" +""" +Autogenerated input type of DeleteProject +""" input DeleteProjectInput { - """The Project ID to update.""" + """ + The Project ID to update. + """ projectId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of DeleteProject""" +""" +Autogenerated return type of DeleteProject +""" type DeleteProjectPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The repository or organization the project was removed from.""" + """ + The repository or organization the project was removed from. + """ owner: ProjectOwner } -"""Autogenerated input type of DeletePullRequestReviewComment""" +""" +Autogenerated input type of DeletePullRequestReviewComment +""" input DeletePullRequestReviewCommentInput { - """The ID of the comment to delete.""" + """ + The ID of the comment to delete. + """ id: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of DeletePullRequestReviewComment""" +""" +Autogenerated return type of DeletePullRequestReviewComment +""" type DeletePullRequestReviewCommentPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The pull request review the deleted comment belonged to.""" + """ + The pull request review the deleted comment belonged to. + """ pullRequestReview: PullRequestReview } -"""Autogenerated input type of DeletePullRequestReview""" +""" +Autogenerated input type of DeletePullRequestReview +""" input DeletePullRequestReviewInput { - """The Node ID of the pull request review to delete.""" + """ + The Node ID of the pull request review to delete. + """ pullRequestReviewId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of DeletePullRequestReview""" +""" +Autogenerated return type of DeletePullRequestReview +""" type DeletePullRequestReviewPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The deleted pull request review.""" + """ + The deleted pull request review. + """ pullRequestReview: PullRequestReview } -"""Represents a 'demilestoned' event on a given issue or pull request.""" +""" +Represents a 'demilestoned' event on a given issue or pull request. +""" type DemilestonedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! @@ -2773,78 +4175,126 @@ type DemilestonedEvent implements Node { """ milestoneTitle: String! - """Object referenced by event.""" + """ + Object referenced by event. + """ subject: MilestoneItem! } -"""Represents a 'deployed' event on a given pull request.""" +""" +Represents a 'deployed' event on a given pull request. +""" type DeployedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The deployment associated with the 'deployed' event.""" + """ + The deployment associated with the 'deployed' event. + """ deployment: Deployment! id: ID! - """PullRequest referenced by event.""" + """ + PullRequest referenced by event. + """ pullRequest: PullRequest! - """The ref associated with the 'deployed' event.""" + """ + The ref associated with the 'deployed' event. + """ ref: Ref } -"""A repository deploy key.""" +""" +A repository deploy key. +""" type DeployKey implements Node { - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """The deploy key.""" + """ + The deploy key. + """ key: String! - """Whether or not the deploy key is read only.""" + """ + Whether or not the deploy key is read only. + """ readOnly: Boolean! - """The deploy key title.""" + """ + The deploy key title. + """ title: String! - """Whether or not the deploy key has been verified.""" + """ + Whether or not the deploy key has been verified. + """ verified: Boolean! } -"""The connection type for DeployKey.""" +""" +The connection type for DeployKey. +""" type DeployKeyConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [DeployKeyEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [DeployKey] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type DeployKeyEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: DeployKey } -"""Represents triggered deployment instance.""" +""" +Represents triggered deployment instance. +""" type Deployment implements Node { - """Identifies the commit sha of the deployment.""" + """ + Identifies the commit sha of the deployment. + """ commit: Commit """ @@ -2852,26 +4302,40 @@ type Deployment implements Node { """ commitOid: String! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the actor who triggered the deployment.""" + """ + Identifies the actor who triggered the deployment. + """ creator: Actor - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The deployment description.""" + """ + The deployment description. + """ description: String - """The environment to which this deployment was made.""" + """ + The environment to which this deployment was made. + """ environment: String id: ID! - """The latest status of this deployment.""" + """ + The latest status of this deployment. + """ latestStatus: DeploymentStatus - """Extra information that a deployment system might need.""" + """ + Extra information that a deployment system might need. + """ payload: String """ @@ -2879,15 +4343,23 @@ type Deployment implements Node { """ ref: Ref - """Identifies the repository associated with the deployment.""" + """ + Identifies the repository associated with the deployment. + """ repository: Repository! - """The current state of the deployment.""" + """ + The current state of the deployment. + """ state: DeploymentState - """A list of statuses associated with the deployment.""" + """ + A list of statuses associated with the deployment. + """ statuses( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -2895,41 +4367,65 @@ type Deployment implements Node { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): DeploymentStatusConnection - """The deployment task.""" + """ + The deployment task. + """ task: String - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! } -"""The connection type for Deployment.""" +""" +The connection type for Deployment. +""" type DeploymentConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [DeploymentEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Deployment] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type DeploymentEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Deployment } @@ -2937,187 +4433,307 @@ type DeploymentEdge { Represents a 'deployment_environment_changed' event on a given pull request. """ type DeploymentEnvironmentChangedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """The deployment status that updated the deployment environment.""" + """ + The deployment status that updated the deployment environment. + """ deploymentStatus: DeploymentStatus! id: ID! - """PullRequest referenced by event.""" + """ + PullRequest referenced by event. + """ pullRequest: PullRequest! } -"""Ordering options for deployment connections""" +""" +Ordering options for deployment connections +""" input DeploymentOrder { - """The field to order deployments by.""" + """ + The field to order deployments by. + """ field: DeploymentOrderField! - """The ordering direction.""" + """ + The ordering direction. + """ direction: OrderDirection! } -"""Properties by which deployment connections can be ordered.""" +""" +Properties by which deployment connections can be ordered. +""" enum DeploymentOrderField { - """Order collection by creation time""" + """ + Order collection by creation time + """ CREATED_AT } -"""The possible states in which a deployment can be.""" +""" +The possible states in which a deployment can be. +""" enum DeploymentState { - """The pending deployment was not updated after 30 minutes.""" + """ + The pending deployment was not updated after 30 minutes. + """ ABANDONED - """The deployment is currently active.""" + """ + The deployment is currently active. + """ ACTIVE - """An inactive transient deployment.""" + """ + An inactive transient deployment. + """ DESTROYED - """The deployment experienced an error.""" + """ + The deployment experienced an error. + """ ERROR - """The deployment has failed.""" + """ + The deployment has failed. + """ FAILURE - """The deployment is inactive.""" + """ + The deployment is inactive. + """ INACTIVE - """The deployment is pending.""" + """ + The deployment is pending. + """ PENDING - """The deployment has queued""" + """ + The deployment has queued + """ QUEUED - """The deployment is in progress.""" + """ + The deployment is in progress. + """ IN_PROGRESS } -"""Describes the status of a given deployment attempt.""" +""" +Describes the status of a given deployment attempt. +""" type DeploymentStatus implements Node { - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the actor who triggered the deployment.""" + """ + Identifies the actor who triggered the deployment. + """ creator: Actor - """Identifies the deployment associated with status.""" + """ + Identifies the deployment associated with status. + """ deployment: Deployment! - """Identifies the description of the deployment.""" + """ + Identifies the description of the deployment. + """ description: String - """Identifies the environment URL of the deployment.""" + """ + Identifies the environment URL of the deployment. + """ environmentUrl: URI id: ID! - """Identifies the log URL of the deployment.""" + """ + Identifies the log URL of the deployment. + """ logUrl: URI - """Identifies the current state of the deployment.""" + """ + Identifies the current state of the deployment. + """ state: DeploymentStatusState! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! } -"""The connection type for DeploymentStatus.""" +""" +The connection type for DeploymentStatus. +""" type DeploymentStatusConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [DeploymentStatusEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [DeploymentStatus] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type DeploymentStatusEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: DeploymentStatus } -"""The possible states for a deployment status.""" +""" +The possible states for a deployment status. +""" enum DeploymentStatusState { - """The deployment is pending.""" + """ + The deployment is pending. + """ PENDING - """The deployment was successful.""" + """ + The deployment was successful. + """ SUCCESS - """The deployment has failed.""" + """ + The deployment has failed. + """ FAILURE - """The deployment is inactive.""" + """ + The deployment is inactive. + """ INACTIVE - """The deployment experienced an error.""" + """ + The deployment experienced an error. + """ ERROR - """The deployment is queued""" + """ + The deployment is queued + """ QUEUED - """The deployment is in progress.""" + """ + The deployment is in progress. + """ IN_PROGRESS } -"""Autogenerated input type of DismissPullRequestReview""" +""" +Autogenerated input type of DismissPullRequestReview +""" input DismissPullRequestReviewInput { - """The Node ID of the pull request review to modify.""" + """ + The Node ID of the pull request review to modify. + """ pullRequestReviewId: ID! - """The contents of the pull request review dismissal message.""" + """ + The contents of the pull request review dismissal message. + """ message: String! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of DismissPullRequestReview""" +""" +Autogenerated return type of DismissPullRequestReview +""" type DismissPullRequestReviewPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The dismissed pull request review.""" + """ + The dismissed pull request review. + """ pullRequestReview: PullRequestReview } -"""Specifies a review comment to be left with a Pull Request Review.""" +""" +Specifies a review comment to be left with a Pull Request Review. +""" input DraftPullRequestReviewComment { - """Path to the file being commented on.""" + """ + Path to the file being commented on. + """ path: String! - """Position in the file to leave a comment on.""" + """ + Position in the file to leave a comment on. + """ position: Int! - """Body of the comment to leave.""" + """ + Body of the comment to leave. + """ body: String! } -"""An external identity provisioned by SAML SSO or SCIM.""" +""" +An external identity provisioned by SAML SSO or SCIM. +""" type ExternalIdentity implements Node { - """The GUID for this identity""" + """ + The GUID for this identity + """ guid: String! id: ID! - """Organization invitation for this SCIM-provisioned external identity""" + """ + Organization invitation for this SCIM-provisioned external identity + """ organizationInvitation: OrganizationInvitation - """SAML Identity attributes""" + """ + SAML Identity attributes + """ samlIdentity: ExternalIdentitySamlAttributes - """SCIM Identity attributes""" + """ + SCIM Identity attributes + """ scimIdentity: ExternalIdentityScimAttributes """ @@ -3126,77 +4742,127 @@ type ExternalIdentity implements Node { user: User } -"""The connection type for ExternalIdentity.""" +""" +The connection type for ExternalIdentity. +""" type ExternalIdentityConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [ExternalIdentityEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [ExternalIdentity] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type ExternalIdentityEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: ExternalIdentity } -"""SAML attributes for the External Identity""" +""" +SAML attributes for the External Identity +""" type ExternalIdentitySamlAttributes { - """The NameID of the SAML identity""" + """ + The NameID of the SAML identity + """ nameId: String } -"""SCIM attributes for the External Identity""" +""" +SCIM attributes for the External Identity +""" type ExternalIdentityScimAttributes { - """The userName of the SCIM identity""" + """ + The userName of the SCIM identity + """ username: String } -"""The connection type for User.""" +""" +The connection type for User. +""" type FollowerConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [UserEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [User] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""The connection type for User.""" +""" +The connection type for User. +""" type FollowingConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [UserEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [User] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""A Gist.""" +""" +A Gist. +""" type Gist implements Node & Starrable { - """A list of comments associated with the gist""" + """ + A list of comments associated with the gist + """ comments( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -3204,44 +4870,70 @@ type Gist implements Node & Starrable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): GistCommentConnection! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """The gist description.""" + """ + The gist description. + """ description: String - """The files in this gist.""" + """ + The files in this gist. + """ files( - """The maximum number of files to return.""" + """ + The maximum number of files to return. + """ limit: Int = 10 ): [GistFile] id: ID! - """Identifies if the gist is a fork.""" + """ + Identifies if the gist is a fork. + """ isFork: Boolean! - """Whether the gist is public or not.""" + """ + Whether the gist is public or not. + """ isPublic: Boolean! - """The gist name.""" + """ + The gist name. + """ name: String! - """The gist owner.""" + """ + The gist owner. + """ owner: RepositoryOwner - """Identifies when the gist was last pushed to.""" + """ + Identifies when the gist was last pushed to. + """ pushedAt: DateTime - """A list of users who have starred this starrable.""" + """ + A list of users who have starred this starrable. + """ stargazers( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -3249,17 +4941,25 @@ type Gist implements Node & Starrable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Order for connection""" + """ + Order for connection + """ orderBy: StarOrder ): StargazerConnection! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! """ @@ -3268,36 +4968,58 @@ type Gist implements Node & Starrable { viewerHasStarred: Boolean! } -"""Represents a comment on an Gist.""" +""" +Represents a comment on an Gist. +""" type GistComment implements Node & Comment & Deletable & Updatable & UpdatableComment { - """The actor who authored the comment.""" + """ + The actor who authored the comment. + """ author: Actor - """Author's association with the gist.""" + """ + Author's association with the gist. + """ authorAssociation: CommentAuthorAssociation! - """Identifies the comment body.""" + """ + Identifies the comment body. + """ body: String! - """The comment body rendered to HTML.""" + """ + The comment body rendered to HTML. + """ bodyHTML: HTML! - """The body rendered to text.""" + """ + The body rendered to text. + """ bodyText: String! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Check if this comment was created via an email reply.""" + """ + Check if this comment was created via an email reply. + """ createdViaEmail: Boolean! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The actor who edited the comment.""" + """ + The actor who edited the comment. + """ editor: Actor - """The associated gist.""" + """ + The associated gist. + """ gist: Gist! id: ID! @@ -3306,24 +5028,38 @@ type GistComment implements Node & Comment & Deletable & Updatable & UpdatableCo """ includesCreatedEdit: Boolean! - """Returns whether or not a comment has been minimized.""" + """ + Returns whether or not a comment has been minimized. + """ isMinimized: Boolean! - """The moment the editor made the last edit""" + """ + The moment the editor made the last edit + """ lastEditedAt: DateTime - """Returns why the comment was minimized.""" + """ + Returns why the comment was minimized. + """ minimizedReason: String - """Identifies when the comment was published at.""" + """ + Identifies when the comment was published at. + """ publishedAt: DateTime - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """A list of edits to this content.""" + """ + A list of edits to this content. + """ userContentEdits( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -3331,160 +5067,260 @@ type GistComment implements Node & Comment & Deletable & Updatable & UpdatableCo """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserContentEditConnection - """Check if the current viewer can delete this object.""" + """ + Check if the current viewer can delete this object. + """ viewerCanDelete: Boolean! - """Check if the current viewer can minimize this object.""" + """ + Check if the current viewer can minimize this object. + """ viewerCanMinimize: Boolean! - """Check if the current viewer can update this object.""" + """ + Check if the current viewer can update this object. + """ viewerCanUpdate: Boolean! - """Reasons why the current viewer can not update this comment.""" + """ + Reasons why the current viewer can not update this comment. + """ viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! - """Did the viewer author this comment.""" + """ + Did the viewer author this comment. + """ viewerDidAuthor: Boolean! } -"""The connection type for GistComment.""" +""" +The connection type for GistComment. +""" type GistCommentConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [GistCommentEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [GistComment] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type GistCommentEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: GistComment } -"""The connection type for Gist.""" +""" +The connection type for Gist. +""" type GistConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [GistEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Gist] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type GistEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Gist } -"""A file in a gist.""" +""" +A file in a gist. +""" type GistFile { """ The file name encoded to remove characters that are invalid in URL paths. """ encodedName: String - """The gist file encoding.""" + """ + The gist file encoding. + """ encoding: String - """The file extension from the file name.""" + """ + The file extension from the file name. + """ extension: String - """Indicates if this file is an image.""" + """ + Indicates if this file is an image. + """ isImage: Boolean! - """Whether the file's contents were truncated.""" + """ + Whether the file's contents were truncated. + """ isTruncated: Boolean! - """The programming language this file is written in.""" + """ + The programming language this file is written in. + """ language: Language - """The gist file name.""" + """ + The gist file name. + """ name: String - """The gist file size in bytes.""" + """ + The gist file size in bytes. + """ size: Int - """UTF8 text data or null if the file is binary""" + """ + UTF8 text data or null if the file is binary + """ text( - """Optionally truncate the returned file to this length.""" + """ + Optionally truncate the returned file to this length. + """ truncate: Int ): String } -"""Ordering options for gist connections""" +""" +Ordering options for gist connections +""" input GistOrder { - """The field to order repositories by.""" + """ + The field to order repositories by. + """ field: GistOrderField! - """The ordering direction.""" + """ + The ordering direction. + """ direction: OrderDirection! } -"""Properties by which gist connections can be ordered.""" +""" +Properties by which gist connections can be ordered. +""" enum GistOrderField { - """Order gists by creation time""" + """ + Order gists by creation time + """ CREATED_AT - """Order gists by update time""" + """ + Order gists by update time + """ UPDATED_AT - """Order gists by push time""" + """ + Order gists by push time + """ PUSHED_AT } -"""The privacy of a Gist""" +""" +The privacy of a Gist +""" enum GistPrivacy { - """Public""" + """ + Public + """ PUBLIC - """Secret""" + """ + Secret + """ SECRET - """Gists that are public and secret""" + """ + Gists that are public and secret + """ ALL } -"""Represents an actor in a Git commit (ie. an author or committer).""" +""" +Represents an actor in a Git commit (ie. an author or committer). +""" type GitActor { - """A URL pointing to the author's public avatar.""" + """ + A URL pointing to the author's public avatar. + """ avatarUrl( - """The size of the resulting square image.""" + """ + The size of the resulting square image. + """ size: Int ): URI! - """The timestamp of the Git action (authoring or committing).""" + """ + The timestamp of the Git action (authoring or committing). + """ date: GitTimestamp - """The email in the Git commit.""" + """ + The email in the Git commit. + """ email: String - """The name in the Git commit.""" + """ + The name in the Git commit. + """ name: String """ @@ -3493,55 +5329,89 @@ type GitActor { user: User } -"""Represents information about the GitHub instance.""" +""" +Represents information about the GitHub instance. +""" type GitHubMetadata { - """Returns a String that's a SHA of `github-services`""" + """ + Returns a String that's a SHA of `github-services` + """ gitHubServicesSha: GitObjectID! - """IP addresses that users connect to for git operations""" + """ + IP addresses that users connect to for git operations + """ gitIpAddresses: [String!] - """IP addresses that service hooks are sent from""" + """ + IP addresses that service hooks are sent from + """ hookIpAddresses: [String!] - """IP addresses that the importer connects from""" + """ + IP addresses that the importer connects from + """ importerIpAddresses: [String!] - """Whether or not users are verified""" + """ + Whether or not users are verified + """ isPasswordAuthenticationVerifiable: Boolean! - """IP addresses for GitHub Pages' A records""" + """ + IP addresses for GitHub Pages' A records + """ pagesIpAddresses: [String!] } -"""Represents a Git object.""" +""" +Represents a Git object. +""" interface GitObject { - """An abbreviated version of the Git object ID""" + """ + An abbreviated version of the Git object ID + """ abbreviatedOid: String! - """The HTTP path for this Git object""" + """ + The HTTP path for this Git object + """ commitResourcePath: URI! - """The HTTP URL for this Git object""" + """ + The HTTP URL for this Git object + """ commitUrl: URI! id: ID! - """The Git object ID""" + """ + The Git object ID + """ oid: GitObjectID! - """The Repository the Git object belongs to""" + """ + The Repository the Git object belongs to + """ repository: Repository! } -"""A Git object ID.""" +""" +A Git object ID. +""" scalar GitObjectID -"""Information about a signature (GPG or S/MIME) on a Commit or Tag.""" +""" +Information about a signature (GPG or S/MIME) on a Commit or Tag. +""" interface GitSignature { - """Email used to sign this object.""" + """ + Email used to sign this object. + """ email: String! - """True if the signature is valid and verified by GitHub.""" + """ + True if the signature is valid and verified by GitHub. + """ isValid: Boolean! """ @@ -3549,10 +5419,14 @@ interface GitSignature { """ payload: String! - """ASCII-armored signature header from object.""" + """ + ASCII-armored signature header from object. + """ signature: String! - """GitHub user corresponding to the email signing this commit.""" + """ + GitHub user corresponding to the email signing this commit. + """ signer: User """ @@ -3561,37 +5435,59 @@ interface GitSignature { """ state: GitSignatureState! - """True if the signature was made with GitHub's signing key.""" + """ + True if the signature was made with GitHub's signing key. + """ wasSignedByGitHub: Boolean! } -"""The state of a Git signature.""" +""" +The state of a Git signature. +""" enum GitSignatureState { - """Valid signature and verified by GitHub""" + """ + Valid signature and verified by GitHub + """ VALID - """Invalid signature""" + """ + Invalid signature + """ INVALID - """Malformed signature""" + """ + Malformed signature + """ MALFORMED_SIG - """Key used for signing not known to GitHub""" + """ + Key used for signing not known to GitHub + """ UNKNOWN_KEY - """Invalid email used for signing""" + """ + Invalid email used for signing + """ BAD_EMAIL - """Email used for signing unverified on GitHub""" + """ + Email used for signing unverified on GitHub + """ UNVERIFIED_EMAIL - """Email used for signing not known to GitHub""" + """ + Email used for signing not known to GitHub + """ NO_USER - """Unknown signature type""" + """ + Unknown signature type + """ UNKNOWN_SIG_TYPE - """Unsigned""" + """ + Unsigned + """ UNSIGNED """ @@ -3599,29 +5495,45 @@ enum GitSignatureState { """ GPGVERIFY_UNAVAILABLE - """Internal error - the GPG verification service misbehaved""" + """ + Internal error - the GPG verification service misbehaved + """ GPGVERIFY_ERROR - """The usage flags for the key that signed this don't allow signing""" + """ + The usage flags for the key that signed this don't allow signing + """ NOT_SIGNING_KEY - """Signing key expired""" + """ + Signing key expired + """ EXPIRED_KEY - """Valid signature, pending certificate revocation checking""" + """ + Valid signature, pending certificate revocation checking + """ OCSP_PENDING - """Valid siganture, though certificate revocation check failed""" + """ + Valid siganture, though certificate revocation check failed + """ OCSP_ERROR - """The signing certificate or its chain could not be verified""" + """ + The signing certificate or its chain could not be verified + """ BAD_CERT - """One or more certificates in chain has been revoked""" + """ + One or more certificates in chain has been revoked + """ OCSP_REVOKED } -"""Git SSH string""" +""" +Git SSH string +""" scalar GitSSHRemote """ @@ -3629,15 +5541,23 @@ An ISO-8601 encoded date string. Unlike the DateTime type, GitTimestamp is not c """ scalar GitTimestamp -"""Represents a GPG signature on a Commit or Tag.""" +""" +Represents a GPG signature on a Commit or Tag. +""" type GpgSignature implements GitSignature { - """Email used to sign this object.""" + """ + Email used to sign this object. + """ email: String! - """True if the signature is valid and verified by GitHub.""" + """ + True if the signature is valid and verified by GitHub. + """ isValid: Boolean! - """Hex-encoded ID of the key that signed this object.""" + """ + Hex-encoded ID of the key that signed this object. + """ keyId: String """ @@ -3645,10 +5565,14 @@ type GpgSignature implements GitSignature { """ payload: String! - """ASCII-armored signature header from object.""" + """ + ASCII-armored signature header from object. + """ signature: String! - """GitHub user corresponding to the email signing this commit.""" + """ + GitHub user corresponding to the email signing this commit. + """ signer: User """ @@ -3657,19 +5581,29 @@ type GpgSignature implements GitSignature { """ state: GitSignatureState! - """True if the signature was made with GitHub's signing key.""" + """ + True if the signature was made with GitHub's signing key. + """ wasSignedByGitHub: Boolean! } -"""Represents a 'head_ref_deleted' event on a given pull request.""" +""" +Represents a 'head_ref_deleted' event on a given pull request. +""" type HeadRefDeletedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the Ref associated with the `head_ref_deleted` event.""" + """ + Identifies the Ref associated with the `head_ref_deleted` event. + """ headRef: Ref """ @@ -3678,16 +5612,24 @@ type HeadRefDeletedEvent implements Node { headRefName: String! id: ID! - """PullRequest referenced by event.""" + """ + PullRequest referenced by event. + """ pullRequest: PullRequest! } -"""Represents a 'head_ref_force_pushed' event on a given pull request.""" +""" +Represents a 'head_ref_force_pushed' event on a given pull request. +""" type HeadRefForcePushedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the after commit SHA for the 'head_ref_force_pushed' event.""" + """ + Identifies the after commit SHA for the 'head_ref_force_pushed' event. + """ afterCommit: Commit """ @@ -3695,11 +5637,15 @@ type HeadRefForcePushedEvent implements Node { """ beforeCommit: Commit - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """PullRequest referenced by event.""" + """ + PullRequest referenced by event. + """ pullRequest: PullRequest! """ @@ -3708,27 +5654,39 @@ type HeadRefForcePushedEvent implements Node { ref: Ref } -"""Represents a 'head_ref_restored' event on a given pull request.""" +""" +Represents a 'head_ref_restored' event on a given pull request. +""" type HeadRefRestoredEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """PullRequest referenced by event.""" + """ + PullRequest referenced by event. + """ pullRequest: PullRequest! } -"""A string containing HTML code.""" +""" +A string containing HTML code. +""" scalar HTML """ The possible states in which authentication can be configured with an identity provider. """ enum IdentityProviderConfigurationState { - """Authentication with an identity provider is configured and enforced.""" + """ + Authentication with an identity provider is configured and enforced. + """ ENFORCED """ @@ -3736,28 +5694,44 @@ enum IdentityProviderConfigurationState { """ CONFIGURED - """Authentication with an identity provider is not configured.""" + """ + Authentication with an identity provider is not configured. + """ UNCONFIGURED } -"""Autogenerated input type of ImportProject""" +""" +Autogenerated input type of ImportProject +""" input ImportProjectInput { - """The name of the Organization or User to create the Project under.""" + """ + The name of the Organization or User to create the Project under. + """ ownerName: String! - """The name of Project.""" + """ + The name of Project. + """ name: String! - """The description of Project.""" + """ + The description of Project. + """ body: String - """Whether the Project is public or not.""" + """ + Whether the Project is public or not. + """ public: Boolean = false - """A list of columns containing issues and pull requests.""" + """ + A list of columns containing issues and pull requests. + """ columnImports: [ProjectColumnImport!]! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } @@ -3765,12 +5739,18 @@ input ImportProjectInput { An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. """ type Issue implements Node & Assignable & Closable & Comment & Updatable & UpdatableComment & Labelable & Lockable & Reactable & RepositoryNode & Subscribable & UniformResourceLocatable { - """Reason that the conversation was locked.""" + """ + Reason that the conversation was locked. + """ activeLockReason: LockReason - """A list of Users assigned to this object.""" + """ + A list of Users assigned to this object. + """ assignees( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -3778,26 +5758,40 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserConnection! - """The actor who authored the comment.""" + """ + The actor who authored the comment. + """ author: Actor - """Author's association with the subject of the comment.""" + """ + Author's association with the subject of the comment. + """ authorAssociation: CommentAuthorAssociation! - """Identifies the body of the issue.""" + """ + Identifies the body of the issue. + """ body: String! - """Identifies the body of the issue rendered to HTML.""" + """ + Identifies the body of the issue rendered to HTML. + """ bodyHTML: HTML! - """Identifies the body of the issue rendered to text.""" + """ + Identifies the body of the issue rendered to text. + """ bodyText: String! """ @@ -3805,12 +5799,18 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat """ closed: Boolean! - """Identifies the date and time when the object was closed.""" + """ + Identifies the date and time when the object was closed. + """ closedAt: DateTime - """A list of comments associated with the Issue.""" + """ + A list of comments associated with the Issue. + """ comments( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -3818,23 +5818,35 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): IssueCommentConnection! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Check if this comment was created via an email reply.""" + """ + Check if this comment was created via an email reply. + """ createdViaEmail: Boolean! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The actor who edited the comment.""" + """ + The actor who edited the comment. + """ editor: Actor id: ID! @@ -3843,9 +5855,13 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat """ includesCreatedEdit: Boolean! - """A list of labels associated with the object.""" + """ + A list of labels associated with the object. + """ labels( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -3853,28 +5869,44 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): LabelConnection - """The moment the editor made the last edit""" + """ + The moment the editor made the last edit + """ lastEditedAt: DateTime - """`true` if the object is locked""" + """ + `true` if the object is locked + """ locked: Boolean! - """Identifies the milestone associated with the issue.""" + """ + Identifies the milestone associated with the issue. + """ milestone: Milestone - """Identifies the issue number.""" + """ + Identifies the issue number. + """ number: Int! - """A list of Users that are participating in the Issue conversation.""" + """ + A list of Users that are participating in the Issue conversation. + """ participants( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -3882,16 +5914,24 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserConnection! - """List of project cards associated with this issue.""" + """ + List of project cards associated with this issue. + """ projectCards( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -3899,25 +5939,39 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """A list of archived states to filter the cards by""" + """ + A list of archived states to filter the cards by + """ archivedStates: [ProjectCardArchivedState] ): ProjectCardConnection! - """Identifies when the comment was published at.""" + """ + Identifies when the comment was published at. + """ publishedAt: DateTime - """A list of reactions grouped by content left on the subject.""" + """ + A list of reactions grouped by content left on the subject. + """ reactionGroups: [ReactionGroup!] - """A list of Reactions left on the Issue.""" + """ + A list of Reactions left on the Issue. + """ reactions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -3925,34 +5979,54 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Allows filtering Reactions by emoji.""" + """ + Allows filtering Reactions by emoji. + """ content: ReactionContent - """Allows specifying the order in which reactions are returned.""" + """ + Allows specifying the order in which reactions are returned. + """ orderBy: ReactionOrder ): ReactionConnection! - """The repository associated with this node.""" + """ + The repository associated with this node. + """ repository: Repository! - """The HTTP path for this issue""" + """ + The HTTP path for this issue + """ resourcePath: URI! - """Identifies the state of the issue.""" + """ + Identifies the state of the issue. + """ state: IssueState! - """A list of events, comments, commits, etc. associated with the issue.""" + """ + A list of events, comments, commits, etc. associated with the issue. + """ timeline( - """Allows filtering timeline events by a `since` timestamp.""" + """ + Allows filtering timeline events by a `since` timestamp. + """ since: DateTime - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -3960,25 +6034,39 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): IssueTimelineConnection! - """A list of events, comments, commits, etc. associated with the issue.""" + """ + A list of events, comments, commits, etc. associated with the issue. + """ timelineItems( - """Filter timeline items by a `since` timestamp.""" + """ + Filter timeline items by a `since` timestamp. + """ since: DateTime - """Skips the first _n_ elements in the list.""" + """ + Skips the first _n_ elements in the list. + """ skip: Int - """Filter timeline items by type.""" + """ + Filter timeline items by type. + """ itemTypes: [IssueTimelineItemsItemType!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -3986,25 +6074,39 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): IssueTimelineItemsConnection! - """Identifies the issue title.""" + """ + Identifies the issue title. + """ title: String! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this issue""" + """ + The HTTP URL for this issue + """ url: URI! - """A list of edits to this content.""" + """ + A list of edits to this content. + """ userContentEdits( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -4012,14 +6114,20 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserContentEditConnection - """Can user react to this subject""" + """ + Can user react to this subject + """ viewerCanReact: Boolean! """ @@ -4027,13 +6135,19 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat """ viewerCanSubscribe: Boolean! - """Check if the current viewer can update this object.""" + """ + Check if the current viewer can update this object. + """ viewerCanUpdate: Boolean! - """Reasons why the current viewer can not update this comment.""" + """ + Reasons why the current viewer can not update this comment. + """ viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! - """Did the viewer author this comment.""" + """ + Did the viewer author this comment. + """ viewerDidAuthor: Boolean! """ @@ -4042,33 +6156,53 @@ type Issue implements Node & Assignable & Closable & Comment & Updatable & Updat viewerSubscription: SubscriptionState } -"""Represents a comment on an Issue.""" +""" +Represents a comment on an Issue. +""" type IssueComment implements Node & Comment & Deletable & Updatable & UpdatableComment & Reactable & RepositoryNode { - """The actor who authored the comment.""" + """ + The actor who authored the comment. + """ author: Actor - """Author's association with the subject of the comment.""" + """ + Author's association with the subject of the comment. + """ authorAssociation: CommentAuthorAssociation! - """The body as Markdown.""" + """ + The body as Markdown. + """ body: String! - """The body rendered to HTML.""" + """ + The body rendered to HTML. + """ bodyHTML: HTML! - """The body rendered to text.""" + """ + The body rendered to text. + """ bodyText: String! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Check if this comment was created via an email reply.""" + """ + Check if this comment was created via an email reply. + """ createdViaEmail: Boolean! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The actor who edited the comment.""" + """ + The actor who edited the comment. + """ editor: Actor id: ID! @@ -4077,34 +6211,49 @@ type IssueComment implements Node & Comment & Deletable & Updatable & UpdatableC """ includesCreatedEdit: Boolean! - """Returns whether or not a comment has been minimized.""" + """ + Returns whether or not a comment has been minimized. + """ isMinimized: Boolean! - """Identifies the issue associated with the comment.""" + """ + Identifies the issue associated with the comment. + """ issue: Issue! - """The moment the editor made the last edit""" + """ + The moment the editor made the last edit + """ lastEditedAt: DateTime - """Returns why the comment was minimized.""" + """ + Returns why the comment was minimized. + """ minimizedReason: String - """Identifies when the comment was published at.""" + """ + Identifies when the comment was published at. + """ publishedAt: DateTime """ Returns the pull request associated with the comment, if this comment was made on a pull request. - """ pullRequest: PullRequest - """A list of reactions grouped by content left on the subject.""" + """ + A list of reactions grouped by content left on the subject. + """ reactionGroups: [ReactionGroup!] - """A list of Reactions left on the Issue.""" + """ + A list of Reactions left on the Issue. + """ reactions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -4112,34 +6261,54 @@ type IssueComment implements Node & Comment & Deletable & Updatable & UpdatableC """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Allows filtering Reactions by emoji.""" + """ + Allows filtering Reactions by emoji. + """ content: ReactionContent - """Allows specifying the order in which reactions are returned.""" + """ + Allows specifying the order in which reactions are returned. + """ orderBy: ReactionOrder ): ReactionConnection! - """The repository associated with this node.""" + """ + The repository associated with this node. + """ repository: Repository! - """The HTTP path for this issue comment""" + """ + The HTTP path for this issue comment + """ resourcePath: URI! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this issue comment""" + """ + The HTTP URL for this issue comment + """ url: URI! - """A list of edits to this content.""" + """ + A list of edits to this content. + """ userContentEdits( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -4147,76 +6316,124 @@ type IssueComment implements Node & Comment & Deletable & Updatable & UpdatableC """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserContentEditConnection - """Check if the current viewer can delete this object.""" + """ + Check if the current viewer can delete this object. + """ viewerCanDelete: Boolean! - """Check if the current viewer can minimize this object.""" + """ + Check if the current viewer can minimize this object. + """ viewerCanMinimize: Boolean! - """Can user react to this subject""" + """ + Can user react to this subject + """ viewerCanReact: Boolean! - """Check if the current viewer can update this object.""" + """ + Check if the current viewer can update this object. + """ viewerCanUpdate: Boolean! - """Reasons why the current viewer can not update this comment.""" + """ + Reasons why the current viewer can not update this comment. + """ viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! - """Did the viewer author this comment.""" + """ + Did the viewer author this comment. + """ viewerDidAuthor: Boolean! } -"""The connection type for IssueComment.""" +""" +The connection type for IssueComment. +""" type IssueCommentConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [IssueCommentEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [IssueComment] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type IssueCommentEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: IssueComment } -"""The connection type for Issue.""" +""" +The connection type for Issue. +""" type IssueConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [IssueEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Issue] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""This aggregates issues opened by a user within one repository.""" +""" +This aggregates issues opened by a user within one repository. +""" type IssueContributionsByRepository { - """The issue contributions.""" + """ + The issue contributions. + """ contributions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -4224,30 +6441,46 @@ type IssueContributionsByRepository { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Ordering options for contributions returned from the connection.""" + """ + Ordering options for contributions returned from the connection. + """ orderBy: ContributionOrder ): CreatedIssueContributionConnection! - """The repository in which the issues were opened.""" + """ + The repository in which the issues were opened. + """ repository: Repository! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type IssueEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Issue } -"""Ways in which to filter lists of issues.""" +""" +Ways in which to filter lists of issues. +""" input IssueFilters { """ List issues assigned to given name. Pass in `null` for issues with no assigned @@ -4255,13 +6488,19 @@ input IssueFilters { """ assignee: String - """List issues created by given name.""" + """ + List issues created by given name. + """ createdBy: String - """List issues where the list of label names exist on the issue.""" + """ + List issues where the list of label names exist on the issue. + """ labels: [String!] - """List issues where the given name is mentioned in the issue.""" + """ + List issues where the given name is mentioned in the issue. + """ mentioned: String """ @@ -4271,97 +6510,204 @@ input IssueFilters { """ milestone: String - """List issues that have been updated at or after the given date.""" + """ + List issues that have been updated at or after the given date. + """ since: DateTime - """List issues filtered by the list of states given.""" + """ + List issues filtered by the list of states given. + """ states: [IssueState!] - """List issues subscribed to by viewer.""" + """ + List issues subscribed to by viewer. + """ viewerSubscribed: Boolean = false } -"""Ways in which lists of issues can be ordered upon return.""" +""" +Ways in which lists of issues can be ordered upon return. +""" input IssueOrder { - """The field in which to order issues by.""" + """ + The field in which to order issues by. + """ field: IssueOrderField! - """The direction in which to order issues by the specified field.""" + """ + The direction in which to order issues by the specified field. + """ direction: OrderDirection! } -"""Properties by which issue connections can be ordered.""" +""" +Properties by which issue connections can be ordered. +""" enum IssueOrderField { - """Order issues by creation time""" + """ + Order issues by creation time + """ CREATED_AT - """Order issues by update time""" + """ + Order issues by update time + """ UPDATED_AT - """Order issues by comment count""" + """ + Order issues by comment count + """ COMMENTS } -"""Used for return value of Repository.issueOrPullRequest.""" +""" +Used for return value of Repository.issueOrPullRequest. +""" union IssueOrPullRequest = Issue | PullRequest -"""The possible PubSub channels for an issue.""" +""" +The possible PubSub channels for an issue. +""" enum IssuePubSubTopic { - """The channel ID for observing issue updates.""" + """ + The channel ID for observing issue updates. + """ UPDATED - """The channel ID for marking an issue as read.""" + """ + The channel ID for marking an issue as read. + """ MARKASREAD - """The channel ID for updating items on the issue timeline.""" + """ + The channel ID for updating items on the issue timeline. + """ TIMELINE - """The channel ID for observing issue state updates.""" + """ + The channel ID for observing issue state updates. + """ STATE } -"""The possible states of an issue.""" +""" +The possible states of an issue. +""" enum IssueState { - """An issue that is still open""" + """ + An issue that is still open + """ OPEN - """An issue that has been closed""" + """ + An issue that has been closed + """ CLOSED } -"""The connection type for IssueTimelineItem.""" +""" +The connection type for IssueTimelineItem. +""" type IssueTimelineConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [IssueTimelineItemEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [IssueTimelineItem] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An item in an issue timeline""" -union IssueTimelineItem = Commit | IssueComment | CrossReferencedEvent | ClosedEvent | ReopenedEvent | SubscribedEvent | UnsubscribedEvent | ReferencedEvent | AssignedEvent | UnassignedEvent | LabeledEvent | UnlabeledEvent | UserBlockedEvent | MilestonedEvent | DemilestonedEvent | RenamedTitleEvent | LockedEvent | UnlockedEvent | TransferredEvent +""" +An item in an issue timeline +""" +union IssueTimelineItem = + Commit + | IssueComment + | CrossReferencedEvent + | ClosedEvent + | ReopenedEvent + | SubscribedEvent + | UnsubscribedEvent + | ReferencedEvent + | AssignedEvent + | UnassignedEvent + | LabeledEvent + | UnlabeledEvent + | UserBlockedEvent + | MilestonedEvent + | DemilestonedEvent + | RenamedTitleEvent + | LockedEvent + | UnlockedEvent + | TransferredEvent -"""An edge in a connection.""" +""" +An edge in a connection. +""" type IssueTimelineItemEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: IssueTimelineItem } -"""An item in an issue timeline""" -union IssueTimelineItems = IssueComment | CrossReferencedEvent | AddedToProjectEvent | AssignedEvent | ClosedEvent | CommentDeletedEvent | ConvertedNoteToIssueEvent | DemilestonedEvent | LabeledEvent | LockedEvent | MentionedEvent | MilestonedEvent | MovedColumnsInProjectEvent | PinnedEvent | ReferencedEvent | RemovedFromProjectEvent | RenamedTitleEvent | ReopenedEvent | SubscribedEvent | TransferredEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UserBlockedEvent | UnpinnedEvent | UnsubscribedEvent +""" +An item in an issue timeline +""" +union IssueTimelineItems = + IssueComment + | CrossReferencedEvent + | AddedToProjectEvent + | AssignedEvent + | ClosedEvent + | CommentDeletedEvent + | ConvertedNoteToIssueEvent + | DemilestonedEvent + | LabeledEvent + | LockedEvent + | MentionedEvent + | MilestonedEvent + | MovedColumnsInProjectEvent + | PinnedEvent + | ReferencedEvent + | RemovedFromProjectEvent + | RenamedTitleEvent + | ReopenedEvent + | SubscribedEvent + | TransferredEvent + | UnassignedEvent + | UnlabeledEvent + | UnlockedEvent + | UserBlockedEvent + | UnpinnedEvent + | UnsubscribedEvent -"""The connection type for IssueTimelineItems.""" +""" +The connection type for IssueTimelineItems. +""" type IssueTimelineItemsConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [IssueTimelineItemsEdge] """ @@ -4369,7 +6715,9 @@ type IssueTimelineItemsConnection { """ filteredCount: Int! - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [IssueTimelineItems] """ @@ -4377,31 +6725,49 @@ type IssueTimelineItemsConnection { """ pageCount: Int! - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! - """Identifies the date and time when the timeline was last updated.""" + """ + Identifies the date and time when the timeline was last updated. + """ updatedAt: DateTime! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type IssueTimelineItemsEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: IssueTimelineItems } -"""The possible item types found in a timeline.""" +""" +The possible item types found in a timeline. +""" enum IssueTimelineItemsItemType { - """Represents a comment on an Issue.""" + """ + Represents a comment on an Issue. + """ ISSUE_COMMENT - """Represents a mention made by one issue or pull request to another.""" + """ + Represents a mention made by one issue or pull request to another. + """ CROSS_REFERENCED_EVENT """ @@ -4409,13 +6775,19 @@ enum IssueTimelineItemsItemType { """ ADDED_TO_PROJECT_EVENT - """Represents an 'assigned' event on any assignable object.""" + """ + Represents an 'assigned' event on any assignable object. + """ ASSIGNED_EVENT - """Represents a 'closed' event on any `Closable`.""" + """ + Represents a 'closed' event on any `Closable`. + """ CLOSED_EVENT - """Represents a 'comment_deleted' event on a given issue or pull request.""" + """ + Represents a 'comment_deleted' event on a given issue or pull request. + """ COMMENT_DELETED_EVENT """ @@ -4423,19 +6795,29 @@ enum IssueTimelineItemsItemType { """ CONVERTED_NOTE_TO_ISSUE_EVENT - """Represents a 'demilestoned' event on a given issue or pull request.""" + """ + Represents a 'demilestoned' event on a given issue or pull request. + """ DEMILESTONED_EVENT - """Represents a 'labeled' event on a given issue or pull request.""" + """ + Represents a 'labeled' event on a given issue or pull request. + """ LABELED_EVENT - """Represents a 'locked' event on a given issue or pull request.""" + """ + Represents a 'locked' event on a given issue or pull request. + """ LOCKED_EVENT - """Represents a 'mentioned' event on a given issue or pull request.""" + """ + Represents a 'mentioned' event on a given issue or pull request. + """ MENTIONED_EVENT - """Represents a 'milestoned' event on a given issue or pull request.""" + """ + Represents a 'milestoned' event on a given issue or pull request. + """ MILESTONED_EVENT """ @@ -4443,10 +6825,14 @@ enum IssueTimelineItemsItemType { """ MOVED_COLUMNS_IN_PROJECT_EVENT - """Represents a 'pinned' event on a given issue or pull request.""" + """ + Represents a 'pinned' event on a given issue or pull request. + """ PINNED_EVENT - """Represents a 'referenced' event on a given `ReferencedSubject`.""" + """ + Represents a 'referenced' event on a given `ReferencedSubject`. + """ REFERENCED_EVENT """ @@ -4454,93 +6840,141 @@ enum IssueTimelineItemsItemType { """ REMOVED_FROM_PROJECT_EVENT - """Represents a 'renamed' event on a given issue or pull request""" + """ + Represents a 'renamed' event on a given issue or pull request + """ RENAMED_TITLE_EVENT - """Represents a 'reopened' event on any `Closable`.""" + """ + Represents a 'reopened' event on any `Closable`. + """ REOPENED_EVENT - """Represents a 'subscribed' event on a given `Subscribable`.""" + """ + Represents a 'subscribed' event on a given `Subscribable`. + """ SUBSCRIBED_EVENT - """Represents a 'transferred' event on a given issue or pull request.""" + """ + Represents a 'transferred' event on a given issue or pull request. + """ TRANSFERRED_EVENT - """Represents an 'unassigned' event on any assignable object.""" + """ + Represents an 'unassigned' event on any assignable object. + """ UNASSIGNED_EVENT - """Represents an 'unlabeled' event on a given issue or pull request.""" + """ + Represents an 'unlabeled' event on a given issue or pull request. + """ UNLABELED_EVENT - """Represents an 'unlocked' event on a given issue or pull request.""" + """ + Represents an 'unlocked' event on a given issue or pull request. + """ UNLOCKED_EVENT - """Represents a 'user_blocked' event on a given user.""" + """ + Represents a 'user_blocked' event on a given user. + """ USER_BLOCKED_EVENT - """Represents an 'unpinned' event on a given issue or pull request.""" + """ + Represents an 'unpinned' event on a given issue or pull request. + """ UNPINNED_EVENT - """Represents an 'unsubscribed' event on a given `Subscribable`.""" + """ + Represents an 'unsubscribed' event on a given `Subscribable`. + """ UNSUBSCRIBED_EVENT } -"""Represents a user signing up for a GitHub account.""" +""" +Represents a user signing up for a GitHub account. +""" type JoinedGitHubContribution implements Contribution { """ Whether this contribution is associated with a record you do not have access to. For example, your own 'first issue' contribution may have been made on a repository you can no longer access. - """ isRestricted: Boolean! - """When this contribution was made.""" + """ + When this contribution was made. + """ occurredAt: DateTime! - """The HTTP path for this contribution.""" + """ + The HTTP path for this contribution. + """ resourcePath: URI! - """The HTTP URL for this contribution.""" + """ + The HTTP URL for this contribution. + """ url: URI! """ The user who made this contribution. - """ user: User! } -"""A label for categorizing Issues or Milestones with a given Repository.""" +""" +A label for categorizing Issues or Milestones with a given Repository. +""" type Label implements Node { - """Identifies the label color.""" + """ + Identifies the label color. + """ color: String! - """Identifies the date and time when the label was created.""" + """ + Identifies the date and time when the label was created. + """ createdAt: DateTime - """A brief description of this label.""" + """ + A brief description of this label. + """ description: String id: ID! - """Indicates whether or not this is a default label.""" + """ + Indicates whether or not this is a default label. + """ isDefault: Boolean! - """A list of issues associated with this label.""" + """ + A list of issues associated with this label. + """ issues( - """Ordering options for issues returned from the connection.""" + """ + Ordering options for issues returned from the connection. + """ orderBy: IssueOrder - """A list of label names to filter the pull requests by.""" + """ + A list of label names to filter the pull requests by. + """ labels: [String!] - """A list of states to filter the issues by.""" + """ + A list of states to filter the issues by. + """ states: [IssueState!] - """Filtering options for issues returned from the connection.""" + """ + Filtering options for issues returned from the connection. + """ filterBy: IssueFilters - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -4548,34 +6982,54 @@ type Label implements Node { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): IssueConnection! - """Identifies the label name.""" + """ + Identifies the label name. + """ name: String! - """A list of pull requests associated with this label.""" + """ + A list of pull requests associated with this label. + """ pullRequests( - """A list of states to filter the pull requests by.""" + """ + A list of states to filter the pull requests by. + """ states: [PullRequestState!] - """A list of label names to filter the pull requests by.""" + """ + A list of label names to filter the pull requests by. + """ labels: [String!] - """The head ref name to filter the pull requests by.""" + """ + The head ref name to filter the pull requests by. + """ headRefName: String - """The base ref name to filter the pull requests by.""" + """ + The base ref name to filter the pull requests by. + """ baseRefName: String - """Ordering options for pull requests returned from the connection.""" + """ + Ordering options for pull requests returned from the connection. + """ orderBy: IssueOrder - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -4583,31 +7037,49 @@ type Label implements Node { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PullRequestConnection! - """The repository associated with this label.""" + """ + The repository associated with this label. + """ repository: Repository! - """The HTTP path for this label.""" + """ + The HTTP path for this label. + """ resourcePath: URI! - """Identifies the date and time when the label was last updated.""" + """ + Identifies the date and time when the label was last updated. + """ updatedAt: DateTime - """The HTTP URL for this label.""" + """ + The HTTP URL for this label. + """ url: URI! } -"""An object that can have labels assigned to it.""" +""" +An object that can have labels assigned to it. +""" interface Labelable { - """A list of labels associated with the object.""" + """ + A list of labels associated with the object. + """ labels( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -4615,140 +7087,226 @@ interface Labelable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): LabelConnection } -"""The connection type for Label.""" +""" +The connection type for Label. +""" type LabelConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [LabelEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Label] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""Represents a 'labeled' event on a given issue or pull request.""" +""" +Represents a 'labeled' event on a given issue or pull request. +""" type LabeledEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Identifies the label associated with the 'labeled' event.""" + """ + Identifies the label associated with the 'labeled' event. + """ label: Label! - """Identifies the `Labelable` associated with the event.""" + """ + Identifies the `Labelable` associated with the event. + """ labelable: Labelable! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type LabelEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Label } -"""Represents a given language found in repositories.""" +""" +Represents a given language found in repositories. +""" type Language implements Node { - """The color defined for the current language.""" + """ + The color defined for the current language. + """ color: String id: ID! - """The name of the current language.""" + """ + The name of the current language. + """ name: String! } -"""A list of languages associated with the parent.""" +""" +A list of languages associated with the parent. +""" type LanguageConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [LanguageEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Language] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! - """The total size in bytes of files written in that language.""" + """ + The total size in bytes of files written in that language. + """ totalSize: Int! } -"""Represents the language of a repository.""" +""" +Represents the language of a repository. +""" type LanguageEdge { cursor: String! node: Language! - """The number of bytes of code written in the language.""" + """ + The number of bytes of code written in the language. + """ size: Int! } -"""Ordering options for language connections.""" +""" +Ordering options for language connections. +""" input LanguageOrder { - """The field to order languages by.""" + """ + The field to order languages by. + """ field: LanguageOrderField! - """The ordering direction.""" + """ + The ordering direction. + """ direction: OrderDirection! } -"""Properties by which language connections can be ordered.""" +""" +Properties by which language connections can be ordered. +""" enum LanguageOrderField { - """Order languages by the size of all files containing the language""" + """ + Order languages by the size of all files containing the language + """ SIZE } -"""A repository's open source license""" +""" +A repository's open source license +""" type License implements Node { - """The full text of the license""" + """ + The full text of the license + """ body: String! - """The conditions set by the license""" + """ + The conditions set by the license + """ conditions: [LicenseRule]! - """A human-readable description of the license""" + """ + A human-readable description of the license + """ description: String - """Whether the license should be featured""" + """ + Whether the license should be featured + """ featured: Boolean! - """Whether the license should be displayed in license pickers""" + """ + Whether the license should be displayed in license pickers + """ hidden: Boolean! id: ID! - """Instructions on how to implement the license""" + """ + Instructions on how to implement the license + """ implementation: String - """The lowercased SPDX ID of the license""" + """ + The lowercased SPDX ID of the license + """ key: String! - """The limitations set by the license""" + """ + The limitations set by the license + """ limitations: [LicenseRule]! - """The license full name specified by """ + """ + The license full name specified by + """ name: String! - """Customary short name if applicable (e.g, GPLv3)""" + """ + Customary short name if applicable (e.g, GPLv3) + """ nickname: String - """The permissions set by the license""" + """ + The permissions set by the license + """ permissions: [LicenseRule]! """ @@ -4756,72 +7314,116 @@ type License implements Node { """ pseudoLicense: Boolean! - """Short identifier specified by """ + """ + Short identifier specified by + """ spdxId: String - """URL to the license on """ + """ + URL to the license on + """ url: URI } -"""Describes a License's conditions, permissions, and limitations""" +""" +Describes a License's conditions, permissions, and limitations +""" type LicenseRule { - """A description of the rule""" + """ + A description of the rule + """ description: String! - """The machine-readable rule key""" + """ + The machine-readable rule key + """ key: String! - """The human-readable rule label""" + """ + The human-readable rule label + """ label: String! } -"""An object that can be locked.""" +""" +An object that can be locked. +""" interface Lockable { - """Reason that the conversation was locked.""" + """ + Reason that the conversation was locked. + """ activeLockReason: LockReason - """`true` if the object is locked""" + """ + `true` if the object is locked + """ locked: Boolean! } -"""Represents a 'locked' event on a given issue or pull request.""" +""" +Represents a 'locked' event on a given issue or pull request. +""" type LockedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Reason that the conversation was locked (optional).""" + """ + Reason that the conversation was locked (optional). + """ lockReason: LockReason - """Object that was locked.""" + """ + Object that was locked. + """ lockable: Lockable! } -"""Autogenerated input type of LockLockable""" +""" +Autogenerated input type of LockLockable +""" input LockLockableInput { - """ID of the issue or pull request to be locked.""" + """ + ID of the issue or pull request to be locked. + """ lockableId: ID! - """A reason for why the issue or pull request will be locked.""" + """ + A reason for why the issue or pull request will be locked. + """ lockReason: LockReason - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of LockLockable""" +""" +Autogenerated return type of LockLockable +""" type LockLockablePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The item that was locked.""" + """ + The item that was locked. + """ lockedRecord: Lockable } -"""The possible reasons that an issue or pull request was locked.""" +""" +The possible reasons that an issue or pull request was locked. +""" enum LockReason { """ The issue or pull request was locked because the conversation was off-topic. @@ -4844,37 +7446,59 @@ enum LockReason { SPAM } -"""A placeholder user for attribution of imported data on GitHub.""" +""" +A placeholder user for attribution of imported data on GitHub. +""" type Mannequin implements Node & Actor & UniformResourceLocatable { - """A URL pointing to the GitHub App's public avatar.""" + """ + A URL pointing to the GitHub App's public avatar. + """ avatarUrl( - """The size of the resulting square image.""" + """ + The size of the resulting square image. + """ size: Int ): URI! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! - """The username of the actor.""" + """ + The username of the actor. + """ login: String! - """The HTML path to this resource.""" + """ + The HTML path to this resource. + """ resourcePath: URI! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The URL to this resource.""" + """ + The URL to this resource. + """ url: URI! } -"""A public description of a Marketplace category.""" +""" +A public description of a Marketplace category. +""" type MarketplaceCategory implements Node { - """The category's description.""" + """ + The category's description. + """ description: String """ @@ -4883,31 +7507,49 @@ type MarketplaceCategory implements Node { howItWorks: String id: ID! - """The category's name.""" + """ + The category's name. + """ name: String! - """How many Marketplace listings have this as their primary category.""" + """ + How many Marketplace listings have this as their primary category. + """ primaryListingCount: Int! - """The HTTP path for this Marketplace category.""" + """ + The HTTP path for this Marketplace category. + """ resourcePath: URI! - """How many Marketplace listings have this as their secondary category.""" + """ + How many Marketplace listings have this as their secondary category. + """ secondaryListingCount: Int! - """The short name of the category used in its URL.""" + """ + The short name of the category used in its URL. + """ slug: String! - """The HTTP URL for this Marketplace category.""" + """ + The HTTP URL for this Marketplace category. + """ url: URI! } -"""A listing in the GitHub integration marketplace.""" +""" +A listing in the GitHub integration marketplace. +""" type MarketplaceListing implements Node { - """The GitHub App this listing represents.""" + """ + The GitHub App this listing represents. + """ app: App - """URL to the listing owner's company site.""" + """ + URL to the listing owner's company site. + """ companyUrl: URI """ @@ -4920,53 +7562,90 @@ type MarketplaceListing implements Node { """ configurationUrl: URI! - """URL to the listing's documentation.""" + """ + URL to the listing's documentation. + """ documentationUrl: URI - """The listing's detailed description.""" + """ + The listing's detailed description. + """ extendedDescription: String - """The listing's detailed description rendered to HTML.""" + """ + The listing's detailed description rendered to HTML. + """ extendedDescriptionHTML: HTML! - """The listing's introductory description.""" + """ + The listing's introductory description. + """ fullDescription: String! - """The listing's introductory description rendered to HTML.""" + """ + The listing's introductory description rendered to HTML. + """ fullDescriptionHTML: HTML! """ Whether this listing has been submitted for review from GitHub for approval to be displayed in the Marketplace. """ - hasApprovalBeenRequested: Boolean! @deprecated(reason: "`hasApprovalBeenRequested` will be removed. Use `isVerificationPendingFromDraft` instead. Removal on 2019-10-01 UTC.") + hasApprovalBeenRequested: Boolean! + @deprecated( + reason: "`hasApprovalBeenRequested` will be removed. Use `isVerificationPendingFromDraft` instead. Removal on 2019-10-01 UTC." + ) - """Does this listing have any plans with a free trial?""" + """ + Does this listing have any plans with a free trial? + """ hasPublishedFreeTrialPlans: Boolean! - """Does this listing have a terms of service link?""" + """ + Does this listing have a terms of service link? + """ hasTermsOfService: Boolean! - """A technical description of how this app works with GitHub.""" + """ + A technical description of how this app works with GitHub. + """ howItWorks: String - """The listing's technical description rendered to HTML.""" + """ + The listing's technical description rendered to HTML. + """ howItWorksHTML: HTML! id: ID! - """URL to install the product to the viewer's account or organization.""" + """ + URL to install the product to the viewer's account or organization. + """ installationUrl: URI - """Whether this listing's app has been installed for the current viewer""" + """ + Whether this listing's app has been installed for the current viewer + """ installedForViewer: Boolean! - """Whether this listing has been approved for display in the Marketplace.""" - isApproved: Boolean! @deprecated(reason: "`isApproved` will be removed. Use `isPublic` instead. Removal on 2019-10-01 UTC.") + """ + Whether this listing has been approved for display in the Marketplace. + """ + isApproved: Boolean! + @deprecated( + reason: "`isApproved` will be removed. Use `isPublic` instead. Removal on 2019-10-01 UTC." + ) - """Whether this listing has been removed from the Marketplace.""" + """ + Whether this listing has been removed from the Marketplace. + """ isArchived: Boolean! - """Whether this listing has been removed from the Marketplace.""" - isDelisted: Boolean! @deprecated(reason: "`isDelisted` will be removed. Use `isArchived` instead. Removal on 2019-10-01 UTC.") + """ + Whether this listing has been removed from the Marketplace. + """ + isDelisted: Boolean! + @deprecated( + reason: "`isDelisted` will be removed. Use `isArchived` instead. Removal on 2019-10-01 UTC." + ) """ Whether this listing is still an editable draft that has not been submitted @@ -4979,7 +7658,9 @@ type MarketplaceListing implements Node { """ isPaid: Boolean! - """Whether this listing has been approved for display in the Marketplace.""" + """ + Whether this listing has been approved for display in the Marketplace. + """ isPublic: Boolean! """ @@ -5012,16 +7693,24 @@ type MarketplaceListing implements Node { """ isVerified: Boolean! - """The hex color code, without the leading '#', for the logo background.""" + """ + The hex color code, without the leading '#', for the logo background. + """ logoBackgroundColor: String! - """URL for the listing's logo image.""" + """ + URL for the listing's logo image. + """ logoUrl( - """The size in pixels of the resulting square image.""" + """ + The size in pixels of the resulting square image. + """ size: Int = 400 ): URI - """The listing's full name.""" + """ + The listing's full name. + """ name: String! """ @@ -5029,10 +7718,14 @@ type MarketplaceListing implements Node { """ normalizedShortDescription: String! - """URL to the listing's detailed pricing.""" + """ + URL to the listing's detailed pricing. + """ pricingUrl: URI - """The category that best describes the listing.""" + """ + The category that best describes the listing. + """ primaryCategory: MarketplaceCategory! """ @@ -5040,25 +7733,39 @@ type MarketplaceListing implements Node { """ privacyPolicyUrl: URI! - """The HTTP path for the Marketplace listing.""" + """ + The HTTP path for the Marketplace listing. + """ resourcePath: URI! - """The URLs for the listing's screenshots.""" + """ + The URLs for the listing's screenshots. + """ screenshotUrls: [String]! - """An alternate category that describes the listing.""" + """ + An alternate category that describes the listing. + """ secondaryCategory: MarketplaceCategory - """The listing's very short description.""" + """ + The listing's very short description. + """ shortDescription: String! - """The short name of the listing used in its URL.""" + """ + The short name of the listing used in its URL. + """ slug: String! - """URL to the listing's status page.""" + """ + URL to the listing's status page. + """ statusUrl: URI - """An email address for support for this listing's app.""" + """ + An email address for support for this listing's app. + """ supportEmail: String """ @@ -5067,106 +7774,133 @@ type MarketplaceListing implements Node { """ supportUrl: URI! - """URL to the listing's terms of service.""" + """ + URL to the listing's terms of service. + """ termsOfServiceUrl: URI - """The HTTP URL for the Marketplace listing.""" + """ + The HTTP URL for the Marketplace listing. + """ url: URI! - """Can the current viewer add plans for this Marketplace listing.""" + """ + Can the current viewer add plans for this Marketplace listing. + """ viewerCanAddPlans: Boolean! - """Can the current viewer approve this Marketplace listing.""" + """ + Can the current viewer approve this Marketplace listing. + """ viewerCanApprove: Boolean! - """Can the current viewer delist this Marketplace listing.""" + """ + Can the current viewer delist this Marketplace listing. + """ viewerCanDelist: Boolean! - """Can the current viewer edit this Marketplace listing.""" + """ + Can the current viewer edit this Marketplace listing. + """ viewerCanEdit: Boolean! """ Can the current viewer edit the primary and secondary category of this Marketplace listing. - """ viewerCanEditCategories: Boolean! - """Can the current viewer edit the plans for this Marketplace listing.""" + """ + Can the current viewer edit the plans for this Marketplace listing. + """ viewerCanEditPlans: Boolean! """ Can the current viewer return this Marketplace listing to draft state so it becomes editable again. - """ viewerCanRedraft: Boolean! """ Can the current viewer reject this Marketplace listing by returning it to an editable draft state or rejecting it entirely. - """ viewerCanReject: Boolean! """ Can the current viewer request this listing be reviewed for display in the Marketplace as verified. - """ viewerCanRequestApproval: Boolean! """ Indicates whether the current user has an active subscription to this Marketplace listing. - """ viewerHasPurchased: Boolean! """ Indicates if the current user has purchased a subscription to this Marketplace listing for all of the organizations the user owns. - """ viewerHasPurchasedForAllOrganizations: Boolean! """ Does the current viewer role allow them to administer this Marketplace listing. - """ viewerIsListingAdmin: Boolean! } -"""Look up Marketplace Listings""" +""" +Look up Marketplace Listings +""" type MarketplaceListingConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [MarketplaceListingEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [MarketplaceListing] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type MarketplaceListingEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: MarketplaceListing } -"""Entities that have members who can set status messages.""" +""" +Entities that have members who can set status messages. +""" interface MemberStatusable { """ Get the status messages members of this entity have set that are either public or visible only to the organization. """ memberStatuses( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -5174,73 +7908,117 @@ interface MemberStatusable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Ordering options for user statuses returned from the connection.""" + """ + Ordering options for user statuses returned from the connection. + """ orderBy: UserStatusOrder ): UserStatusConnection! } -"""Represents a 'mentioned' event on a given issue or pull request.""" +""" +Represents a 'mentioned' event on a given issue or pull request. +""" type MentionedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! } -"""Whether or not a PullRequest can be merged.""" +""" +Whether or not a PullRequest can be merged. +""" enum MergeableState { - """The pull request can be merged.""" + """ + The pull request can be merged. + """ MERGEABLE - """The pull request cannot be merged due to merge conflicts.""" + """ + The pull request cannot be merged due to merge conflicts. + """ CONFLICTING - """The mergeability of the pull request is still being calculated.""" + """ + The mergeability of the pull request is still being calculated. + """ UNKNOWN } -"""Represents a 'merged' event on a given pull request.""" +""" +Represents a 'merged' event on a given pull request. +""" type MergedEvent implements Node & UniformResourceLocatable { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the commit associated with the `merge` event.""" + """ + Identifies the commit associated with the `merge` event. + """ commit: Commit - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Identifies the Ref associated with the `merge` event.""" + """ + Identifies the Ref associated with the `merge` event. + """ mergeRef: Ref - """Identifies the name of the Ref associated with the `merge` event.""" + """ + Identifies the name of the Ref associated with the `merge` event. + """ mergeRefName: String! - """PullRequest referenced by event.""" + """ + PullRequest referenced by event. + """ pullRequest: PullRequest! - """The HTTP path for this merged event.""" + """ + The HTTP path for this merged event. + """ resourcePath: URI! - """The HTTP URL for this merged event.""" + """ + The HTTP URL for this merged event. + """ url: URI! } -"""Autogenerated input type of MergePullRequest""" +""" +Autogenerated input type of MergePullRequest +""" input MergePullRequestInput { - """ID of the pull request to be merged.""" + """ + ID of the pull request to be merged. + """ pullRequestId: ID! """ @@ -5258,57 +8036,89 @@ input MergePullRequestInput { """ expectedHeadOid: GitObjectID - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of MergePullRequest""" +""" +Autogenerated return type of MergePullRequest +""" type MergePullRequestPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The pull request that was merged.""" + """ + The pull request that was merged. + """ pullRequest: PullRequest } -"""Represents a Milestone object on a given repository.""" +""" +Represents a Milestone object on a given repository. +""" type Milestone implements Node & Closable & UniformResourceLocatable { """ `true` if the object is closed (definition of closed may depend on type) """ closed: Boolean! - """Identifies the date and time when the object was closed.""" + """ + Identifies the date and time when the object was closed. + """ closedAt: DateTime - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the actor who created the milestone.""" + """ + Identifies the actor who created the milestone. + """ creator: Actor - """Identifies the description of the milestone.""" + """ + Identifies the description of the milestone. + """ description: String - """Identifies the due date of the milestone.""" + """ + Identifies the due date of the milestone. + """ dueOn: DateTime id: ID! - """A list of issues associated with the milestone.""" + """ + A list of issues associated with the milestone. + """ issues( - """Ordering options for issues returned from the connection.""" + """ + Ordering options for issues returned from the connection. + """ orderBy: IssueOrder - """A list of label names to filter the pull requests by.""" + """ + A list of label names to filter the pull requests by. + """ labels: [String!] - """A list of states to filter the issues by.""" + """ + A list of states to filter the issues by. + """ states: [IssueState!] - """Filtering options for issues returned from the connection.""" + """ + Filtering options for issues returned from the connection. + """ filterBy: IssueFilters - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -5316,34 +8126,54 @@ type Milestone implements Node & Closable & UniformResourceLocatable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): IssueConnection! - """Identifies the number of the milestone.""" + """ + Identifies the number of the milestone. + """ number: Int! - """A list of pull requests associated with the milestone.""" + """ + A list of pull requests associated with the milestone. + """ pullRequests( - """A list of states to filter the pull requests by.""" + """ + A list of states to filter the pull requests by. + """ states: [PullRequestState!] - """A list of label names to filter the pull requests by.""" + """ + A list of label names to filter the pull requests by. + """ labels: [String!] - """The head ref name to filter the pull requests by.""" + """ + The head ref name to filter the pull requests by. + """ headRefName: String - """The base ref name to filter the pull requests by.""" + """ + The base ref name to filter the pull requests by. + """ baseRefName: String - """Ordering options for pull requests returned from the connection.""" + """ + Ordering options for pull requests returned from the connection. + """ orderBy: IssueOrder - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -5351,117 +8181,191 @@ type Milestone implements Node & Closable & UniformResourceLocatable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PullRequestConnection! - """The repository associated with this milestone.""" + """ + The repository associated with this milestone. + """ repository: Repository! - """The HTTP path for this milestone""" + """ + The HTTP path for this milestone + """ resourcePath: URI! - """Identifies the state of the milestone.""" + """ + Identifies the state of the milestone. + """ state: MilestoneState! - """Identifies the title of the milestone.""" + """ + Identifies the title of the milestone. + """ title: String! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this milestone""" + """ + The HTTP URL for this milestone + """ url: URI! } -"""The connection type for Milestone.""" +""" +The connection type for Milestone. +""" type MilestoneConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [MilestoneEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Milestone] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""Represents a 'milestoned' event on a given issue or pull request.""" +""" +Represents a 'milestoned' event on a given issue or pull request. +""" type MilestonedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Identifies the milestone title associated with the 'milestoned' event.""" + """ + Identifies the milestone title associated with the 'milestoned' event. + """ milestoneTitle: String! - """Object referenced by event.""" + """ + Object referenced by event. + """ subject: MilestoneItem! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type MilestoneEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Milestone } -"""Types that can be inside a Milestone.""" +""" +Types that can be inside a Milestone. +""" union MilestoneItem = Issue | PullRequest -"""Ordering options for milestone connections.""" +""" +Ordering options for milestone connections. +""" input MilestoneOrder { - """The field to order milestones by.""" + """ + The field to order milestones by. + """ field: MilestoneOrderField! - """The ordering direction.""" + """ + The ordering direction. + """ direction: OrderDirection! } -"""Properties by which milestone connections can be ordered.""" +""" +Properties by which milestone connections can be ordered. +""" enum MilestoneOrderField { - """Order milestones by when they are due.""" + """ + Order milestones by when they are due. + """ DUE_DATE - """Order milestones by when they were created.""" + """ + Order milestones by when they were created. + """ CREATED_AT - """Order milestones by when they were last updated.""" + """ + Order milestones by when they were last updated. + """ UPDATED_AT - """Order milestones by their number.""" + """ + Order milestones by their number. + """ NUMBER } -"""The possible states of a milestone.""" +""" +The possible states of a milestone. +""" enum MilestoneState { - """A milestone that is still open.""" + """ + A milestone that is still open. + """ OPEN - """A milestone that has been closed.""" + """ + A milestone that has been closed. + """ CLOSED } -"""Autogenerated input type of MinimizeComment""" +""" +Autogenerated input type of MinimizeComment +""" input MinimizeCommentInput { - """The Node ID of the subject to modify.""" + """ + The Node ID of the subject to modify. + """ subjectId: ID! - """The classification of comment""" + """ + The classification of comment + """ classifier: ReportedContentClassifiers! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } @@ -5469,23 +8373,35 @@ input MinimizeCommentInput { Represents a 'moved_columns_in_project' event on a given issue or pull request. """ type MovedColumnsInProjectEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! } -"""Autogenerated input type of MoveProjectCard""" +""" +Autogenerated input type of MoveProjectCard +""" input MoveProjectCardInput { - """The id of the card to move.""" + """ + The id of the card to move. + """ cardId: ID! - """The id of the column to move it into.""" + """ + The id of the column to move it into. + """ columnId: ID! """ @@ -5493,22 +8409,34 @@ input MoveProjectCardInput { """ afterCardId: ID - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of MoveProjectCard""" +""" +Autogenerated return type of MoveProjectCard +""" type MoveProjectCardPayload { - """The new edge of the moved card.""" + """ + The new edge of the moved card. + """ cardEdge: ProjectCardEdge - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated input type of MoveProjectColumn""" +""" +Autogenerated input type of MoveProjectColumn +""" input MoveProjectColumnInput { - """The id of the column to move.""" + """ + The id of the column to move. + """ columnId: ID! """ @@ -5516,205 +8444,379 @@ input MoveProjectColumnInput { """ afterColumnId: ID - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of MoveProjectColumn""" +""" +Autogenerated return type of MoveProjectColumn +""" type MoveProjectColumnPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The new edge of the moved column.""" + """ + The new edge of the moved column. + """ columnEdge: ProjectColumnEdge } -"""The root query for implementing GraphQL mutations.""" +""" +The root query for implementing GraphQL mutations. +""" type Mutation { - """Applies a suggested topic to the repository.""" - acceptTopicSuggestion(input: AcceptTopicSuggestionInput!): AcceptTopicSuggestionPayload + """ + Applies a suggested topic to the repository. + """ + acceptTopicSuggestion( + input: AcceptTopicSuggestionInput! + ): AcceptTopicSuggestionPayload - """Adds assignees to an assignable object.""" - addAssigneesToAssignable(input: AddAssigneesToAssignableInput!): AddAssigneesToAssignablePayload + """ + Adds assignees to an assignable object. + """ + addAssigneesToAssignable( + input: AddAssigneesToAssignableInput! + ): AddAssigneesToAssignablePayload - """Adds a comment to an Issue or Pull Request.""" + """ + Adds a comment to an Issue or Pull Request. + """ addComment(input: AddCommentInput!): AddCommentPayload - """Adds labels to a labelable object.""" - addLabelsToLabelable(input: AddLabelsToLabelableInput!): AddLabelsToLabelablePayload + """ + Adds labels to a labelable object. + """ + addLabelsToLabelable( + input: AddLabelsToLabelableInput! + ): AddLabelsToLabelablePayload """ Adds a card to a ProjectColumn. Either `contentId` or `note` must be provided but **not** both. """ addProjectCard(input: AddProjectCardInput!): AddProjectCardPayload - """Adds a column to a Project.""" + """ + Adds a column to a Project. + """ addProjectColumn(input: AddProjectColumnInput!): AddProjectColumnPayload - """Adds a review to a Pull Request.""" - addPullRequestReview(input: AddPullRequestReviewInput!): AddPullRequestReviewPayload + """ + Adds a review to a Pull Request. + """ + addPullRequestReview( + input: AddPullRequestReviewInput! + ): AddPullRequestReviewPayload - """Adds a comment to a review.""" - addPullRequestReviewComment(input: AddPullRequestReviewCommentInput!): AddPullRequestReviewCommentPayload + """ + Adds a comment to a review. + """ + addPullRequestReviewComment( + input: AddPullRequestReviewCommentInput! + ): AddPullRequestReviewCommentPayload - """Adds a reaction to a subject.""" + """ + Adds a reaction to a subject. + """ addReaction(input: AddReactionInput!): AddReactionPayload - """Adds a star to a Starrable.""" + """ + Adds a star to a Starrable. + """ addStar(input: AddStarInput!): AddStarPayload - """Update your status on GitHub.""" + """ + Update your status on GitHub. + """ changeUserStatus(input: ChangeUserStatusInput!): ChangeUserStatusPayload - """Clears all labels from a labelable object.""" - clearLabelsFromLabelable(input: ClearLabelsFromLabelableInput!): ClearLabelsFromLabelablePayload + """ + Clears all labels from a labelable object. + """ + clearLabelsFromLabelable( + input: ClearLabelsFromLabelableInput! + ): ClearLabelsFromLabelablePayload """ Creates a new project by cloning configuration from an existing project. """ cloneProject(input: CloneProjectInput!): CloneProjectPayload - """Close an issue.""" + """ + Close an issue. + """ closeIssue(input: CloseIssueInput!): CloseIssuePayload - """Close a pull request.""" + """ + Close a pull request. + """ closePullRequest(input: ClosePullRequestInput!): ClosePullRequestPayload """ Convert a project note card to one associated with a newly created issue. """ - convertProjectCardNoteToIssue(input: ConvertProjectCardNoteToIssueInput!): ConvertProjectCardNoteToIssuePayload + convertProjectCardNoteToIssue( + input: ConvertProjectCardNoteToIssueInput! + ): ConvertProjectCardNoteToIssuePayload - """Create a new branch protection rule""" - createBranchProtectionRule(input: CreateBranchProtectionRuleInput!): CreateBranchProtectionRulePayload + """ + Create a new branch protection rule + """ + createBranchProtectionRule( + input: CreateBranchProtectionRuleInput! + ): CreateBranchProtectionRulePayload - """Creates a new issue.""" + """ + Creates a new issue. + """ createIssue(input: CreateIssueInput!): CreateIssuePayload - """Creates a new project.""" + """ + Creates a new project. + """ createProject(input: CreateProjectInput!): CreateProjectPayload - """Create a new pull request""" + """ + Create a new pull request + """ createPullRequest(input: CreatePullRequestInput!): CreatePullRequestPayload - """Rejects a suggested topic for the repository.""" - declineTopicSuggestion(input: DeclineTopicSuggestionInput!): DeclineTopicSuggestionPayload + """ + Rejects a suggested topic for the repository. + """ + declineTopicSuggestion( + input: DeclineTopicSuggestionInput! + ): DeclineTopicSuggestionPayload - """Delete a branch protection rule""" - deleteBranchProtectionRule(input: DeleteBranchProtectionRuleInput!): DeleteBranchProtectionRulePayload + """ + Delete a branch protection rule + """ + deleteBranchProtectionRule( + input: DeleteBranchProtectionRuleInput! + ): DeleteBranchProtectionRulePayload - """Deletes an Issue object.""" + """ + Deletes an Issue object. + """ deleteIssue(input: DeleteIssueInput!): DeleteIssuePayload - """Deletes an IssueComment object.""" + """ + Deletes an IssueComment object. + """ deleteIssueComment(input: DeleteIssueCommentInput!): DeleteIssueCommentPayload - """Deletes a project.""" + """ + Deletes a project. + """ deleteProject(input: DeleteProjectInput!): DeleteProjectPayload - """Deletes a project card.""" + """ + Deletes a project card. + """ deleteProjectCard(input: DeleteProjectCardInput!): DeleteProjectCardPayload - """Deletes a project column.""" - deleteProjectColumn(input: DeleteProjectColumnInput!): DeleteProjectColumnPayload + """ + Deletes a project column. + """ + deleteProjectColumn( + input: DeleteProjectColumnInput! + ): DeleteProjectColumnPayload - """Deletes a pull request review.""" - deletePullRequestReview(input: DeletePullRequestReviewInput!): DeletePullRequestReviewPayload + """ + Deletes a pull request review. + """ + deletePullRequestReview( + input: DeletePullRequestReviewInput! + ): DeletePullRequestReviewPayload - """Deletes a pull request review comment.""" - deletePullRequestReviewComment(input: DeletePullRequestReviewCommentInput!): DeletePullRequestReviewCommentPayload + """ + Deletes a pull request review comment. + """ + deletePullRequestReviewComment( + input: DeletePullRequestReviewCommentInput! + ): DeletePullRequestReviewCommentPayload - """Dismisses an approved or rejected pull request review.""" - dismissPullRequestReview(input: DismissPullRequestReviewInput!): DismissPullRequestReviewPayload + """ + Dismisses an approved or rejected pull request review. + """ + dismissPullRequestReview( + input: DismissPullRequestReviewInput! + ): DismissPullRequestReviewPayload - """Lock a lockable object""" + """ + Lock a lockable object + """ lockLockable(input: LockLockableInput!): LockLockablePayload - """Merge a pull request.""" + """ + Merge a pull request. + """ mergePullRequest(input: MergePullRequestInput!): MergePullRequestPayload - """Moves a project card to another place.""" + """ + Moves a project card to another place. + """ moveProjectCard(input: MoveProjectCardInput!): MoveProjectCardPayload - """Moves a project column to another place.""" + """ + Moves a project column to another place. + """ moveProjectColumn(input: MoveProjectColumnInput!): MoveProjectColumnPayload - """Removes assignees from an assignable object.""" - removeAssigneesFromAssignable(input: RemoveAssigneesFromAssignableInput!): RemoveAssigneesFromAssignablePayload + """ + Removes assignees from an assignable object. + """ + removeAssigneesFromAssignable( + input: RemoveAssigneesFromAssignableInput! + ): RemoveAssigneesFromAssignablePayload - """Removes labels from a Labelable object.""" - removeLabelsFromLabelable(input: RemoveLabelsFromLabelableInput!): RemoveLabelsFromLabelablePayload + """ + Removes labels from a Labelable object. + """ + removeLabelsFromLabelable( + input: RemoveLabelsFromLabelableInput! + ): RemoveLabelsFromLabelablePayload - """Removes outside collaborator from all repositories in an organization.""" - removeOutsideCollaborator(input: RemoveOutsideCollaboratorInput!): RemoveOutsideCollaboratorPayload + """ + Removes outside collaborator from all repositories in an organization. + """ + removeOutsideCollaborator( + input: RemoveOutsideCollaboratorInput! + ): RemoveOutsideCollaboratorPayload - """Removes a reaction from a subject.""" + """ + Removes a reaction from a subject. + """ removeReaction(input: RemoveReactionInput!): RemoveReactionPayload - """Removes a star from a Starrable.""" + """ + Removes a star from a Starrable. + """ removeStar(input: RemoveStarInput!): RemoveStarPayload - """Reopen a issue.""" + """ + Reopen a issue. + """ reopenIssue(input: ReopenIssueInput!): ReopenIssuePayload - """Reopen a pull request.""" + """ + Reopen a pull request. + """ reopenPullRequest(input: ReopenPullRequestInput!): ReopenPullRequestPayload - """Set review requests on a pull request.""" + """ + Set review requests on a pull request. + """ requestReviews(input: RequestReviewsInput!): RequestReviewsPayload - """Marks a review thread as resolved.""" - resolveReviewThread(input: ResolveReviewThreadInput!): ResolveReviewThreadPayload + """ + Marks a review thread as resolved. + """ + resolveReviewThread( + input: ResolveReviewThreadInput! + ): ResolveReviewThreadPayload - """Submits a pending pull request review.""" - submitPullRequestReview(input: SubmitPullRequestReviewInput!): SubmitPullRequestReviewPayload + """ + Submits a pending pull request review. + """ + submitPullRequestReview( + input: SubmitPullRequestReviewInput! + ): SubmitPullRequestReviewPayload - """Unlock a lockable object""" + """ + Unlock a lockable object + """ unlockLockable(input: UnlockLockableInput!): UnlockLockablePayload - """Unmark an issue as a duplicate of another issue.""" - unmarkIssueAsDuplicate(input: UnmarkIssueAsDuplicateInput!): UnmarkIssueAsDuplicatePayload + """ + Unmark an issue as a duplicate of another issue. + """ + unmarkIssueAsDuplicate( + input: UnmarkIssueAsDuplicateInput! + ): UnmarkIssueAsDuplicatePayload - """Marks a review thread as unresolved.""" - unresolveReviewThread(input: UnresolveReviewThreadInput!): UnresolveReviewThreadPayload + """ + Marks a review thread as unresolved. + """ + unresolveReviewThread( + input: UnresolveReviewThreadInput! + ): UnresolveReviewThreadPayload - """Create a new branch protection rule""" - updateBranchProtectionRule(input: UpdateBranchProtectionRuleInput!): UpdateBranchProtectionRulePayload + """ + Create a new branch protection rule + """ + updateBranchProtectionRule( + input: UpdateBranchProtectionRuleInput! + ): UpdateBranchProtectionRulePayload - """Updates an Issue.""" + """ + Updates an Issue. + """ updateIssue(input: UpdateIssueInput!): UpdateIssuePayload - """Updates an IssueComment object.""" + """ + Updates an IssueComment object. + """ updateIssueComment(input: UpdateIssueCommentInput!): UpdateIssueCommentPayload - """Updates an existing project.""" + """ + Updates an existing project. + """ updateProject(input: UpdateProjectInput!): UpdateProjectPayload - """Updates an existing project card.""" + """ + Updates an existing project card. + """ updateProjectCard(input: UpdateProjectCardInput!): UpdateProjectCardPayload - """Updates an existing project column.""" - updateProjectColumn(input: UpdateProjectColumnInput!): UpdateProjectColumnPayload + """ + Updates an existing project column. + """ + updateProjectColumn( + input: UpdateProjectColumnInput! + ): UpdateProjectColumnPayload - """Update a pull request""" + """ + Update a pull request + """ updatePullRequest(input: UpdatePullRequestInput!): UpdatePullRequestPayload - """Updates the body of a pull request review.""" - updatePullRequestReview(input: UpdatePullRequestReviewInput!): UpdatePullRequestReviewPayload + """ + Updates the body of a pull request review. + """ + updatePullRequestReview( + input: UpdatePullRequestReviewInput! + ): UpdatePullRequestReviewPayload - """Updates a pull request review comment.""" - updatePullRequestReviewComment(input: UpdatePullRequestReviewCommentInput!): UpdatePullRequestReviewCommentPayload + """ + Updates a pull request review comment. + """ + updatePullRequestReviewComment( + input: UpdatePullRequestReviewCommentInput! + ): UpdatePullRequestReviewCommentPayload - """Updates the state for subscribable subjects.""" + """ + Updates the state for subscribable subjects. + """ updateSubscription(input: UpdateSubscriptionInput!): UpdateSubscriptionPayload - """Replaces the repository's topics with the given topics.""" + """ + Replaces the repository's topics with the given topics. + """ updateTopics(input: UpdateTopicsInput!): UpdateTopicsPayload } -"""An object with an ID.""" +""" +An object with an ID. +""" interface Node { - """ID of the object.""" + """ + ID of the object. + """ id: ID! } @@ -5722,10 +8824,14 @@ interface Node { Possible directions in which to order a list of items when provided an `orderBy` argument. """ enum OrderDirection { - """Specifies an ascending order for a given `orderBy` argument.""" + """ + Specifies an ascending order for a given `orderBy` argument. + """ ASC - """Specifies a descending order for a given `orderBy` argument.""" + """ + Specifies a descending order for a given `orderBy` argument. + """ DESC } @@ -5737,27 +8843,41 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka Determine if this repository owner has any items that can be pinned to their profile. """ anyPinnableItems( - """Filter to only a particular kind of pinnable item.""" + """ + Filter to only a particular kind of pinnable item. + """ type: PinnableItemType ): Boolean! - """A URL pointing to the organization's public avatar.""" + """ + A URL pointing to the organization's public avatar. + """ avatarUrl( - """The size of the resulting square image.""" + """ + The size of the resulting square image. + """ size: Int ): URI! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The organization's public profile description.""" + """ + The organization's public profile description. + """ description: String - """The organization's public email.""" + """ + The organization's public email. + """ email: String id: ID! - """Whether the organization has verified its profile email and website.""" + """ + Whether the organization has verified its profile email and website. + """ isVerified: Boolean! """ @@ -5766,17 +8886,23 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ itemShowcase: ProfileItemShowcase! - """The organization's public profile location.""" + """ + The organization's public profile location. + """ location: String - """The organization's login name.""" + """ + The organization's login name. + """ login: String! """ Get the status messages members of this entity have set that are either public or visible only to the organization. """ memberStatuses( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -5784,19 +8910,29 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Ordering options for user statuses returned from the connection.""" + """ + Ordering options for user statuses returned from the connection. + """ orderBy: UserStatusOrder ): UserStatusConnection! - """A list of users who are members of this organization.""" + """ + A list of users who are members of this organization. + """ membersWithRole( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -5804,28 +8940,44 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): OrganizationMemberConnection! - """The organization's public profile name.""" + """ + The organization's public profile name. + """ name: String - """The HTTP path creating a new team""" + """ + The HTTP path creating a new team + """ newTeamResourcePath: URI! - """The HTTP URL creating a new team""" + """ + The HTTP URL creating a new team + """ newTeamUrl: URI! - """The billing email for the organization.""" + """ + The billing email for the organization. + """ organizationBillingEmail: String - """A list of users who have been invited to join this organization.""" + """ + A list of users who have been invited to join this organization. + """ pendingMembers( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -5833,10 +8985,14 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserConnection! @@ -5844,10 +9000,14 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka A list of repositories and gists this profile owner can pin to their profile. """ pinnableItems( - """Filter the types of pinnable items that are returned.""" + """ + Filter the types of pinnable items that are returned. + """ types: [PinnableItemType!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -5855,10 +9015,14 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PinnableItemConnection! @@ -5866,10 +9030,14 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka A list of repositories and gists this profile owner has pinned to their profile """ pinnedItems( - """Filter the types of pinned items that are returned.""" + """ + Filter the types of pinned items that are returned. + """ types: [PinnableItemType!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -5877,10 +9045,14 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PinnableItemConnection! @@ -5889,12 +9061,18 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ pinnedItemsRemaining: Int! - """A list of repositories this user has pinned to their profile""" + """ + A list of repositories this user has pinned to their profile + """ pinnedRepositories( - """If non-null, filters repositories according to privacy""" + """ + If non-null, filters repositories according to privacy + """ privacy: RepositoryPrivacy - """Ordering options for repositories returned from the connection""" + """ + Ordering options for repositories returned from the connection + """ orderBy: RepositoryOrder """ @@ -5916,7 +9094,9 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ isLocked: Boolean - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -5924,31 +9104,52 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - ): RepositoryConnection! @deprecated(reason: "pinnedRepositories will be removed Use ProfileOwner.pinnedItems instead. Removal on 2019-07-01 UTC.") + ): RepositoryConnection! + @deprecated( + reason: "pinnedRepositories will be removed Use ProfileOwner.pinnedItems instead. Removal on 2019-07-01 UTC." + ) - """Find project by number.""" + """ + Find project by number. + """ project( - """The project number to find.""" + """ + The project number to find. + """ number: Int! ): Project - """A list of projects under the owner.""" + """ + A list of projects under the owner. + """ projects( - """Ordering options for projects returned from the connection""" + """ + Ordering options for projects returned from the connection + """ orderBy: ProjectOrder - """Query to search projects by, currently only searching by name.""" + """ + Query to search projects by, currently only searching by name. + """ search: String - """A list of states to filter the projects by.""" + """ + A list of states to filter the projects by. + """ states: [ProjectState!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -5956,25 +9157,39 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): ProjectConnection! - """The HTTP path listing organization's projects""" + """ + The HTTP path listing organization's projects + """ projectsResourcePath: URI! - """The HTTP URL listing organization's projects""" + """ + The HTTP URL listing organization's projects + """ projectsUrl: URI! - """A list of repositories that the user owns.""" + """ + A list of repositories that the user owns. + """ repositories( - """If non-null, filters repositories according to privacy""" + """ + If non-null, filters repositories according to privacy + """ privacy: RepositoryPrivacy - """Ordering options for repositories returned from the connection""" + """ + Ordering options for repositories returned from the connection + """ orderBy: RepositoryOrder """ @@ -5996,7 +9211,9 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ isLocked: Boolean - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -6004,10 +9221,14 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int """ @@ -6016,9 +9237,13 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka isFork: Boolean ): RepositoryConnection! - """Find Repository.""" + """ + Find Repository. + """ repository( - """Name of Repository to find.""" + """ + Name of Repository to find. + """ name: String! ): Repository @@ -6028,21 +9253,33 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ requiresTwoFactorAuthentication: Boolean - """The HTTP path for this organization.""" + """ + The HTTP path for this organization. + """ resourcePath: URI! - """The Organization's SAML identity providers""" + """ + The Organization's SAML identity providers + """ samlIdentityProvider: OrganizationIdentityProvider - """Find an organization's team by its slug.""" + """ + Find an organization's team by its slug. + """ team( - """The name or slug of the team to find.""" + """ + The name or slug of the team to find. + """ slug: String! ): Team - """A list of teams in this organization.""" + """ + A list of teams in this organization. + """ teams( - """If non-null, filters teams according to privacy""" + """ + If non-null, filters teams according to privacy + """ privacy: TeamPrivacy """ @@ -6050,13 +9287,19 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ role: TeamRole - """If non-null, filters teams with query on team name and team slug""" + """ + If non-null, filters teams with query on team name and team slug + """ query: String - """User logins to filter by""" + """ + User logins to filter by + """ userLogins: [String!] - """Ordering options for teams returned from the connection""" + """ + Ordering options for teams returned from the connection + """ orderBy: TeamOrder """ @@ -6064,10 +9307,14 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ ldapMapped: Boolean - """If true, restrict to only root teams""" + """ + If true, restrict to only root teams + """ rootTeamsOnly: Boolean = false - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -6075,65 +9322,105 @@ type Organization implements Node & Actor & RegistryPackageOwner & RegistryPacka """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): TeamConnection! - """The HTTP path listing organization's teams""" + """ + The HTTP path listing organization's teams + """ teamsResourcePath: URI! - """The HTTP URL listing organization's teams""" + """ + The HTTP URL listing organization's teams + """ teamsUrl: URI! - """The HTTP URL for this organization.""" + """ + The HTTP URL for this organization. + """ url: URI! - """Organization is adminable by the viewer.""" + """ + Organization is adminable by the viewer. + """ viewerCanAdminister: Boolean! - """Can the viewer pin repositories and gists to the profile?""" + """ + Can the viewer pin repositories and gists to the profile? + """ viewerCanChangePinnedItems: Boolean! - """Can the current viewer create new projects on this owner.""" + """ + Can the current viewer create new projects on this owner. + """ viewerCanCreateProjects: Boolean! - """Viewer can create repositories on this organization""" + """ + Viewer can create repositories on this organization + """ viewerCanCreateRepositories: Boolean! - """Viewer can create teams on this organization.""" + """ + Viewer can create teams on this organization. + """ viewerCanCreateTeams: Boolean! - """Viewer is an active member of this organization.""" + """ + Viewer is an active member of this organization. + """ viewerIsAMember: Boolean! - """The organization's public profile URL.""" + """ + The organization's public profile URL. + """ websiteUrl: URI } -"""The connection type for Organization.""" +""" +The connection type for Organization. +""" type OrganizationConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [OrganizationEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Organization] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type OrganizationEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Organization } @@ -6146,9 +9433,13 @@ type OrganizationIdentityProvider implements Node { """ digestMethod: URI - """External Identities provisioned by this Identity Provider""" + """ + External Identities provisioned by this Identity Provider + """ externalIdentities( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -6156,10 +9447,14 @@ type OrganizationIdentityProvider implements Node { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): ExternalIdentityConnection! id: ID! @@ -6169,10 +9464,14 @@ type OrganizationIdentityProvider implements Node { """ idpCertificate: X509Certificate - """The Issuer Entity ID for the SAML Identity Provider""" + """ + The Issuer Entity ID for the SAML Identity Provider + """ issuer: String - """Organization this Identity Provider belongs to""" + """ + Organization this Identity Provider belongs to + """ organization: Organization """ @@ -6180,101 +9479,165 @@ type OrganizationIdentityProvider implements Node { """ signatureMethod: URI - """The URL endpoint for the Identity Provider's SAML SSO.""" + """ + The URL endpoint for the Identity Provider's SAML SSO. + """ ssoUrl: URI } -"""An Invitation for a user to an organization.""" +""" +An Invitation for a user to an organization. +""" type OrganizationInvitation implements Node { - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """The email address of the user invited to the organization.""" + """ + The email address of the user invited to the organization. + """ email: String id: ID! - """The type of invitation that was sent (e.g. email, user).""" + """ + The type of invitation that was sent (e.g. email, user). + """ invitationType: OrganizationInvitationType! - """The user who was invited to the organization.""" + """ + The user who was invited to the organization. + """ invitee: User - """The user who created the invitation.""" + """ + The user who created the invitation. + """ inviter: User! - """The organization the invite is for""" + """ + The organization the invite is for + """ organization: Organization! - """The user's pending role in the organization (e.g. member, owner).""" + """ + The user's pending role in the organization (e.g. member, owner). + """ role: OrganizationInvitationRole! } -"""The connection type for OrganizationInvitation.""" +""" +The connection type for OrganizationInvitation. +""" type OrganizationInvitationConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [OrganizationInvitationEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [OrganizationInvitation] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type OrganizationInvitationEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: OrganizationInvitation } -"""The possible organization invitation roles.""" +""" +The possible organization invitation roles. +""" enum OrganizationInvitationRole { - """The user is invited to be a direct member of the organization.""" + """ + The user is invited to be a direct member of the organization. + """ DIRECT_MEMBER - """The user is invited to be an admin of the organization.""" + """ + The user is invited to be an admin of the organization. + """ ADMIN - """The user is invited to be a billing manager of the organization.""" + """ + The user is invited to be a billing manager of the organization. + """ BILLING_MANAGER - """The user's previous role will be reinstated.""" + """ + The user's previous role will be reinstated. + """ REINSTATE } -"""The possible organization invitation types.""" +""" +The possible organization invitation types. +""" enum OrganizationInvitationType { - """The invitation was to an existing user.""" + """ + The invitation was to an existing user. + """ USER - """The invitation was to an email address.""" + """ + The invitation was to an email address. + """ EMAIL } -"""The connection type for User.""" +""" +The connection type for User. +""" type OrganizationMemberConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [OrganizationMemberEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [User] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""Represents a user within an organization.""" +""" +Represents a user within an organization. +""" type OrganizationMemberEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! """ @@ -6282,110 +9645,180 @@ type OrganizationMemberEdge { """ hasTwoFactorEnabled: Boolean - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: User - """The role this user has in the organization.""" + """ + The role this user has in the organization. + """ role: OrganizationMemberRole } -"""The possible roles within an organization for its members.""" +""" +The possible roles within an organization for its members. +""" enum OrganizationMemberRole { - """The user is a member of the organization.""" + """ + The user is a member of the organization. + """ MEMBER - """The user is an administrator of the organization.""" + """ + The user is an administrator of the organization. + """ ADMIN } -"""Information about pagination in a connection.""" +""" +Information about pagination in a connection. +""" type PageInfo { - """When paginating forwards, the cursor to continue.""" + """ + When paginating forwards, the cursor to continue. + """ endCursor: String - """When paginating forwards, are there more items?""" + """ + When paginating forwards, are there more items? + """ hasNextPage: Boolean! - """When paginating backwards, are there more items?""" + """ + When paginating backwards, are there more items? + """ hasPreviousPage: Boolean! - """When paginating backwards, the cursor to continue.""" + """ + When paginating backwards, the cursor to continue. + """ startCursor: String } -"""Types that can grant permissions on a repository to a user""" +""" +Types that can grant permissions on a repository to a user +""" union PermissionGranter = Organization | Repository | Team -"""A level of permission and source for a user's access to a repository.""" +""" +A level of permission and source for a user's access to a repository. +""" type PermissionSource { - """The organization the repository belongs to.""" + """ + The organization the repository belongs to. + """ organization: Organization! - """The level of access this source has granted to the user.""" + """ + The level of access this source has granted to the user. + """ permission: DefaultRepositoryPermissionField! - """The source of this permission.""" + """ + The source of this permission. + """ source: PermissionGranter! } -"""Autogenerated input type of PinIssue""" +""" +Autogenerated input type of PinIssue +""" input PinIssueInput { - """The ID of the issue to be pinned""" + """ + The ID of the issue to be pinned + """ issueId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Types that can be pinned to a profile page.""" +""" +Types that can be pinned to a profile page. +""" union PinnableItem = Gist | Repository -"""The connection type for PinnableItem.""" +""" +The connection type for PinnableItem. +""" type PinnableItemConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [PinnableItemEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [PinnableItem] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type PinnableItemEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: PinnableItem } -"""Represents items that can be pinned to a profile page or dashboard.""" +""" +Represents items that can be pinned to a profile page or dashboard. +""" enum PinnableItemType { - """A repository.""" + """ + A repository. + """ REPOSITORY - """A gist.""" + """ + A gist. + """ GIST - """An issue.""" + """ + An issue. + """ ISSUE } -"""Represents a 'pinned' event on a given issue or pull request.""" +""" +Represents a 'pinned' event on a given issue or pull request. +""" type PinnedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Identifies the issue associated with the event.""" + """ + Identifies the issue associated with the event. + """ issue: Issue! } @@ -6394,7 +9827,9 @@ A curatable list of repositories relating to a repository owner, which defaults to showing the most popular repositories they own. """ type ProfileItemShowcase { - """Whether or not the owner has pinned any repositories or gists.""" + """ + Whether or not the owner has pinned any repositories or gists. + """ hasPinnedItems: Boolean! """ @@ -6403,7 +9838,9 @@ type ProfileItemShowcase { repositories will be returned. """ items( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -6411,25 +9848,35 @@ type ProfileItemShowcase { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PinnableItemConnection! } -"""Represents any entity on GitHub that has a profile page.""" +""" +Represents any entity on GitHub that has a profile page. +""" interface ProfileOwner { """ Determine if this repository owner has any items that can be pinned to their profile. """ anyPinnableItems( - """Filter to only a particular kind of pinnable item.""" + """ + Filter to only a particular kind of pinnable item. + """ type: PinnableItemType ): Boolean! - """The public profile email.""" + """ + The public profile email. + """ email: String id: ID! @@ -6439,23 +9886,33 @@ interface ProfileOwner { """ itemShowcase: ProfileItemShowcase! - """The public profile location.""" + """ + The public profile location. + """ location: String - """The username used to login.""" + """ + The username used to login. + """ login: String! - """The public profile name.""" + """ + The public profile name. + """ name: String """ A list of repositories and gists this profile owner can pin to their profile. """ pinnableItems( - """Filter the types of pinnable items that are returned.""" + """ + Filter the types of pinnable items that are returned. + """ types: [PinnableItemType!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -6463,10 +9920,14 @@ interface ProfileOwner { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PinnableItemConnection! @@ -6474,10 +9935,14 @@ interface ProfileOwner { A list of repositories and gists this profile owner has pinned to their profile """ pinnedItems( - """Filter the types of pinned items that are returned.""" + """ + Filter the types of pinned items that are returned. + """ types: [PinnableItemType!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -6485,10 +9950,14 @@ interface ProfileOwner { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PinnableItemConnection! @@ -6497,10 +9966,14 @@ interface ProfileOwner { """ pinnedItemsRemaining: Int! - """Can the viewer pin repositories and gists to the profile?""" + """ + Can the viewer pin repositories and gists to the profile? + """ viewerCanChangePinnedItems: Boolean! - """The public profile website URL.""" + """ + The public profile website URL. + """ websiteUrl: URI } @@ -6508,10 +9981,14 @@ interface ProfileOwner { Projects manage issues, pull requests and notes within a project owner. """ type Project implements Node & Closable & Updatable { - """The project's description body.""" + """ + The project's description body. + """ body: String - """The projects description body rendered to HTML.""" + """ + The projects description body rendered to HTML. + """ bodyHTML: HTML! """ @@ -6519,12 +9996,18 @@ type Project implements Node & Closable & Updatable { """ closed: Boolean! - """Identifies the date and time when the object was closed.""" + """ + Identifies the date and time when the object was closed. + """ closedAt: DateTime - """List of columns in the project""" + """ + List of columns in the project + """ columns( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -6532,27 +10015,41 @@ type Project implements Node & Closable & Updatable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): ProjectColumnConnection! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """The actor who originally created the project.""" + """ + The actor who originally created the project. + """ creator: Actor - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! - """The project's name.""" + """ + The project's name. + """ name: String! - """The project's number.""" + """ + The project's number. + """ number: Int! """ @@ -6560,9 +10057,13 @@ type Project implements Node & Closable & Updatable { """ owner: ProjectOwner! - """List of pending cards in this project""" + """ + List of pending cards in this project + """ pendingCards( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -6570,140 +10071,223 @@ type Project implements Node & Closable & Updatable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """A list of archived states to filter the cards by""" + """ + A list of archived states to filter the cards by + """ archivedStates: [ProjectCardArchivedState] ): ProjectCardConnection! - """The HTTP path for this project""" + """ + The HTTP path for this project + """ resourcePath: URI! - """Whether the project is open or closed.""" + """ + Whether the project is open or closed. + """ state: ProjectState! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this project""" + """ + The HTTP URL for this project + """ url: URI! - """Check if the current viewer can update this object.""" + """ + Check if the current viewer can update this object. + """ viewerCanUpdate: Boolean! } -"""A card in a project.""" +""" +A card in a project. +""" type ProjectCard implements Node { """ The project column this card is associated under. A card may only belong to one project column at a time. The column field will be null if the card is created in a pending state and has yet to be associated with a column. Once cards are associated with a column, they will not become pending in the future. - """ column: ProjectColumn - """The card content item""" + """ + The card content item + """ content: ProjectCardItem - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """The actor who created this card""" + """ + The actor who created this card + """ creator: Actor - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! - """Whether the card is archived""" + """ + Whether the card is archived + """ isArchived: Boolean! - """The card note""" + """ + The card note + """ note: String - """The project that contains this card.""" + """ + The project that contains this card. + """ project: Project! - """The HTTP path for this card""" + """ + The HTTP path for this card + """ resourcePath: URI! - """The state of ProjectCard""" + """ + The state of ProjectCard + """ state: ProjectCardState - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this card""" + """ + The HTTP URL for this card + """ url: URI! } -"""The possible archived states of a project card.""" +""" +The possible archived states of a project card. +""" enum ProjectCardArchivedState { - """A project card that is archived""" + """ + A project card that is archived + """ ARCHIVED - """A project card that is not archived""" + """ + A project card that is not archived + """ NOT_ARCHIVED } -"""The connection type for ProjectCard.""" +""" +The connection type for ProjectCard. +""" type ProjectCardConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [ProjectCardEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [ProjectCard] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type ProjectCardEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: ProjectCard } -"""An issue or PR and its owning repository to be used in a project card.""" +""" +An issue or PR and its owning repository to be used in a project card. +""" input ProjectCardImport { - """Repository name with owner (owner/repository).""" + """ + Repository name with owner (owner/repository). + """ repository: String! - """The issue or pull request number.""" + """ + The issue or pull request number. + """ number: Int! } -"""Types that can be inside Project Cards.""" +""" +Types that can be inside Project Cards. +""" union ProjectCardItem = Issue | PullRequest -"""Various content states of a ProjectCard""" +""" +Various content states of a ProjectCard +""" enum ProjectCardState { - """The card has content only.""" + """ + The card has content only. + """ CONTENT_ONLY - """The card has a note only.""" + """ + The card has a note only. + """ NOTE_ONLY - """The card is redacted.""" + """ + The card is redacted. + """ REDACTED } -"""A column inside a project.""" +""" +A column inside a project. +""" type ProjectColumn implements Node { - """List of cards in the column""" + """ + List of cards in the column + """ cards( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -6711,157 +10295,257 @@ type ProjectColumn implements Node { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """A list of archived states to filter the cards by""" + """ + A list of archived states to filter the cards by + """ archivedStates: [ProjectCardArchivedState] ): ProjectCardConnection! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! - """The project column's name.""" + """ + The project column's name. + """ name: String! - """The project that contains this column.""" + """ + The project that contains this column. + """ project: Project! - """The semantic purpose of the column""" + """ + The semantic purpose of the column + """ purpose: ProjectColumnPurpose - """The HTTP path for this project column""" + """ + The HTTP path for this project column + """ resourcePath: URI! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this project column""" + """ + The HTTP URL for this project column + """ url: URI! } -"""The connection type for ProjectColumn.""" +""" +The connection type for ProjectColumn. +""" type ProjectColumnConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [ProjectColumnEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [ProjectColumn] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type ProjectColumnEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: ProjectColumn } -"""A project column and a list of its issues and PRs.""" +""" +A project column and a list of its issues and PRs. +""" input ProjectColumnImport { - """The name of the column.""" + """ + The name of the column. + """ columnName: String! - """The position of the column, starting from 0.""" + """ + The position of the column, starting from 0. + """ position: Int! - """A list of issues and pull requests in the column.""" + """ + A list of issues and pull requests in the column. + """ issues: [ProjectCardImport!] } -"""The semantic purpose of the column - todo, in progress, or done.""" +""" +The semantic purpose of the column - todo, in progress, or done. +""" enum ProjectColumnPurpose { - """The column contains cards still to be worked on""" + """ + The column contains cards still to be worked on + """ TODO - """The column contains cards which are currently being worked on""" + """ + The column contains cards which are currently being worked on + """ IN_PROGRESS - """The column contains cards which are complete""" + """ + The column contains cards which are complete + """ DONE } -"""A list of projects associated with the owner.""" +""" +A list of projects associated with the owner. +""" type ProjectConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [ProjectEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Project] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type ProjectEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Project } -"""Ways in which lists of projects can be ordered upon return.""" +""" +Ways in which lists of projects can be ordered upon return. +""" input ProjectOrder { - """The field in which to order projects by.""" + """ + The field in which to order projects by. + """ field: ProjectOrderField! - """The direction in which to order projects by the specified field.""" + """ + The direction in which to order projects by the specified field. + """ direction: OrderDirection! } -"""Properties by which project connections can be ordered.""" +""" +Properties by which project connections can be ordered. +""" enum ProjectOrderField { - """Order projects by creation time""" + """ + Order projects by creation time + """ CREATED_AT - """Order projects by update time""" + """ + Order projects by update time + """ UPDATED_AT - """Order projects by name""" + """ + Order projects by name + """ NAME } -"""Represents an owner of a Project.""" +""" +Represents an owner of a Project. +""" interface ProjectOwner { id: ID! - """Find project by number.""" + """ + Find project by number. + """ project( - """The project number to find.""" + """ + The project number to find. + """ number: Int! ): Project - """A list of projects under the owner.""" + """ + A list of projects under the owner. + """ projects( - """Ordering options for projects returned from the connection""" + """ + Ordering options for projects returned from the connection + """ orderBy: ProjectOrder - """Query to search projects by, currently only searching by name.""" + """ + Query to search projects by, currently only searching by name. + """ search: String - """A list of states to filter the projects by.""" + """ + A list of states to filter the projects by. + """ states: [ProjectState!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -6869,89 +10553,145 @@ interface ProjectOwner { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): ProjectConnection! - """The HTTP path listing owners projects""" + """ + The HTTP path listing owners projects + """ projectsResourcePath: URI! - """The HTTP URL listing owners projects""" + """ + The HTTP URL listing owners projects + """ projectsUrl: URI! - """Can the current viewer create new projects on this owner.""" + """ + Can the current viewer create new projects on this owner. + """ viewerCanCreateProjects: Boolean! } -"""State of the project; either 'open' or 'closed'""" +""" +State of the project; either 'open' or 'closed' +""" enum ProjectState { - """The project is open.""" + """ + The project is open. + """ OPEN - """The project is closed.""" + """ + The project is closed. + """ CLOSED } -"""A user's public key.""" +""" +A user's public key. +""" type PublicKey implements Node { - """The last time this authorization was used to perform an action""" + """ + The last time this authorization was used to perform an action + """ accessedAt: DateTime - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """The fingerprint for this PublicKey""" + """ + The fingerprint for this PublicKey + """ fingerprint: String id: ID! - """Whether this PublicKey is read-only or not""" + """ + Whether this PublicKey is read-only or not + """ isReadOnly: Boolean! - """The public key string""" + """ + The public key string + """ key: String! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! } -"""The connection type for PublicKey.""" +""" +The connection type for PublicKey. +""" type PublicKeyConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [PublicKeyEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [PublicKey] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type PublicKeyEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: PublicKey } -"""A repository pull request.""" +""" +A repository pull request. +""" type PullRequest implements Node & Assignable & Closable & Comment & Updatable & UpdatableComment & Labelable & Lockable & Reactable & RepositoryNode & Subscribable & UniformResourceLocatable { - """Reason that the conversation was locked.""" + """ + Reason that the conversation was locked. + """ activeLockReason: LockReason - """The number of additions in this pull request.""" + """ + The number of additions in this pull request. + """ additions: Int! - """A list of Users assigned to this object.""" + """ + A list of Users assigned to this object. + """ assignees( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -6959,20 +10699,30 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserConnection! - """The actor who authored the comment.""" + """ + The actor who authored the comment. + """ author: Actor - """Author's association with the subject of the comment.""" + """ + Author's association with the subject of the comment. + """ authorAssociation: CommentAuthorAssociation! - """Identifies the base Ref associated with the pull request.""" + """ + Identifies the base Ref associated with the pull request. + """ baseRef: Ref """ @@ -6985,30 +10735,48 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ baseRefOid: GitObjectID! - """The repository associated with this pull request's base Ref.""" + """ + The repository associated with this pull request's base Ref. + """ baseRepository: Repository - """The body as Markdown.""" + """ + The body as Markdown. + """ body: String! - """The body rendered to HTML.""" + """ + The body rendered to HTML. + """ bodyHTML: HTML! - """The body rendered to text.""" + """ + The body rendered to text. + """ bodyText: String! - """The number of changed files in this pull request.""" + """ + The number of changed files in this pull request. + """ changedFiles: Int! - """`true` if the pull request is closed""" + """ + `true` if the pull request is closed + """ closed: Boolean! - """Identifies the date and time when the object was closed.""" + """ + Identifies the date and time when the object was closed. + """ closedAt: DateTime - """A list of comments associated with the pull request.""" + """ + A list of comments associated with the pull request. + """ comments( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7016,10 +10784,14 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): IssueCommentConnection! @@ -7027,7 +10799,9 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & A list of commits present in this pull request's head branch not present in the base branch. """ commits( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7035,31 +10809,49 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PullRequestCommitConnection! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Check if this comment was created via an email reply.""" + """ + Check if this comment was created via an email reply. + """ createdViaEmail: Boolean! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The number of deletions in this pull request.""" + """ + The number of deletions in this pull request. + """ deletions: Int! - """The actor who edited this pull request's body.""" + """ + The actor who edited this pull request's body. + """ editor: Actor - """Lists the files changed within this pull request.""" + """ + Lists the files changed within this pull request. + """ files( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7067,14 +10859,20 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PullRequestChangedFileConnection - """Identifies the head Ref associated with the pull request.""" + """ + Identifies the head Ref associated with the pull request. + """ headRef: Ref """ @@ -7087,7 +10885,9 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ headRefOid: GitObjectID! - """The repository associated with this pull request's head Ref.""" + """ + The repository associated with this pull request's head Ref. + """ headRepository: Repository """ @@ -7101,12 +10901,18 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ includesCreatedEdit: Boolean! - """The head and base repositories are different.""" + """ + The head and base repositories are different. + """ isCrossRepository: Boolean! - """A list of labels associated with the object.""" + """ + A list of labels associated with the object. + """ labels( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7114,23 +10920,35 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): LabelConnection - """The moment the editor made the last edit""" + """ + The moment the editor made the last edit + """ lastEditedAt: DateTime - """`true` if the pull request is locked""" + """ + `true` if the pull request is locked + """ locked: Boolean! - """Indicates whether maintainers can modify the pull request.""" + """ + Indicates whether maintainers can modify the pull request. + """ maintainerCanModify: Boolean! - """The commit that was created when this pull request was merged.""" + """ + The commit that was created when this pull request was merged. + """ mergeCommit: Commit """ @@ -7138,26 +10956,38 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ mergeable: MergeableState! - """Whether or not the pull request was merged.""" + """ + Whether or not the pull request was merged. + """ merged: Boolean! - """The date and time that the pull request was merged.""" + """ + The date and time that the pull request was merged. + """ mergedAt: DateTime - """The actor who merged the pull request.""" + """ + The actor who merged the pull request. + """ mergedBy: Actor - """Identifies the milestone associated with the pull request.""" + """ + Identifies the milestone associated with the pull request. + """ milestone: Milestone - """Identifies the pull request number.""" + """ + Identifies the pull request number. + """ number: Int! """ A list of Users that are participating in the Pull Request conversation. """ participants( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7165,14 +10995,20 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserConnection! - """The permalink to the pull request.""" + """ + The permalink to the pull request. + """ permalink: URI! """ @@ -7183,9 +11019,13 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ potentialMergeCommit: Commit - """List of project cards associated with this pull request.""" + """ + List of project cards associated with this pull request. + """ projectCards( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7193,25 +11033,39 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """A list of archived states to filter the cards by""" + """ + A list of archived states to filter the cards by + """ archivedStates: [ProjectCardArchivedState] ): ProjectCardConnection! - """Identifies when the comment was published at.""" + """ + Identifies when the comment was published at. + """ publishedAt: DateTime - """A list of reactions grouped by content left on the subject.""" + """ + A list of reactions grouped by content left on the subject. + """ reactionGroups: [ReactionGroup!] - """A list of Reactions left on the Issue.""" + """ + A list of Reactions left on the Issue. + """ reactions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7219,34 +11073,54 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Allows filtering Reactions by emoji.""" + """ + Allows filtering Reactions by emoji. + """ content: ReactionContent - """Allows specifying the order in which reactions are returned.""" + """ + Allows specifying the order in which reactions are returned. + """ orderBy: ReactionOrder ): ReactionConnection! - """The repository associated with this node.""" + """ + The repository associated with this node. + """ repository: Repository! - """The HTTP path for this pull request.""" + """ + The HTTP path for this pull request. + """ resourcePath: URI! - """The HTTP path for reverting this pull request.""" + """ + The HTTP path for reverting this pull request. + """ revertResourcePath: URI! - """The HTTP URL for reverting this pull request.""" + """ + The HTTP URL for reverting this pull request. + """ revertUrl: URI! - """A list of review requests associated with the pull request.""" + """ + A list of review requests associated with the pull request. + """ reviewRequests( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7254,16 +11128,24 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): ReviewRequestConnection - """The list of all review threads for this pull request.""" + """ + The list of all review threads for this pull request. + """ reviewThreads( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7271,16 +11153,24 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PullRequestReviewThreadConnection! - """A list of reviews associated with the pull request.""" + """ + A list of reviews associated with the pull request. + """ reviews( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7288,20 +11178,30 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """A list of states to filter the reviews.""" + """ + A list of states to filter the reviews. + """ states: [PullRequestReviewState!] - """Filter by author of the review.""" + """ + Filter by author of the review. + """ author: String ): PullRequestReviewConnection - """Identifies the state of the pull request.""" + """ + Identifies the state of the pull request. + """ state: PullRequestState! """ @@ -7313,10 +11213,14 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & A list of events, comments, commits, etc. associated with the pull request. """ timeline( - """Allows filtering timeline events by a `since` timestamp.""" + """ + Allows filtering timeline events by a `since` timestamp. + """ since: DateTime - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7324,10 +11228,14 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PullRequestTimelineConnection! @@ -7335,16 +11243,24 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & A list of events, comments, commits, etc. associated with the pull request. """ timelineItems( - """Filter timeline items by a `since` timestamp.""" + """ + Filter timeline items by a `since` timestamp. + """ since: DateTime - """Skips the first _n_ elements in the list.""" + """ + Skips the first _n_ elements in the list. + """ skip: Int - """Filter timeline items by type.""" + """ + Filter timeline items by type. + """ itemTypes: [PullRequestTimelineItemsItemType!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7352,25 +11268,39 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PullRequestTimelineItemsConnection! - """Identifies the pull request title.""" + """ + Identifies the pull request title. + """ title: String! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this pull request.""" + """ + The HTTP URL for this pull request. + """ url: URI! - """A list of edits to this content.""" + """ + A list of edits to this content. + """ userContentEdits( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7378,17 +11308,25 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserContentEditConnection - """Whether or not the viewer can apply suggestion.""" + """ + Whether or not the viewer can apply suggestion. + """ viewerCanApplySuggestion: Boolean! - """Can user react to this subject""" + """ + Can user react to this subject + """ viewerCanReact: Boolean! """ @@ -7396,13 +11334,19 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & """ viewerCanSubscribe: Boolean! - """Check if the current viewer can update this object.""" + """ + Check if the current viewer can update this object. + """ viewerCanUpdate: Boolean! - """Reasons why the current viewer can not update this comment.""" + """ + Reasons why the current viewer can not update this comment. + """ viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! - """Did the viewer author this comment.""" + """ + Did the viewer author this comment. + """ viewerDidAuthor: Boolean! """ @@ -7411,63 +11355,103 @@ type PullRequest implements Node & Assignable & Closable & Comment & Updatable & viewerSubscription: SubscriptionState } -"""A file changed in a pull request.""" +""" +A file changed in a pull request. +""" type PullRequestChangedFile { - """The number of additions to the file.""" + """ + The number of additions to the file. + """ additions: Int! - """The number of deletions to the file.""" + """ + The number of deletions to the file. + """ deletions: Int! - """The path of the file.""" + """ + The path of the file. + """ path: String! } -"""The connection type for PullRequestChangedFile.""" +""" +The connection type for PullRequestChangedFile. +""" type PullRequestChangedFileConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [PullRequestChangedFileEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [PullRequestChangedFile] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type PullRequestChangedFileEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: PullRequestChangedFile } -"""Represents a Git commit part of a pull request.""" +""" +Represents a Git commit part of a pull request. +""" type PullRequestCommit implements Node & UniformResourceLocatable { - """The Git commit object""" + """ + The Git commit object + """ commit: Commit! id: ID! - """The pull request this commit belongs to""" + """ + The pull request this commit belongs to + """ pullRequest: PullRequest! - """The HTTP path for this pull request commit""" + """ + The HTTP path for this pull request commit + """ resourcePath: URI! - """The HTTP URL for this pull request commit""" + """ + The HTTP URL for this pull request commit + """ url: URI! } -"""Represents a commit comment thread part of a pull request.""" +""" +Represents a commit comment thread part of a pull request. +""" type PullRequestCommitCommentThread implements Node & RepositoryNode { - """The comments that exist in this thread.""" + """ + The comments that exist in this thread. + """ comments( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7475,74 +11459,120 @@ type PullRequestCommitCommentThread implements Node & RepositoryNode { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): CommitCommentConnection! - """The commit the comments were made on.""" + """ + The commit the comments were made on. + """ commit: Commit! id: ID! - """The file the comments were made on.""" + """ + The file the comments were made on. + """ path: String - """The position in the diff for the commit that the comment was made on.""" + """ + The position in the diff for the commit that the comment was made on. + """ position: Int - """The pull request this commit comment thread belongs to""" + """ + The pull request this commit comment thread belongs to + """ pullRequest: PullRequest! - """The repository associated with this node.""" + """ + The repository associated with this node. + """ repository: Repository! } -"""The connection type for PullRequestCommit.""" +""" +The connection type for PullRequestCommit. +""" type PullRequestCommitConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [PullRequestCommitEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [PullRequestCommit] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type PullRequestCommitEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: PullRequestCommit } -"""The connection type for PullRequest.""" +""" +The connection type for PullRequest. +""" type PullRequestConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [PullRequestEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [PullRequest] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""This aggregates pull requests opened by a user within one repository.""" +""" +This aggregates pull requests opened by a user within one repository. +""" type PullRequestContributionsByRepository { - """The pull request contributions.""" + """ + The pull request contributions. + """ contributions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7550,85 +11580,139 @@ type PullRequestContributionsByRepository { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Ordering options for contributions returned from the connection.""" + """ + Ordering options for contributions returned from the connection. + """ orderBy: ContributionOrder ): CreatedPullRequestContributionConnection! - """The repository in which the pull requests were opened.""" + """ + The repository in which the pull requests were opened. + """ repository: Repository! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type PullRequestEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: PullRequest } -"""Ways in which lists of issues can be ordered upon return.""" +""" +Ways in which lists of issues can be ordered upon return. +""" input PullRequestOrder { - """The field in which to order pull requests by.""" + """ + The field in which to order pull requests by. + """ field: PullRequestOrderField! - """The direction in which to order pull requests by the specified field.""" + """ + The direction in which to order pull requests by the specified field. + """ direction: OrderDirection! } -"""Properties by which pull_requests connections can be ordered.""" +""" +Properties by which pull_requests connections can be ordered. +""" enum PullRequestOrderField { - """Order pull_requests by creation time""" + """ + Order pull_requests by creation time + """ CREATED_AT - """Order pull_requests by update time""" + """ + Order pull_requests by update time + """ UPDATED_AT } -"""The possible PubSub channels for a pull request.""" +""" +The possible PubSub channels for a pull request. +""" enum PullRequestPubSubTopic { - """The channel ID for observing pull request updates.""" + """ + The channel ID for observing pull request updates. + """ UPDATED - """The channel ID for marking an pull request as read.""" + """ + The channel ID for marking an pull request as read. + """ MARKASREAD - """The channel ID for observing head ref updates.""" + """ + The channel ID for observing head ref updates. + """ HEAD_REF - """The channel ID for updating items on the pull request timeline.""" + """ + The channel ID for updating items on the pull request timeline. + """ TIMELINE - """The channel ID for observing pull request state updates.""" + """ + The channel ID for observing pull request state updates. + """ STATE } -"""A review object for a given pull request.""" +""" +A review object for a given pull request. +""" type PullRequestReview implements Node & Comment & Deletable & Updatable & UpdatableComment & Reactable & RepositoryNode { - """The actor who authored the comment.""" + """ + The actor who authored the comment. + """ author: Actor - """Author's association with the subject of the comment.""" + """ + Author's association with the subject of the comment. + """ authorAssociation: CommentAuthorAssociation! - """Identifies the pull request review body.""" + """ + Identifies the pull request review body. + """ body: String! - """The body of this review rendered to HTML.""" + """ + The body of this review rendered to HTML. + """ bodyHTML: HTML! - """The body of this review rendered as plain text.""" + """ + The body of this review rendered as plain text. + """ bodyText: String! - """A list of review comments for the current pull request review.""" + """ + A list of review comments for the current pull request review. + """ comments( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7636,26 +11720,40 @@ type PullRequestReview implements Node & Comment & Deletable & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PullRequestReviewCommentConnection! - """Identifies the commit associated with this pull request review.""" + """ + Identifies the commit associated with this pull request review. + """ commit: Commit - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Check if this comment was created via an email reply.""" + """ + Check if this comment was created via an email reply. + """ createdViaEmail: Boolean! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The actor who edited the comment.""" + """ + The actor who edited the comment. + """ editor: Actor id: ID! @@ -7664,12 +11762,18 @@ type PullRequestReview implements Node & Comment & Deletable & Updatable & Updat """ includesCreatedEdit: Boolean! - """The moment the editor made the last edit""" + """ + The moment the editor made the last edit + """ lastEditedAt: DateTime - """A list of teams that this review was made on behalf of.""" + """ + A list of teams that this review was made on behalf of. + """ onBehalfOf( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7677,25 +11781,39 @@ type PullRequestReview implements Node & Comment & Deletable & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): TeamConnection! - """Identifies when the comment was published at.""" + """ + Identifies when the comment was published at. + """ publishedAt: DateTime - """Identifies the pull request associated with this pull request review.""" + """ + Identifies the pull request associated with this pull request review. + """ pullRequest: PullRequest! - """A list of reactions grouped by content left on the subject.""" + """ + A list of reactions grouped by content left on the subject. + """ reactionGroups: [ReactionGroup!] - """A list of Reactions left on the Issue.""" + """ + A list of Reactions left on the Issue. + """ reactions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7703,40 +11821,64 @@ type PullRequestReview implements Node & Comment & Deletable & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Allows filtering Reactions by emoji.""" + """ + Allows filtering Reactions by emoji. + """ content: ReactionContent - """Allows specifying the order in which reactions are returned.""" + """ + Allows specifying the order in which reactions are returned. + """ orderBy: ReactionOrder ): ReactionConnection! - """The repository associated with this node.""" + """ + The repository associated with this node. + """ repository: Repository! - """The HTTP path permalink for this PullRequestReview.""" + """ + The HTTP path permalink for this PullRequestReview. + """ resourcePath: URI! - """Identifies the current state of the pull request review.""" + """ + Identifies the current state of the pull request review. + """ state: PullRequestReviewState! - """Identifies when the Pull Request Review was submitted""" + """ + Identifies when the Pull Request Review was submitted + """ submittedAt: DateTime - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL permalink for this PullRequestReview.""" + """ + The HTTP URL permalink for this PullRequestReview. + """ url: URI! - """A list of edits to this content.""" + """ + A list of edits to this content. + """ userContentEdits( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7744,65 +11886,105 @@ type PullRequestReview implements Node & Comment & Deletable & Updatable & Updat """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserContentEditConnection - """Check if the current viewer can delete this object.""" + """ + Check if the current viewer can delete this object. + """ viewerCanDelete: Boolean! - """Can user react to this subject""" + """ + Can user react to this subject + """ viewerCanReact: Boolean! - """Check if the current viewer can update this object.""" + """ + Check if the current viewer can update this object. + """ viewerCanUpdate: Boolean! - """Reasons why the current viewer can not update this comment.""" + """ + Reasons why the current viewer can not update this comment. + """ viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! - """Did the viewer author this comment.""" + """ + Did the viewer author this comment. + """ viewerDidAuthor: Boolean! } -"""A review comment associated with a given repository pull request.""" +""" +A review comment associated with a given repository pull request. +""" type PullRequestReviewComment implements Node & Comment & Deletable & Updatable & UpdatableComment & Reactable & RepositoryNode { - """The actor who authored the comment.""" + """ + The actor who authored the comment. + """ author: Actor - """Author's association with the subject of the comment.""" + """ + Author's association with the subject of the comment. + """ authorAssociation: CommentAuthorAssociation! - """The comment body of this review comment.""" + """ + The comment body of this review comment. + """ body: String! - """The comment body of this review comment rendered to HTML.""" + """ + The comment body of this review comment rendered to HTML. + """ bodyHTML: HTML! - """The comment body of this review comment rendered as plain text.""" + """ + The comment body of this review comment rendered as plain text. + """ bodyText: String! - """Identifies the commit associated with the comment.""" + """ + Identifies the commit associated with the comment. + """ commit: Commit! - """Identifies when the comment was created.""" + """ + Identifies when the comment was created. + """ createdAt: DateTime! - """Check if this comment was created via an email reply.""" + """ + Check if this comment was created via an email reply. + """ createdViaEmail: Boolean! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The diff hunk to which the comment applies.""" + """ + The diff hunk to which the comment applies. + """ diffHunk: String! - """Identifies when the comment was created in a draft state.""" + """ + Identifies when the comment was created in a draft state. + """ draftedAt: DateTime! - """The actor who edited the comment.""" + """ + The actor who edited the comment. + """ editor: Actor id: ID! @@ -7811,45 +11993,73 @@ type PullRequestReviewComment implements Node & Comment & Deletable & Updatable """ includesCreatedEdit: Boolean! - """Returns whether or not a comment has been minimized.""" + """ + Returns whether or not a comment has been minimized. + """ isMinimized: Boolean! - """The moment the editor made the last edit""" + """ + The moment the editor made the last edit + """ lastEditedAt: DateTime - """Returns why the comment was minimized.""" + """ + Returns why the comment was minimized. + """ minimizedReason: String - """Identifies the original commit associated with the comment.""" + """ + Identifies the original commit associated with the comment. + """ originalCommit: Commit - """The original line index in the diff to which the comment applies.""" + """ + The original line index in the diff to which the comment applies. + """ originalPosition: Int! - """Identifies when the comment body is outdated""" + """ + Identifies when the comment body is outdated + """ outdated: Boolean! - """The path to which the comment applies.""" + """ + The path to which the comment applies. + """ path: String! - """The line index in the diff to which the comment applies.""" + """ + The line index in the diff to which the comment applies. + """ position: Int - """Identifies when the comment was published at.""" + """ + Identifies when the comment was published at. + """ publishedAt: DateTime - """The pull request associated with this review comment.""" + """ + The pull request associated with this review comment. + """ pullRequest: PullRequest! - """The pull request review associated with this review comment.""" + """ + The pull request review associated with this review comment. + """ pullRequestReview: PullRequestReview - """A list of reactions grouped by content left on the subject.""" + """ + A list of reactions grouped by content left on the subject. + """ reactionGroups: [ReactionGroup!] - """A list of Reactions left on the Issue.""" + """ + A list of Reactions left on the Issue. + """ reactions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7857,40 +12067,64 @@ type PullRequestReviewComment implements Node & Comment & Deletable & Updatable """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Allows filtering Reactions by emoji.""" + """ + Allows filtering Reactions by emoji. + """ content: ReactionContent - """Allows specifying the order in which reactions are returned.""" + """ + Allows specifying the order in which reactions are returned. + """ orderBy: ReactionOrder ): ReactionConnection! - """The comment this is a reply to.""" + """ + The comment this is a reply to. + """ replyTo: PullRequestReviewComment - """The repository associated with this node.""" + """ + The repository associated with this node. + """ repository: Repository! - """The HTTP path permalink for this review comment.""" + """ + The HTTP path permalink for this review comment. + """ resourcePath: URI! - """Identifies the state of the comment.""" + """ + Identifies the state of the comment. + """ state: PullRequestReviewCommentState! - """Identifies when the comment was last updated.""" + """ + Identifies when the comment was last updated. + """ updatedAt: DateTime! - """The HTTP URL permalink for this review comment.""" + """ + The HTTP URL permalink for this review comment. + """ url: URI! - """A list of edits to this content.""" + """ + A list of edits to this content. + """ userContentEdits( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7898,77 +12132,125 @@ type PullRequestReviewComment implements Node & Comment & Deletable & Updatable """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserContentEditConnection - """Check if the current viewer can delete this object.""" + """ + Check if the current viewer can delete this object. + """ viewerCanDelete: Boolean! - """Check if the current viewer can minimize this object.""" + """ + Check if the current viewer can minimize this object. + """ viewerCanMinimize: Boolean! - """Can user react to this subject""" + """ + Can user react to this subject + """ viewerCanReact: Boolean! - """Check if the current viewer can update this object.""" + """ + Check if the current viewer can update this object. + """ viewerCanUpdate: Boolean! - """Reasons why the current viewer can not update this comment.""" + """ + Reasons why the current viewer can not update this comment. + """ viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! - """Did the viewer author this comment.""" + """ + Did the viewer author this comment. + """ viewerDidAuthor: Boolean! } -"""The connection type for PullRequestReviewComment.""" +""" +The connection type for PullRequestReviewComment. +""" type PullRequestReviewCommentConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [PullRequestReviewCommentEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [PullRequestReviewComment] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type PullRequestReviewCommentEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: PullRequestReviewComment } -"""The possible states of a pull request review comment.""" +""" +The possible states of a pull request review comment. +""" enum PullRequestReviewCommentState { - """A comment that is part of a pending review""" + """ + A comment that is part of a pending review + """ PENDING - """A comment that is part of a submitted review""" + """ + A comment that is part of a submitted review + """ SUBMITTED } -"""The connection type for PullRequestReview.""" +""" +The connection type for PullRequestReview. +""" type PullRequestReviewConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [PullRequestReviewEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [PullRequestReview] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } @@ -7976,9 +12258,13 @@ type PullRequestReviewConnection { This aggregates pull request reviews made by a user within one repository. """ type PullRequestReviewContributionsByRepository { - """The pull request review contributions.""" + """ + The pull request review contributions. + """ contributions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -7986,67 +12272,109 @@ type PullRequestReviewContributionsByRepository { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Ordering options for contributions returned from the connection.""" + """ + Ordering options for contributions returned from the connection. + """ orderBy: ContributionOrder ): CreatedPullRequestReviewContributionConnection! - """The repository in which the pull request reviews were made.""" + """ + The repository in which the pull request reviews were made. + """ repository: Repository! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type PullRequestReviewEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: PullRequestReview } -"""The possible events to perform on a pull request review.""" +""" +The possible events to perform on a pull request review. +""" enum PullRequestReviewEvent { - """Submit general feedback without explicit approval.""" + """ + Submit general feedback without explicit approval. + """ COMMENT - """Submit feedback and approve merging these changes.""" + """ + Submit feedback and approve merging these changes. + """ APPROVE - """Submit feedback that must be addressed before merging.""" + """ + Submit feedback that must be addressed before merging. + """ REQUEST_CHANGES - """Dismiss review so it now longer effects merging.""" + """ + Dismiss review so it now longer effects merging. + """ DISMISS } -"""The possible states of a pull request review.""" +""" +The possible states of a pull request review. +""" enum PullRequestReviewState { - """A review that has not yet been submitted.""" + """ + A review that has not yet been submitted. + """ PENDING - """An informational review.""" + """ + An informational review. + """ COMMENTED - """A review allowing the pull request to merge.""" + """ + A review allowing the pull request to merge. + """ APPROVED - """A review blocking the pull request from merging.""" + """ + A review blocking the pull request from merging. + """ CHANGES_REQUESTED - """A review that has been dismissed.""" + """ + A review that has been dismissed. + """ DISMISSED } -"""A threaded list of comments for a given pull request.""" +""" +A threaded list of comments for a given pull request. +""" type PullRequestReviewThread implements Node { - """A list of pull request comments associated with the thread.""" + """ + A list of pull request comments associated with the thread. + """ comments( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -8054,54 +12382,86 @@ type PullRequestReviewThread implements Node { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PullRequestReviewCommentConnection! id: ID! - """Whether this thread has been resolved""" + """ + Whether this thread has been resolved + """ isResolved: Boolean! - """Identifies the pull request associated with this thread.""" + """ + Identifies the pull request associated with this thread. + """ pullRequest: PullRequest! - """Identifies the repository associated with this thread.""" + """ + Identifies the repository associated with this thread. + """ repository: Repository! - """The user who resolved this thread""" + """ + The user who resolved this thread + """ resolvedBy: User - """Whether or not the viewer can resolve this thread""" + """ + Whether or not the viewer can resolve this thread + """ viewerCanResolve: Boolean! - """Whether or not the viewer can unresolve this thread""" + """ + Whether or not the viewer can unresolve this thread + """ viewerCanUnresolve: Boolean! } -"""Review comment threads for a pull request review.""" +""" +Review comment threads for a pull request review. +""" type PullRequestReviewThreadConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [PullRequestReviewThreadEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [PullRequestReviewThread] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type PullRequestReviewThreadEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: PullRequestReviewThread } @@ -8109,61 +12469,173 @@ type PullRequestReviewThreadEdge { Represents the latest point in the pull request timeline for which the viewer has seen the pull request's commits. """ type PullRequestRevisionMarker { - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """The last commit the viewer has seen.""" + """ + The last commit the viewer has seen. + """ lastSeenCommit: Commit! - """The pull request to which the marker belongs.""" + """ + The pull request to which the marker belongs. + """ pullRequest: PullRequest! } -"""The possible states of a pull request.""" +""" +The possible states of a pull request. +""" enum PullRequestState { - """A pull request that is still open.""" + """ + A pull request that is still open. + """ OPEN - """A pull request that has been closed without being merged.""" + """ + A pull request that has been closed without being merged. + """ CLOSED - """A pull request that has been closed by being merged.""" + """ + A pull request that has been closed by being merged. + """ MERGED } -"""The connection type for PullRequestTimelineItem.""" +""" +The connection type for PullRequestTimelineItem. +""" type PullRequestTimelineConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [PullRequestTimelineItemEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [PullRequestTimelineItem] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An item in an pull request timeline""" -union PullRequestTimelineItem = Commit | CommitCommentThread | PullRequestReview | PullRequestReviewThread | PullRequestReviewComment | IssueComment | ClosedEvent | ReopenedEvent | SubscribedEvent | UnsubscribedEvent | MergedEvent | ReferencedEvent | CrossReferencedEvent | AssignedEvent | UnassignedEvent | LabeledEvent | UnlabeledEvent | MilestonedEvent | DemilestonedEvent | RenamedTitleEvent | LockedEvent | UnlockedEvent | DeployedEvent | DeploymentEnvironmentChangedEvent | HeadRefDeletedEvent | HeadRefRestoredEvent | HeadRefForcePushedEvent | BaseRefForcePushedEvent | ReviewRequestedEvent | ReviewRequestRemovedEvent | ReviewDismissedEvent | UserBlockedEvent +""" +An item in an pull request timeline +""" +union PullRequestTimelineItem = + Commit + | CommitCommentThread + | PullRequestReview + | PullRequestReviewThread + | PullRequestReviewComment + | IssueComment + | ClosedEvent + | ReopenedEvent + | SubscribedEvent + | UnsubscribedEvent + | MergedEvent + | ReferencedEvent + | CrossReferencedEvent + | AssignedEvent + | UnassignedEvent + | LabeledEvent + | UnlabeledEvent + | MilestonedEvent + | DemilestonedEvent + | RenamedTitleEvent + | LockedEvent + | UnlockedEvent + | DeployedEvent + | DeploymentEnvironmentChangedEvent + | HeadRefDeletedEvent + | HeadRefRestoredEvent + | HeadRefForcePushedEvent + | BaseRefForcePushedEvent + | ReviewRequestedEvent + | ReviewRequestRemovedEvent + | ReviewDismissedEvent + | UserBlockedEvent -"""An edge in a connection.""" +""" +An edge in a connection. +""" type PullRequestTimelineItemEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: PullRequestTimelineItem } -"""An item in a pull request timeline""" -union PullRequestTimelineItems = PullRequestCommit | PullRequestCommitCommentThread | PullRequestReview | PullRequestReviewThread | PullRequestRevisionMarker | BaseRefChangedEvent | BaseRefForcePushedEvent | DeployedEvent | DeploymentEnvironmentChangedEvent | HeadRefDeletedEvent | HeadRefForcePushedEvent | HeadRefRestoredEvent | MergedEvent | ReviewDismissedEvent | ReviewRequestedEvent | ReviewRequestRemovedEvent | IssueComment | CrossReferencedEvent | AddedToProjectEvent | AssignedEvent | ClosedEvent | CommentDeletedEvent | ConvertedNoteToIssueEvent | DemilestonedEvent | LabeledEvent | LockedEvent | MentionedEvent | MilestonedEvent | MovedColumnsInProjectEvent | PinnedEvent | ReferencedEvent | RemovedFromProjectEvent | RenamedTitleEvent | ReopenedEvent | SubscribedEvent | TransferredEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UserBlockedEvent | UnpinnedEvent | UnsubscribedEvent +""" +An item in a pull request timeline +""" +union PullRequestTimelineItems = + PullRequestCommit + | PullRequestCommitCommentThread + | PullRequestReview + | PullRequestReviewThread + | PullRequestRevisionMarker + | BaseRefChangedEvent + | BaseRefForcePushedEvent + | DeployedEvent + | DeploymentEnvironmentChangedEvent + | HeadRefDeletedEvent + | HeadRefForcePushedEvent + | HeadRefRestoredEvent + | MergedEvent + | ReviewDismissedEvent + | ReviewRequestedEvent + | ReviewRequestRemovedEvent + | IssueComment + | CrossReferencedEvent + | AddedToProjectEvent + | AssignedEvent + | ClosedEvent + | CommentDeletedEvent + | ConvertedNoteToIssueEvent + | DemilestonedEvent + | LabeledEvent + | LockedEvent + | MentionedEvent + | MilestonedEvent + | MovedColumnsInProjectEvent + | PinnedEvent + | ReferencedEvent + | RemovedFromProjectEvent + | RenamedTitleEvent + | ReopenedEvent + | SubscribedEvent + | TransferredEvent + | UnassignedEvent + | UnlabeledEvent + | UnlockedEvent + | UserBlockedEvent + | UnpinnedEvent + | UnsubscribedEvent -"""The connection type for PullRequestTimelineItems.""" +""" +The connection type for PullRequestTimelineItems. +""" type PullRequestTimelineItemsConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [PullRequestTimelineItemsEdge] """ @@ -8171,7 +12643,9 @@ type PullRequestTimelineItemsConnection { """ filteredCount: Int! - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [PullRequestTimelineItems] """ @@ -8179,37 +12653,59 @@ type PullRequestTimelineItemsConnection { """ pageCount: Int! - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! - """Identifies the date and time when the timeline was last updated.""" + """ + Identifies the date and time when the timeline was last updated. + """ updatedAt: DateTime! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type PullRequestTimelineItemsEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: PullRequestTimelineItems } -"""The possible item types found in a timeline.""" +""" +The possible item types found in a timeline. +""" enum PullRequestTimelineItemsItemType { - """Represents a Git commit part of a pull request.""" + """ + Represents a Git commit part of a pull request. + """ PULL_REQUEST_COMMIT - """Represents a commit comment thread part of a pull request.""" + """ + Represents a commit comment thread part of a pull request. + """ PULL_REQUEST_COMMIT_COMMENT_THREAD - """A review object for a given pull request.""" + """ + A review object for a given pull request. + """ PULL_REQUEST_REVIEW - """A threaded list of comments for a given pull request.""" + """ + A threaded list of comments for a given pull request. + """ PULL_REQUEST_REVIEW_THREAD """ @@ -8222,10 +12718,14 @@ enum PullRequestTimelineItemsItemType { """ BASE_REF_CHANGED_EVENT - """Represents a 'base_ref_force_pushed' event on a given pull request.""" + """ + Represents a 'base_ref_force_pushed' event on a given pull request. + """ BASE_REF_FORCE_PUSHED_EVENT - """Represents a 'deployed' event on a given pull request.""" + """ + Represents a 'deployed' event on a given pull request. + """ DEPLOYED_EVENT """ @@ -8233,16 +12733,24 @@ enum PullRequestTimelineItemsItemType { """ DEPLOYMENT_ENVIRONMENT_CHANGED_EVENT - """Represents a 'head_ref_deleted' event on a given pull request.""" + """ + Represents a 'head_ref_deleted' event on a given pull request. + """ HEAD_REF_DELETED_EVENT - """Represents a 'head_ref_force_pushed' event on a given pull request.""" + """ + Represents a 'head_ref_force_pushed' event on a given pull request. + """ HEAD_REF_FORCE_PUSHED_EVENT - """Represents a 'head_ref_restored' event on a given pull request.""" + """ + Represents a 'head_ref_restored' event on a given pull request. + """ HEAD_REF_RESTORED_EVENT - """Represents a 'merged' event on a given pull request.""" + """ + Represents a 'merged' event on a given pull request. + """ MERGED_EVENT """ @@ -8250,16 +12758,24 @@ enum PullRequestTimelineItemsItemType { """ REVIEW_DISMISSED_EVENT - """Represents an 'review_requested' event on a given pull request.""" + """ + Represents an 'review_requested' event on a given pull request. + """ REVIEW_REQUESTED_EVENT - """Represents an 'review_request_removed' event on a given pull request.""" + """ + Represents an 'review_request_removed' event on a given pull request. + """ REVIEW_REQUEST_REMOVED_EVENT - """Represents a comment on an Issue.""" + """ + Represents a comment on an Issue. + """ ISSUE_COMMENT - """Represents a mention made by one issue or pull request to another.""" + """ + Represents a mention made by one issue or pull request to another. + """ CROSS_REFERENCED_EVENT """ @@ -8267,13 +12783,19 @@ enum PullRequestTimelineItemsItemType { """ ADDED_TO_PROJECT_EVENT - """Represents an 'assigned' event on any assignable object.""" + """ + Represents an 'assigned' event on any assignable object. + """ ASSIGNED_EVENT - """Represents a 'closed' event on any `Closable`.""" + """ + Represents a 'closed' event on any `Closable`. + """ CLOSED_EVENT - """Represents a 'comment_deleted' event on a given issue or pull request.""" + """ + Represents a 'comment_deleted' event on a given issue or pull request. + """ COMMENT_DELETED_EVENT """ @@ -8281,19 +12803,29 @@ enum PullRequestTimelineItemsItemType { """ CONVERTED_NOTE_TO_ISSUE_EVENT - """Represents a 'demilestoned' event on a given issue or pull request.""" + """ + Represents a 'demilestoned' event on a given issue or pull request. + """ DEMILESTONED_EVENT - """Represents a 'labeled' event on a given issue or pull request.""" + """ + Represents a 'labeled' event on a given issue or pull request. + """ LABELED_EVENT - """Represents a 'locked' event on a given issue or pull request.""" + """ + Represents a 'locked' event on a given issue or pull request. + """ LOCKED_EVENT - """Represents a 'mentioned' event on a given issue or pull request.""" + """ + Represents a 'mentioned' event on a given issue or pull request. + """ MENTIONED_EVENT - """Represents a 'milestoned' event on a given issue or pull request.""" + """ + Represents a 'milestoned' event on a given issue or pull request. + """ MILESTONED_EVENT """ @@ -8301,10 +12833,14 @@ enum PullRequestTimelineItemsItemType { """ MOVED_COLUMNS_IN_PROJECT_EVENT - """Represents a 'pinned' event on a given issue or pull request.""" + """ + Represents a 'pinned' event on a given issue or pull request. + """ PINNED_EVENT - """Represents a 'referenced' event on a given `ReferencedSubject`.""" + """ + Represents a 'referenced' event on a given `ReferencedSubject`. + """ REFERENCED_EVENT """ @@ -8312,40 +12848,64 @@ enum PullRequestTimelineItemsItemType { """ REMOVED_FROM_PROJECT_EVENT - """Represents a 'renamed' event on a given issue or pull request""" + """ + Represents a 'renamed' event on a given issue or pull request + """ RENAMED_TITLE_EVENT - """Represents a 'reopened' event on any `Closable`.""" + """ + Represents a 'reopened' event on any `Closable`. + """ REOPENED_EVENT - """Represents a 'subscribed' event on a given `Subscribable`.""" + """ + Represents a 'subscribed' event on a given `Subscribable`. + """ SUBSCRIBED_EVENT - """Represents a 'transferred' event on a given issue or pull request.""" + """ + Represents a 'transferred' event on a given issue or pull request. + """ TRANSFERRED_EVENT - """Represents an 'unassigned' event on any assignable object.""" + """ + Represents an 'unassigned' event on any assignable object. + """ UNASSIGNED_EVENT - """Represents an 'unlabeled' event on a given issue or pull request.""" + """ + Represents an 'unlabeled' event on a given issue or pull request. + """ UNLABELED_EVENT - """Represents an 'unlocked' event on a given issue or pull request.""" + """ + Represents an 'unlocked' event on a given issue or pull request. + """ UNLOCKED_EVENT - """Represents a 'user_blocked' event on a given user.""" + """ + Represents a 'user_blocked' event on a given user. + """ USER_BLOCKED_EVENT - """Represents an 'unpinned' event on a given issue or pull request.""" + """ + Represents an 'unpinned' event on a given issue or pull request. + """ UNPINNED_EVENT - """Represents an 'unsubscribed' event on a given `Subscribable`.""" + """ + Represents an 'unsubscribed' event on a given `Subscribable`. + """ UNSUBSCRIBED_EVENT } -"""A team or user who has the ability to push to a protected branch.""" +""" +A team or user who has the ability to push to a protected branch. +""" type PushAllowance implements Node { - """The actor that can push.""" + """ + The actor that can push. + """ actor: PushAllowanceActor """ @@ -8355,75 +12915,123 @@ type PushAllowance implements Node { id: ID! } -"""Types that can be an actor.""" +""" +Types that can be an actor. +""" union PushAllowanceActor = User | Team -"""The connection type for PushAllowance.""" +""" +The connection type for PushAllowance. +""" type PushAllowanceConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [PushAllowanceEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [PushAllowance] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type PushAllowanceEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: PushAllowance } -"""The query root of GitHub's GraphQL interface.""" +""" +The query root of GitHub's GraphQL interface. +""" type Query { - """Look up a code of conduct by its key""" + """ + Look up a code of conduct by its key + """ codeOfConduct( - """The code of conduct's key""" + """ + The code of conduct's key + """ key: String! ): CodeOfConduct - """Look up a code of conduct by its key""" + """ + Look up a code of conduct by its key + """ codesOfConduct: [CodeOfConduct] - """Look up an open source license by its key""" + """ + Look up an open source license by its key + """ license( - """The license's downcased SPDX ID""" + """ + The license's downcased SPDX ID + """ key: String! ): License - """Return a list of known open source licenses""" + """ + Return a list of known open source licenses + """ licenses: [License]! - """Get alphabetically sorted list of Marketplace categories""" + """ + Get alphabetically sorted list of Marketplace categories + """ marketplaceCategories( - """Return only the specified categories.""" + """ + Return only the specified categories. + """ includeCategories: [String!] - """Exclude categories with no listings.""" + """ + Exclude categories with no listings. + """ excludeEmpty: Boolean - """Returns top level categories only, excluding any subcategories.""" + """ + Returns top level categories only, excluding any subcategories. + """ excludeSubcategories: Boolean ): [MarketplaceCategory!]! - """Look up a Marketplace category by its slug.""" + """ + Look up a Marketplace category by its slug. + """ marketplaceCategory( - """The URL slug of the category.""" + """ + The URL slug of the category. + """ slug: String! - """Also check topic aliases for the category slug""" + """ + Also check topic aliases for the category slug + """ useTopicAliases: Boolean ): MarketplaceCategory - """Look up a single Marketplace listing""" + """ + Look up a single Marketplace listing + """ marketplaceListing( """ Select the listing that matches this slug. It's the short name of the listing used in its URL. @@ -8431,9 +13039,13 @@ type Query { slug: String! ): MarketplaceListing - """Look up Marketplace listings""" + """ + Look up Marketplace listings + """ marketplaceListings( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -8441,35 +13053,45 @@ type Query { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Select only listings with the given category.""" + """ + Select only listings with the given category. + """ categorySlug: String - """Also check topic aliases for the category slug""" + """ + Also check topic aliases for the category slug + """ useTopicAliases: Boolean """ Select listings to which user has admin access. If omitted, listings visible to the viewer are returned. - """ viewerCanAdmin: Boolean - """Select listings that can be administered by the specified user.""" + """ + Select listings that can be administered by the specified user. + """ adminId: ID - """Select listings for products owned by the specified organization.""" + """ + Select listings for products owned by the specified organization. + """ organizationId: ID """ Select listings visible to the viewer even if they are not approved. If omitted or false, only approved listings will be returned. - """ allStates: Boolean @@ -8483,34 +13105,54 @@ type Query { """ primaryCategoryOnly: Boolean = false - """Select only listings that offer a free trial.""" + """ + Select only listings that offer a free trial. + """ withFreeTrialsOnly: Boolean = false ): MarketplaceListingConnection! - """Return information about the GitHub instance""" + """ + Return information about the GitHub instance + """ meta: GitHubMetadata! - """Fetches an object given its ID.""" + """ + Fetches an object given its ID. + """ node( - """ID of the object.""" + """ + ID of the object. + """ id: ID! ): Node - """Lookup nodes by a list of IDs.""" + """ + Lookup nodes by a list of IDs. + """ nodes( - """The list of node IDs.""" + """ + The list of node IDs. + """ ids: [ID!]! ): [Node]! - """Lookup a organization by login.""" + """ + Lookup a organization by login. + """ organization( - """The organization's login.""" + """ + The organization's login. + """ login: String! ): Organization - """The client's rate limit information.""" + """ + The client's rate limit information. + """ rateLimit( - """If true, calculate the cost for the query without evaluating it""" + """ + If true, calculate the cost for the query without evaluating it + """ dryRun: Boolean = false ): RateLimit @@ -8519,12 +13161,18 @@ type Query { """ relay: Query! - """Lookup a given repository by the owner and repository name.""" + """ + Lookup a given repository by the owner and repository name. + """ repository( - """The login field of a user or organization""" + """ + The login field of a user or organization + """ owner: String! - """The name of the repository""" + """ + The name of the repository + """ name: String! ): Repository @@ -8532,19 +13180,29 @@ type Query { Lookup a repository owner (ie. either a User or an Organization) by login. """ repositoryOwner( - """The username to lookup the owner by.""" + """ + The username to lookup the owner by. + """ login: String! ): RepositoryOwner - """Lookup resource by a URL.""" + """ + Lookup resource by a URL. + """ resource( - """The URL.""" + """ + The URL. + """ url: URI! ): UniformResourceLocatable - """Perform a search across resources.""" + """ + Perform a search across resources. + """ search( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -8552,34 +13210,54 @@ type Query { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """The search string to look for.""" + """ + The search string to look for. + """ query: String! - """The types of search items to search within.""" + """ + The types of search items to search within. + """ type: SearchType! ): SearchResultItemConnection! - """GitHub Security Advisories""" + """ + GitHub Security Advisories + """ securityAdvisories( - """Ordering options for the returned topics.""" + """ + Ordering options for the returned topics. + """ orderBy: SecurityAdvisoryOrder - """Filter advisories by identifier, e.g. GHSA or CVE.""" + """ + Filter advisories by identifier, e.g. GHSA or CVE. + """ identifier: SecurityAdvisoryIdentifierFilter - """Filter advisories to those published since a time in the past.""" + """ + Filter advisories to those published since a time in the past. + """ publishedSince: DateTime - """Filter advisories to those updated since a time in the past.""" + """ + Filter advisories to those updated since a time in the past. + """ updatedSince: DateTime - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -8587,34 +13265,54 @@ type Query { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): SecurityAdvisoryConnection! - """Fetch a Security Advisory by its GHSA ID""" + """ + Fetch a Security Advisory by its GHSA ID + """ securityAdvisory( - """GitHub Security Advisory ID.""" + """ + GitHub Security Advisory ID. + """ ghsaId: String! ): SecurityAdvisory - """Software Vulnerabilities documented by GitHub Security Advisories""" + """ + Software Vulnerabilities documented by GitHub Security Advisories + """ securityVulnerabilities( - """Ordering options for the returned topics.""" + """ + Ordering options for the returned topics. + """ orderBy: SecurityVulnerabilityOrder - """An ecosystem to filter vulnerabilities by.""" + """ + An ecosystem to filter vulnerabilities by. + """ ecosystem: SecurityAdvisoryEcosystem - """A package name to filter vulnerabilities by.""" + """ + A package name to filter vulnerabilities by. + """ package: String - """A list of severities to filter vulnerabilities by.""" + """ + A list of severities to filter vulnerabilities by. + """ severities: [SecurityAdvisorySeverity!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -8622,32 +13320,50 @@ type Query { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): SecurityVulnerabilityConnection! - """Look up a topic by name.""" + """ + Look up a topic by name. + """ topic( - """The topic's name.""" + """ + The topic's name. + """ name: String! ): Topic - """Lookup a user by login.""" + """ + Lookup a user by login. + """ user( - """The user's login.""" + """ + The user's login. + """ login: String! ): User - """The currently authenticated user.""" + """ + The currently authenticated user. + """ viewer: User! } -"""Represents the client's rate limit.""" +""" +Represents the client's rate limit. +""" type RateLimit { - """The point cost for the current query counting against the rate limit.""" + """ + The point cost for the current query counting against the rate limit. + """ cost: Int! """ @@ -8655,10 +13371,14 @@ type RateLimit { """ limit: Int! - """The maximum number of nodes this query may return""" + """ + The maximum number of nodes this query may return + """ nodeCount: Int! - """The number of points remaining in the current rate limit window.""" + """ + The number of points remaining in the current rate limit window. + """ remaining: Int! """ @@ -8667,18 +13387,28 @@ type RateLimit { resetAt: DateTime! } -"""Represents a subject that can be reacted on.""" +""" +Represents a subject that can be reacted on. +""" interface Reactable { - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! - """A list of reactions grouped by content left on the subject.""" + """ + A list of reactions grouped by content left on the subject. + """ reactionGroups: [ReactionGroup!] - """A list of Reactions left on the Issue.""" + """ + A list of Reactions left on the Issue. + """ reactions( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -8686,79 +13416,127 @@ interface Reactable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Allows filtering Reactions by emoji.""" + """ + Allows filtering Reactions by emoji. + """ content: ReactionContent - """Allows specifying the order in which reactions are returned.""" + """ + Allows specifying the order in which reactions are returned. + """ orderBy: ReactionOrder ): ReactionConnection! - """Can user react to this subject""" + """ + Can user react to this subject + """ viewerCanReact: Boolean! } -"""The connection type for User.""" +""" +The connection type for User. +""" type ReactingUserConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [ReactingUserEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [User] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""Represents a user that's made a reaction.""" +""" +Represents a user that's made a reaction. +""" type ReactingUserEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! node: User! - """The moment when the user made the reaction.""" + """ + The moment when the user made the reaction. + """ reactedAt: DateTime! } -"""An emoji reaction to a particular piece of content.""" +""" +An emoji reaction to a particular piece of content. +""" type Reaction implements Node { - """Identifies the emoji reaction.""" + """ + Identifies the emoji reaction. + """ content: ReactionContent! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! - """The reactable piece of content""" + """ + The reactable piece of content + """ reactable: Reactable! - """Identifies the user who created this reaction.""" + """ + Identifies the user who created this reaction. + """ user: User } -"""A list of reactions that have been left on the subject.""" +""" +A list of reactions that have been left on the subject. +""" type ReactionConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [ReactionEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Reaction] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! """ @@ -8767,58 +13545,92 @@ type ReactionConnection { viewerHasReacted: Boolean! } -"""Emojis that can be attached to Issues, Pull Requests and Comments.""" +""" +Emojis that can be attached to Issues, Pull Requests and Comments. +""" enum ReactionContent { - """Represents the 👍 emoji.""" + """ + Represents the 👍 emoji. + """ THUMBS_UP - """Represents the 👎 emoji.""" + """ + Represents the 👎 emoji. + """ THUMBS_DOWN - """Represents the 😄 emoji.""" + """ + Represents the 😄 emoji. + """ LAUGH - """Represents the 🎉 emoji.""" + """ + Represents the 🎉 emoji. + """ HOORAY - """Represents the 😕 emoji.""" + """ + Represents the 😕 emoji. + """ CONFUSED - """Represents the ❤️ emoji.""" + """ + Represents the ❤️ emoji. + """ HEART - """Represents the 🚀 emoji.""" + """ + Represents the 🚀 emoji. + """ ROCKET - """Represents the 👀 emoji.""" + """ + Represents the 👀 emoji. + """ EYES } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type ReactionEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Reaction } -"""A group of emoji reactions to a particular piece of content.""" +""" +A group of emoji reactions to a particular piece of content. +""" type ReactionGroup { - """Identifies the emoji reaction.""" + """ + Identifies the emoji reaction. + """ content: ReactionContent! - """Identifies when the reaction was created.""" + """ + Identifies when the reaction was created. + """ createdAt: DateTime - """The subject that was reacted to.""" + """ + The subject that was reacted to. + """ subject: Reactable! """ Users who have reacted to the reaction subject with the emotion represented by this reaction group """ users( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -8826,10 +13638,14 @@ type ReactionGroup { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): ReactingUserConnection! @@ -8839,41 +13655,67 @@ type ReactionGroup { viewerHasReacted: Boolean! } -"""Ways in which lists of reactions can be ordered upon return.""" +""" +Ways in which lists of reactions can be ordered upon return. +""" input ReactionOrder { - """The field in which to order reactions by.""" + """ + The field in which to order reactions by. + """ field: ReactionOrderField! - """The direction in which to order reactions by the specified field.""" + """ + The direction in which to order reactions by the specified field. + """ direction: OrderDirection! } -"""A list of fields that reactions can be ordered by.""" +""" +A list of fields that reactions can be ordered by. +""" enum ReactionOrderField { - """Allows ordering a list of reactions by when they were created.""" + """ + Allows ordering a list of reactions by when they were created. + """ CREATED_AT } -"""Represents a Git reference.""" +""" +Represents a Git reference. +""" type Ref implements Node { - """A list of pull requests with this ref as the head ref.""" + """ + A list of pull requests with this ref as the head ref. + """ associatedPullRequests( - """A list of states to filter the pull requests by.""" + """ + A list of states to filter the pull requests by. + """ states: [PullRequestState!] - """A list of label names to filter the pull requests by.""" + """ + A list of label names to filter the pull requests by. + """ labels: [String!] - """The head ref name to filter the pull requests by.""" + """ + The head ref name to filter the pull requests by. + """ headRefName: String - """The base ref name to filter the pull requests by.""" + """ + The base ref name to filter the pull requests by. + """ baseRefName: String - """Ordering options for pull requests returned from the connection.""" + """ + Ordering options for pull requests returned from the connection. + """ orderBy: IssueOrder - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -8881,67 +13723,107 @@ type Ref implements Node { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PullRequestConnection! id: ID! - """The ref name.""" + """ + The ref name. + """ name: String! - """The ref's prefix, such as `refs/heads/` or `refs/tags/`.""" + """ + The ref's prefix, such as `refs/heads/` or `refs/tags/`. + """ prefix: String! - """The repository the ref belongs to.""" + """ + The repository the ref belongs to. + """ repository: Repository! - """The object the ref points to.""" + """ + The object the ref points to. + """ target: GitObject! } -"""The connection type for Ref.""" +""" +The connection type for Ref. +""" type RefConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [RefEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Ref] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type RefEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Ref } -"""Represents a 'referenced' event on a given `ReferencedSubject`.""" +""" +Represents a 'referenced' event on a given `ReferencedSubject`. +""" type ReferencedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the commit associated with the 'referenced' event.""" + """ + Identifies the commit associated with the 'referenced' event. + """ commit: Commit - """Identifies the repository associated with the 'referenced' event.""" + """ + Identifies the repository associated with the 'referenced' event. + """ commitRepository: Repository! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Reference originated in a different repository.""" + """ + Reference originated in a different repository. + """ isCrossRepository: Boolean! """ @@ -8949,68 +13831,108 @@ type ReferencedEvent implements Node { """ isDirectReference: Boolean! - """Object referenced by event.""" + """ + Object referenced by event. + """ subject: ReferencedSubject! } -"""Any referencable object""" +""" +Any referencable object +""" union ReferencedSubject = Issue | PullRequest -"""Ways in which lists of git refs can be ordered upon return.""" +""" +Ways in which lists of git refs can be ordered upon return. +""" input RefOrder { - """The field in which to order refs by.""" + """ + The field in which to order refs by. + """ field: RefOrderField! - """The direction in which to order refs by the specified field.""" + """ + The direction in which to order refs by the specified field. + """ direction: OrderDirection! } -"""Properties by which ref connections can be ordered.""" +""" +Properties by which ref connections can be ordered. +""" enum RefOrderField { - """Order refs by underlying commit date if the ref prefix is refs/tags/""" + """ + Order refs by underlying commit date if the ref prefix is refs/tags/ + """ TAG_COMMIT_DATE - """Order refs by their alphanumeric name""" + """ + Order refs by their alphanumeric name + """ ALPHABETICAL } -"""Represents an owner of a registry package.""" +""" +Represents an owner of a registry package. +""" interface RegistryPackageOwner { id: ID! } -"""Represents an interface to search packages on an object.""" +""" +Represents an interface to search packages on an object. +""" interface RegistryPackageSearch { id: ID! } -"""A release contains the content for a release.""" +""" +A release contains the content for a release. +""" type Release implements Node & UniformResourceLocatable { - """The author of the release""" + """ + The author of the release + """ author: User - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the description of the release.""" + """ + Identifies the description of the release. + """ description: String id: ID! - """Whether or not the release is a draft""" + """ + Whether or not the release is a draft + """ isDraft: Boolean! - """Whether or not the release is a prerelease""" + """ + Whether or not the release is a prerelease + """ isPrerelease: Boolean! - """Identifies the title of the release.""" + """ + Identifies the title of the release. + """ name: String - """Identifies the date and time when the release was created.""" + """ + Identifies the date and time when the release was created. + """ publishedAt: DateTime - """List of releases assets which are dependent on this release.""" + """ + List of releases assets which are dependent on this release. + """ releaseAssets( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9018,41 +13940,65 @@ type Release implements Node & UniformResourceLocatable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """A list of names to filter the assets by.""" + """ + A list of names to filter the assets by. + """ name: String ): ReleaseAssetConnection! - """The HTTP path for this issue""" + """ + The HTTP path for this issue + """ resourcePath: URI! - """The Git tag the release points to""" + """ + The Git tag the release points to + """ tag: Ref - """The name of the release's Git tag""" + """ + The name of the release's Git tag + """ tagName: String! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this issue""" + """ + The HTTP URL for this issue + """ url: URI! } -"""A release asset contains the content for a release asset.""" +""" +A release asset contains the content for a release asset. +""" type ReleaseAsset implements Node { - """The asset's content-type""" + """ + The asset's content-type + """ contentType: String! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """The number of times this asset was downloaded""" + """ + The number of times this asset was downloaded + """ downloadCount: Int! """ @@ -9061,109 +14007,179 @@ type ReleaseAsset implements Node { downloadUrl: URI! id: ID! - """Identifies the title of the release asset.""" + """ + Identifies the title of the release asset. + """ name: String! - """Release that the asset is associated with""" + """ + Release that the asset is associated with + """ release: Release - """The size (in bytes) of the asset""" + """ + The size (in bytes) of the asset + """ size: Int! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The user that performed the upload""" + """ + The user that performed the upload + """ uploadedBy: User! - """Identifies the URL of the release asset.""" + """ + Identifies the URL of the release asset. + """ url: URI! } -"""The connection type for ReleaseAsset.""" +""" +The connection type for ReleaseAsset. +""" type ReleaseAssetConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [ReleaseAssetEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [ReleaseAsset] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type ReleaseAssetEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: ReleaseAsset } -"""The connection type for Release.""" +""" +The connection type for Release. +""" type ReleaseConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [ReleaseEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Release] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type ReleaseEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Release } -"""Ways in which lists of releases can be ordered upon return.""" +""" +Ways in which lists of releases can be ordered upon return. +""" input ReleaseOrder { - """The field in which to order releases by.""" + """ + The field in which to order releases by. + """ field: ReleaseOrderField! - """The direction in which to order releases by the specified field.""" + """ + The direction in which to order releases by the specified field. + """ direction: OrderDirection! } -"""Properties by which release connections can be ordered.""" +""" +Properties by which release connections can be ordered. +""" enum ReleaseOrderField { - """Order releases by creation time""" + """ + Order releases by creation time + """ CREATED_AT - """Order releases alphabetically by name""" + """ + Order releases alphabetically by name + """ NAME } -"""Autogenerated input type of RemoveAssigneesFromAssignable""" +""" +Autogenerated input type of RemoveAssigneesFromAssignable +""" input RemoveAssigneesFromAssignableInput { - """The id of the assignable object to remove assignees from.""" + """ + The id of the assignable object to remove assignees from. + """ assignableId: ID! - """The id of users to remove as assignees.""" + """ + The id of users to remove as assignees. + """ assigneeIds: [ID!]! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of RemoveAssigneesFromAssignable""" +""" +Autogenerated return type of RemoveAssigneesFromAssignable +""" type RemoveAssigneesFromAssignablePayload { - """The item that was unassigned.""" + """ + The item that was unassigned. + """ assignable: Assignable - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } @@ -9171,195 +14187,321 @@ type RemoveAssigneesFromAssignablePayload { Represents a 'removed_from_project' event on a given issue or pull request. """ type RemovedFromProjectEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! } -"""Autogenerated input type of RemoveLabelsFromLabelable""" +""" +Autogenerated input type of RemoveLabelsFromLabelable +""" input RemoveLabelsFromLabelableInput { - """The id of the Labelable to remove labels from.""" + """ + The id of the Labelable to remove labels from. + """ labelableId: ID! - """The ids of labels to remove.""" + """ + The ids of labels to remove. + """ labelIds: [ID!]! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of RemoveLabelsFromLabelable""" +""" +Autogenerated return type of RemoveLabelsFromLabelable +""" type RemoveLabelsFromLabelablePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The Labelable the labels were removed from.""" + """ + The Labelable the labels were removed from. + """ labelable: Labelable } -"""Autogenerated input type of RemoveOutsideCollaborator""" +""" +Autogenerated input type of RemoveOutsideCollaborator +""" input RemoveOutsideCollaboratorInput { - """The ID of the outside collaborator to remove.""" + """ + The ID of the outside collaborator to remove. + """ userId: ID! - """The ID of the organization to remove the outside collaborator from.""" + """ + The ID of the organization to remove the outside collaborator from. + """ organizationId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of RemoveOutsideCollaborator""" +""" +Autogenerated return type of RemoveOutsideCollaborator +""" type RemoveOutsideCollaboratorPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The user that was removed as an outside collaborator.""" + """ + The user that was removed as an outside collaborator. + """ removedUser: User } -"""Autogenerated input type of RemoveReaction""" +""" +Autogenerated input type of RemoveReaction +""" input RemoveReactionInput { - """The Node ID of the subject to modify.""" + """ + The Node ID of the subject to modify. + """ subjectId: ID! - """The name of the emoji reaction to remove.""" + """ + The name of the emoji reaction to remove. + """ content: ReactionContent! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of RemoveReaction""" +""" +Autogenerated return type of RemoveReaction +""" type RemoveReactionPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The reaction object.""" + """ + The reaction object. + """ reaction: Reaction - """The reactable subject.""" + """ + The reactable subject. + """ subject: Reactable } -"""Autogenerated input type of RemoveStar""" +""" +Autogenerated input type of RemoveStar +""" input RemoveStarInput { - """The Starrable ID to unstar.""" + """ + The Starrable ID to unstar. + """ starrableId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of RemoveStar""" +""" +Autogenerated return type of RemoveStar +""" type RemoveStarPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The starrable.""" + """ + The starrable. + """ starrable: Starrable } -"""Represents a 'renamed' event on a given issue or pull request""" +""" +Represents a 'renamed' event on a given issue or pull request +""" type RenamedTitleEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the current title of the issue or pull request.""" + """ + Identifies the current title of the issue or pull request. + """ currentTitle: String! id: ID! - """Identifies the previous title of the issue or pull request.""" + """ + Identifies the previous title of the issue or pull request. + """ previousTitle: String! - """Subject that was renamed.""" + """ + Subject that was renamed. + """ subject: RenamedTitleSubject! } -"""An object which has a renamable title""" +""" +An object which has a renamable title +""" union RenamedTitleSubject = Issue | PullRequest -"""Represents a 'reopened' event on any `Closable`.""" +""" +Represents a 'reopened' event on any `Closable`. +""" type ReopenedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Object that was reopened.""" + """ + Object that was reopened. + """ closable: Closable! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! } -"""Autogenerated input type of ReopenIssue""" +""" +Autogenerated input type of ReopenIssue +""" input ReopenIssueInput { - """ID of the issue to be opened.""" + """ + ID of the issue to be opened. + """ issueId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of ReopenIssue""" +""" +Autogenerated return type of ReopenIssue +""" type ReopenIssuePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The issue that was opened.""" + """ + The issue that was opened. + """ issue: Issue } -"""Autogenerated input type of ReopenPullRequest""" +""" +Autogenerated input type of ReopenPullRequest +""" input ReopenPullRequestInput { - """ID of the pull request to be reopened.""" + """ + ID of the pull request to be reopened. + """ pullRequestId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of ReopenPullRequest""" +""" +Autogenerated return type of ReopenPullRequest +""" type ReopenPullRequestPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The pull request that was reopened.""" + """ + The pull request that was reopened. + """ pullRequest: PullRequest } -"""The reasons a piece of content can be reported or minimized.""" +""" +The reasons a piece of content can be reported or minimized. +""" enum ReportedContentClassifiers { - """A spammy piece of content""" + """ + A spammy piece of content + """ SPAM - """An abusive or harassing piece of content""" + """ + An abusive or harassing piece of content + """ ABUSE - """An irrelevant piece of content""" + """ + An irrelevant piece of content + """ OFF_TOPIC - """An outdated piece of content""" + """ + An outdated piece of content + """ OUTDATED - """The content has been resolved""" + """ + The content has been resolved + """ RESOLVED } -"""A repository contains the content for a project.""" +""" +A repository contains the content for a project. +""" type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscribable & Starrable & UniformResourceLocatable & RepositoryInfo { - """A list of users that can be assigned to issues in this repository.""" + """ + A list of users that can be assigned to issues in this repository. + """ assignableUsers( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9367,16 +14509,24 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserConnection! - """A list of branch protection rules for this repository.""" + """ + A list of branch protection rules for this repository. + """ branchProtectionRules( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9384,22 +14534,34 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): BranchProtectionRuleConnection! - """Returns the code of conduct for this repository""" + """ + Returns the code of conduct for this repository + """ codeOfConduct: CodeOfConduct - """A list of collaborators associated with the repository.""" + """ + A list of collaborators associated with the repository. + """ collaborators( - """Collaborators affiliation level with a repository.""" + """ + Collaborators affiliation level with a repository. + """ affiliation: CollaboratorAffiliation - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9407,16 +14569,24 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): RepositoryCollaboratorConnection - """A list of commit comments associated with the repository.""" + """ + A list of commit comments associated with the repository. + """ commitComments( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9424,25 +14594,39 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): CommitCommentConnection! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The Ref associated with the repository's default branch.""" + """ + The Ref associated with the repository's default branch. + """ defaultBranchRef: Ref - """A list of deploy keys that are on this repository.""" + """ + A list of deploy keys that are on this repository. + """ deployKeys( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9450,22 +14634,34 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): DeployKeyConnection! - """Deployments associated with the repository""" + """ + Deployments associated with the repository + """ deployments( - """Environments to list deployments for""" + """ + Environments to list deployments for + """ environments: [String!] - """Ordering options for deployments returned from the connection.""" + """ + Ordering options for deployments returned from the connection. + """ orderBy: DeploymentOrder - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9473,20 +14669,30 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): DeploymentConnection! - """The description of the repository.""" + """ + The description of the repository. + """ description: String - """The description of the repository rendered to HTML.""" + """ + The description of the repository rendered to HTML. + """ descriptionHTML: HTML! - """The number of kilobytes this repository occupies on disk.""" + """ + The number of kilobytes this repository occupies on disk. + """ diskUsage: Int """ @@ -9494,12 +14700,18 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ forkCount: Int! - """A list of direct forked repositories.""" + """ + A list of direct forked repositories. + """ forks( - """If non-null, filters repositories according to privacy""" + """ + If non-null, filters repositories according to privacy + """ privacy: RepositoryPrivacy - """Ordering options for repositories returned from the connection""" + """ + Ordering options for repositories returned from the connection + """ orderBy: RepositoryOrder """ @@ -9521,7 +14733,9 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ isLocked: Boolean - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9529,44 +14743,70 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): RepositoryConnection! - """Indicates if the repository has issues feature enabled.""" + """ + Indicates if the repository has issues feature enabled. + """ hasIssuesEnabled: Boolean! - """Indicates if the repository has wiki feature enabled.""" + """ + Indicates if the repository has wiki feature enabled. + """ hasWikiEnabled: Boolean! - """The repository's URL.""" + """ + The repository's URL. + """ homepageUrl: URI id: ID! - """Indicates if the repository is unmaintained.""" + """ + Indicates if the repository is unmaintained. + """ isArchived: Boolean! - """Returns whether or not this repository disabled.""" + """ + Returns whether or not this repository disabled. + """ isDisabled: Boolean! - """Identifies if the repository is a fork.""" + """ + Identifies if the repository is a fork. + """ isFork: Boolean! - """Indicates if the repository has been locked or not.""" + """ + Indicates if the repository has been locked or not. + """ isLocked: Boolean! - """Identifies if the repository is a mirror.""" + """ + Identifies if the repository is a mirror. + """ isMirror: Boolean! - """Identifies if the repository is private.""" + """ + Identifies if the repository is private. + """ isPrivate: Boolean! - """Returns a single issue from the current repository by number.""" + """ + Returns a single issue from the current repository by number. + """ issue( - """The number for the issue to be returned.""" + """ + The number for the issue to be returned. + """ number: Int! ): Issue @@ -9574,25 +14814,39 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib Returns a single issue-like object from the current repository by number. """ issueOrPullRequest( - """The number for the issue to be returned.""" + """ + The number for the issue to be returned. + """ number: Int! ): IssueOrPullRequest - """A list of issues that have been opened in the repository.""" + """ + A list of issues that have been opened in the repository. + """ issues( - """Ordering options for issues returned from the connection.""" + """ + Ordering options for issues returned from the connection. + """ orderBy: IssueOrder - """A list of label names to filter the pull requests by.""" + """ + A list of label names to filter the pull requests by. + """ labels: [String!] - """A list of states to filter the issues by.""" + """ + A list of states to filter the issues by. + """ states: [IssueState!] - """Filtering options for issues returned from the connection.""" + """ + Filtering options for issues returned from the connection. + """ filterBy: IssueFilters - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9600,22 +14854,34 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): IssueConnection! - """Returns a single label by name""" + """ + Returns a single label by name + """ label( - """Label name""" + """ + Label name + """ name: String! ): Label - """A list of labels associated with the repository.""" + """ + A list of labels associated with the repository. + """ labels( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9623,13 +14889,19 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """If provided, searches labels by name and description.""" + """ + If provided, searches labels by name and description. + """ query: String ): LabelConnection @@ -9637,7 +14909,9 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib A list containing a breakdown of the language composition of the repository. """ languages( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9645,27 +14919,39 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Order for connection""" + """ + Order for connection + """ orderBy: LanguageOrder ): LanguageConnection - """The license associated with the repository""" + """ + The license associated with the repository + """ licenseInfo: License - """The reason the repository has been locked.""" + """ + The reason the repository has been locked. + """ lockReason: RepositoryLockReason """ A list of Users that can be mentioned in the context of the repository. """ mentionableUsers( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9673,25 +14959,39 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserConnection! - """Whether or not PRs are merged with a merge commit on this repository.""" + """ + Whether or not PRs are merged with a merge commit on this repository. + """ mergeCommitAllowed: Boolean! - """Returns a single milestone from the current repository by number.""" + """ + Returns a single milestone from the current repository by number. + """ milestone( - """The number for the milestone to be returned.""" + """ + The number for the milestone to be returned. + """ number: Int! ): Milestone - """A list of milestones associated with the repository.""" + """ + A list of milestones associated with the repository. + """ milestones( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9699,64 +14999,104 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Filter by the state of the milestones.""" + """ + Filter by the state of the milestones. + """ states: [MilestoneState!] - """Ordering options for milestones.""" + """ + Ordering options for milestones. + """ orderBy: MilestoneOrder ): MilestoneConnection - """The repository's original mirror URL.""" + """ + The repository's original mirror URL. + """ mirrorUrl: URI - """The name of the repository.""" + """ + The name of the repository. + """ name: String! - """The repository's name with owner.""" + """ + The repository's name with owner. + """ nameWithOwner: String! - """A Git object in the repository""" + """ + A Git object in the repository + """ object( - """The Git object ID""" + """ + The Git object ID + """ oid: GitObjectID - """A Git revision expression suitable for rev-parse""" + """ + A Git revision expression suitable for rev-parse + """ expression: String ): GitObject - """The User owner of the repository.""" + """ + The User owner of the repository. + """ owner: RepositoryOwner! - """The repository parent, if this is a fork.""" + """ + The repository parent, if this is a fork. + """ parent: Repository - """The primary language of the repository's code.""" + """ + The primary language of the repository's code. + """ primaryLanguage: Language - """Find project by number.""" + """ + Find project by number. + """ project( - """The project number to find.""" + """ + The project number to find. + """ number: Int! ): Project - """A list of projects under the owner.""" + """ + A list of projects under the owner. + """ projects( - """Ordering options for projects returned from the connection""" + """ + Ordering options for projects returned from the connection + """ orderBy: ProjectOrder - """Query to search projects by, currently only searching by name.""" + """ + Query to search projects by, currently only searching by name. + """ search: String - """A list of states to filter the projects by.""" + """ + A list of states to filter the projects by. + """ states: [ProjectState!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9764,43 +15104,69 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): ProjectConnection! - """The HTTP path listing the repository's projects""" + """ + The HTTP path listing the repository's projects + """ projectsResourcePath: URI! - """The HTTP URL listing the repository's projects""" + """ + The HTTP URL listing the repository's projects + """ projectsUrl: URI! - """Returns a single pull request from the current repository by number.""" + """ + Returns a single pull request from the current repository by number. + """ pullRequest( - """The number for the pull request to be returned.""" + """ + The number for the pull request to be returned. + """ number: Int! ): PullRequest - """A list of pull requests that have been opened in the repository.""" + """ + A list of pull requests that have been opened in the repository. + """ pullRequests( - """A list of states to filter the pull requests by.""" + """ + A list of states to filter the pull requests by. + """ states: [PullRequestState!] - """A list of label names to filter the pull requests by.""" + """ + A list of label names to filter the pull requests by. + """ labels: [String!] - """The head ref name to filter the pull requests by.""" + """ + The head ref name to filter the pull requests by. + """ headRefName: String - """The base ref name to filter the pull requests by.""" + """ + The base ref name to filter the pull requests by. + """ baseRefName: String - """Ordering options for pull requests returned from the connection.""" + """ + Ordering options for pull requests returned from the connection. + """ orderBy: IssueOrder - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9808,20 +15174,30 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PullRequestConnection! - """Identifies when the repository was last pushed to.""" + """ + Identifies when the repository was last pushed to. + """ pushedAt: DateTime - """Whether or not rebase-merging is enabled on this repository.""" + """ + Whether or not rebase-merging is enabled on this repository. + """ rebaseMergeAllowed: Boolean! - """Fetch a given ref from the repository""" + """ + Fetch a given ref from the repository + """ ref( """ The ref to retrieve. Fully qualified matches are checked in order @@ -9830,9 +15206,13 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib qualifiedName: String! ): Ref - """Fetch a list of refs from the repository""" + """ + Fetch a list of refs from the repository + """ refs( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9840,31 +15220,49 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """A ref name prefix like `refs/heads/`, `refs/tags/`, etc.""" + """ + A ref name prefix like `refs/heads/`, `refs/tags/`, etc. + """ refPrefix: String! - """DEPRECATED: use orderBy. The ordering direction.""" + """ + DEPRECATED: use orderBy. The ordering direction. + """ direction: OrderDirection - """Ordering options for refs returned from the connection.""" + """ + Ordering options for refs returned from the connection. + """ orderBy: RefOrder ): RefConnection - """Lookup a single release given various criteria.""" + """ + Lookup a single release given various criteria. + """ release( - """The name of the Tag the Release was created from""" + """ + The name of the Tag the Release was created from + """ tagName: String! ): Release - """List of releases which are dependent on this repository.""" + """ + List of releases which are dependent on this repository. + """ releases( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9872,19 +15270,29 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Order for connection""" + """ + Order for connection + """ orderBy: ReleaseOrder ): ReleaseConnection! - """A list of applied repository-topic associations for this repository.""" + """ + A list of applied repository-topic associations for this repository. + """ repositoryTopics( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9892,33 +15300,49 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): RepositoryTopicConnection! - """The HTTP path for this repository""" + """ + The HTTP path for this repository + """ resourcePath: URI! """ A description of the repository, rendered to HTML without any links in it. """ shortDescriptionHTML( - """How many characters to return.""" + """ + How many characters to return. + """ limit: Int = 200 ): HTML! - """Whether or not squash-merging is enabled on this repository.""" + """ + Whether or not squash-merging is enabled on this repository. + """ squashMergeAllowed: Boolean! - """The SSH URL to clone this repository""" + """ + The SSH URL to clone this repository + """ sshUrl: GitSSHRemote! - """A list of users who have starred this starrable.""" + """ + A list of users who have starred this starrable. + """ stargazers( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9926,26 +15350,40 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Order for connection""" + """ + Order for connection + """ orderBy: StarOrder ): StargazerConnection! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this repository""" + """ + The HTTP URL for this repository + """ url: URI! - """Indicates whether the viewer has admin permissions on this repository.""" + """ + Indicates whether the viewer has admin permissions on this repository. + """ viewerCanAdminister: Boolean! - """Can the current viewer create new projects on this owner.""" + """ + Can the current viewer create new projects on this owner. + """ viewerCanCreateProjects: Boolean! """ @@ -9953,7 +15391,9 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ viewerCanSubscribe: Boolean! - """Indicates whether the viewer can update the topics of this repository.""" + """ + Indicates whether the viewer can update the topics of this repository. + """ viewerCanUpdateTopics: Boolean! """ @@ -9971,9 +15411,13 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ viewerSubscription: SubscriptionState - """A list of users watching the repository.""" + """ + A list of users watching the repository. + """ watchers( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -9981,20 +15425,30 @@ type Repository implements Node & ProjectOwner & RegistryPackageOwner & Subscrib """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): UserConnection! } -"""The affiliation of a user to a repository""" +""" +The affiliation of a user to a repository +""" enum RepositoryAffiliation { - """Repositories that are owned by the authenticated user.""" + """ + Repositories that are owned by the authenticated user. + """ OWNER - """Repositories that the user has been added to as a collaborator.""" + """ + Repositories that the user has been added to as a collaborator. + """ COLLABORATOR """ @@ -10004,97 +15458,159 @@ enum RepositoryAffiliation { ORGANIZATION_MEMBER } -"""The affiliation type between collaborator and repository.""" +""" +The affiliation type between collaborator and repository. +""" enum RepositoryCollaboratorAffiliation { - """All collaborators of the repository.""" + """ + All collaborators of the repository. + """ ALL - """All outside collaborators of an organization-owned repository.""" + """ + All outside collaborators of an organization-owned repository. + """ OUTSIDE } -"""The connection type for User.""" +""" +The connection type for User. +""" type RepositoryCollaboratorConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [RepositoryCollaboratorEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [User] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""Represents a user who is a collaborator of a repository.""" +""" +Represents a user who is a collaborator of a repository. +""" type RepositoryCollaboratorEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! node: User! - """The permission the user has on the repository.""" + """ + The permission the user has on the repository. + """ permission: RepositoryPermission! - """A list of sources for the user's access to the repository.""" + """ + A list of sources for the user's access to the repository. + """ permissionSources: [PermissionSource!] } -"""A list of repositories owned by the subject.""" +""" +A list of repositories owned by the subject. +""" type RepositoryConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [RepositoryEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Repository] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! - """The total size in kilobytes of all repositories in the connection.""" + """ + The total size in kilobytes of all repositories in the connection. + """ totalDiskUsage: Int! } -"""The reason a repository is listed as 'contributed'.""" +""" +The reason a repository is listed as 'contributed'. +""" enum RepositoryContributionType { - """Created a commit""" + """ + Created a commit + """ COMMIT - """Created an issue""" + """ + Created an issue + """ ISSUE - """Created a pull request""" + """ + Created a pull request + """ PULL_REQUEST - """Created the repository""" + """ + Created the repository + """ REPOSITORY - """Reviewed a pull request""" + """ + Reviewed a pull request + """ PULL_REQUEST_REVIEW } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type RepositoryEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Repository } -"""A subset of repository info.""" +""" +A subset of repository info. +""" interface RepositoryInfo { - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """The description of the repository.""" + """ + The description of the repository. + """ description: String - """The description of the repository rendered to HTML.""" + """ + The description of the repository rendered to HTML. + """ descriptionHTML: HTML! """ @@ -10102,161 +15618,261 @@ interface RepositoryInfo { """ forkCount: Int! - """Indicates if the repository has issues feature enabled.""" + """ + Indicates if the repository has issues feature enabled. + """ hasIssuesEnabled: Boolean! - """Indicates if the repository has wiki feature enabled.""" + """ + Indicates if the repository has wiki feature enabled. + """ hasWikiEnabled: Boolean! - """The repository's URL.""" + """ + The repository's URL. + """ homepageUrl: URI - """Indicates if the repository is unmaintained.""" + """ + Indicates if the repository is unmaintained. + """ isArchived: Boolean! - """Identifies if the repository is a fork.""" + """ + Identifies if the repository is a fork. + """ isFork: Boolean! - """Indicates if the repository has been locked or not.""" + """ + Indicates if the repository has been locked or not. + """ isLocked: Boolean! - """Identifies if the repository is a mirror.""" + """ + Identifies if the repository is a mirror. + """ isMirror: Boolean! - """Identifies if the repository is private.""" + """ + Identifies if the repository is private. + """ isPrivate: Boolean! - """The license associated with the repository""" + """ + The license associated with the repository + """ licenseInfo: License - """The reason the repository has been locked.""" + """ + The reason the repository has been locked. + """ lockReason: RepositoryLockReason - """The repository's original mirror URL.""" + """ + The repository's original mirror URL. + """ mirrorUrl: URI - """The name of the repository.""" + """ + The name of the repository. + """ name: String! - """The repository's name with owner.""" + """ + The repository's name with owner. + """ nameWithOwner: String! - """The User owner of the repository.""" + """ + The User owner of the repository. + """ owner: RepositoryOwner! - """Identifies when the repository was last pushed to.""" + """ + Identifies when the repository was last pushed to. + """ pushedAt: DateTime - """The HTTP path for this repository""" + """ + The HTTP path for this repository + """ resourcePath: URI! """ A description of the repository, rendered to HTML without any links in it. """ shortDescriptionHTML( - """How many characters to return.""" + """ + How many characters to return. + """ limit: Int = 200 ): HTML! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this repository""" + """ + The HTTP URL for this repository + """ url: URI! } -"""An invitation for a user to be added to a repository.""" +""" +An invitation for a user to be added to a repository. +""" type RepositoryInvitation implements Node { id: ID! - """The user who received the invitation.""" + """ + The user who received the invitation. + """ invitee: User! - """The user who created the invitation.""" + """ + The user who created the invitation. + """ inviter: User! - """The permission granted on this repository by this invitation.""" + """ + The permission granted on this repository by this invitation. + """ permission: RepositoryPermission! - """The Repository the user is invited to.""" + """ + The Repository the user is invited to. + """ repository: RepositoryInfo } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type RepositoryInvitationEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: RepositoryInvitation } -"""The possible reasons a given repository could be in a locked state.""" +""" +The possible reasons a given repository could be in a locked state. +""" enum RepositoryLockReason { - """The repository is locked due to a move.""" + """ + The repository is locked due to a move. + """ MOVING - """The repository is locked due to a billing related reason.""" + """ + The repository is locked due to a billing related reason. + """ BILLING - """The repository is locked due to a rename.""" + """ + The repository is locked due to a rename. + """ RENAME - """The repository is locked due to a migration.""" + """ + The repository is locked due to a migration. + """ MIGRATING } -"""Represents a object that belongs to a repository.""" +""" +Represents a object that belongs to a repository. +""" interface RepositoryNode { - """The repository associated with this node.""" + """ + The repository associated with this node. + """ repository: Repository! } -"""Ordering options for repository connections""" +""" +Ordering options for repository connections +""" input RepositoryOrder { - """The field to order repositories by.""" + """ + The field to order repositories by. + """ field: RepositoryOrderField! - """The ordering direction.""" + """ + The ordering direction. + """ direction: OrderDirection! } -"""Properties by which repository connections can be ordered.""" +""" +Properties by which repository connections can be ordered. +""" enum RepositoryOrderField { - """Order repositories by creation time""" + """ + Order repositories by creation time + """ CREATED_AT - """Order repositories by update time""" + """ + Order repositories by update time + """ UPDATED_AT - """Order repositories by push time""" + """ + Order repositories by push time + """ PUSHED_AT - """Order repositories by name""" + """ + Order repositories by name + """ NAME - """Order repositories by number of stargazers""" + """ + Order repositories by number of stargazers + """ STARGAZERS } -"""Represents an owner of a Repository.""" +""" +Represents an owner of a Repository. +""" interface RepositoryOwner { - """A URL pointing to the owner's public avatar.""" + """ + A URL pointing to the owner's public avatar. + """ avatarUrl( - """The size of the resulting square image.""" + """ + The size of the resulting square image. + """ size: Int ): URI! id: ID! - """The username used to login.""" + """ + The username used to login. + """ login: String! - """A list of repositories this user has pinned to their profile""" + """ + A list of repositories this user has pinned to their profile + """ pinnedRepositories( - """If non-null, filters repositories according to privacy""" + """ + If non-null, filters repositories according to privacy + """ privacy: RepositoryPrivacy - """Ordering options for repositories returned from the connection""" + """ + Ordering options for repositories returned from the connection + """ orderBy: RepositoryOrder """ @@ -10278,7 +15894,9 @@ interface RepositoryOwner { """ isLocked: Boolean - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -10286,19 +15904,32 @@ interface RepositoryOwner { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - ): RepositoryConnection! @deprecated(reason: "pinnedRepositories will be removed Use ProfileOwner.pinnedItems instead. Removal on 2019-07-01 UTC.") + ): RepositoryConnection! + @deprecated( + reason: "pinnedRepositories will be removed Use ProfileOwner.pinnedItems instead. Removal on 2019-07-01 UTC." + ) - """A list of repositories that the user owns.""" + """ + A list of repositories that the user owns. + """ repositories( - """If non-null, filters repositories according to privacy""" + """ + If non-null, filters repositories according to privacy + """ privacy: RepositoryPrivacy - """Ordering options for repositories returned from the connection""" + """ + Ordering options for repositories returned from the connection + """ orderBy: RepositoryOrder """ @@ -10320,7 +15951,9 @@ interface RepositoryOwner { """ isLocked: Boolean - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -10328,10 +15961,14 @@ interface RepositoryOwner { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int """ @@ -10340,151 +15977,237 @@ interface RepositoryOwner { isFork: Boolean ): RepositoryConnection! - """Find Repository.""" + """ + Find Repository. + """ repository( - """Name of Repository to find.""" + """ + Name of Repository to find. + """ name: String! ): Repository - """The HTTP URL for the owner.""" + """ + The HTTP URL for the owner. + """ resourcePath: URI! - """The HTTP URL for the owner.""" + """ + The HTTP URL for the owner. + """ url: URI! } -"""The access level to a repository""" +""" +The access level to a repository +""" enum RepositoryPermission { - """Can read, clone, push, and add collaborators""" + """ + Can read, clone, push, and add collaborators + """ ADMIN - """Can read, clone and push""" + """ + Can read, clone and push + """ WRITE - """Can read and clone""" + """ + Can read and clone + """ READ } -"""The privacy of a repository""" +""" +The privacy of a repository +""" enum RepositoryPrivacy { - """Public""" + """ + Public + """ PUBLIC - """Private""" + """ + Private + """ PRIVATE } -"""A repository-topic connects a repository to a topic.""" +""" +A repository-topic connects a repository to a topic. +""" type RepositoryTopic implements Node & UniformResourceLocatable { id: ID! - """The HTTP path for this repository-topic.""" + """ + The HTTP path for this repository-topic. + """ resourcePath: URI! - """The topic.""" + """ + The topic. + """ topic: Topic! - """The HTTP URL for this repository-topic.""" + """ + The HTTP URL for this repository-topic. + """ url: URI! } -"""The connection type for RepositoryTopic.""" +""" +The connection type for RepositoryTopic. +""" type RepositoryTopicConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [RepositoryTopicEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [RepositoryTopic] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type RepositoryTopicEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: RepositoryTopic } -"""Types that can be requested reviewers.""" +""" +Types that can be requested reviewers. +""" union RequestedReviewer = User | Team | Mannequin -"""Autogenerated input type of RequestReviews""" +""" +Autogenerated input type of RequestReviews +""" input RequestReviewsInput { - """The Node ID of the pull request to modify.""" + """ + The Node ID of the pull request to modify. + """ pullRequestId: ID! - """The Node IDs of the user to request.""" + """ + The Node IDs of the user to request. + """ userIds: [ID!] - """The Node IDs of the team to request.""" + """ + The Node IDs of the team to request. + """ teamIds: [ID!] - """Add users to the set rather than replace.""" + """ + Add users to the set rather than replace. + """ union: Boolean - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of RequestReviews""" +""" +Autogenerated return type of RequestReviews +""" type RequestReviewsPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The pull request that is getting requests.""" + """ + The pull request that is getting requests. + """ pullRequest: PullRequest - """The edge from the pull request to the requested reviewers.""" + """ + The edge from the pull request to the requested reviewers. + """ requestedReviewersEdge: UserEdge } -"""Autogenerated input type of ResolveReviewThread""" +""" +Autogenerated input type of ResolveReviewThread +""" input ResolveReviewThreadInput { - """The ID of the thread to resolve""" + """ + The ID of the thread to resolve + """ threadId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of ResolveReviewThread""" +""" +Autogenerated return type of ResolveReviewThread +""" type ResolveReviewThreadPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The thread to resolve.""" + """ + The thread to resolve. + """ thread: PullRequestReviewThread } -"""Represents a private contribution a user made on GitHub.""" +""" +Represents a private contribution a user made on GitHub. +""" type RestrictedContribution implements Contribution { """ Whether this contribution is associated with a record you do not have access to. For example, your own 'first issue' contribution may have been made on a repository you can no longer access. - """ isRestricted: Boolean! - """When this contribution was made.""" + """ + When this contribution was made. + """ occurredAt: DateTime! - """The HTTP path for this contribution.""" + """ + The HTTP path for this contribution. + """ resourcePath: URI! - """The HTTP URL for this contribution.""" + """ + The HTTP URL for this contribution. + """ url: URI! """ The user who made this contribution. - """ user: User! } @@ -10493,7 +16216,9 @@ type RestrictedContribution implements Contribution { A team or user who has the ability to dismiss a review on a protected branch. """ type ReviewDismissalAllowance implements Node { - """The actor that can dismiss.""" + """ + The actor that can dismiss. + """ actor: ReviewDismissalAllowanceActor """ @@ -10503,30 +16228,48 @@ type ReviewDismissalAllowance implements Node { id: ID! } -"""Types that can be an actor.""" +""" +Types that can be an actor. +""" union ReviewDismissalAllowanceActor = User | Team -"""The connection type for ReviewDismissalAllowance.""" +""" +The connection type for ReviewDismissalAllowance. +""" type ReviewDismissalAllowanceConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [ReviewDismissalAllowanceEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [ReviewDismissalAllowance] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type ReviewDismissalAllowanceEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: ReviewDismissalAllowance } @@ -10534,13 +16277,19 @@ type ReviewDismissalAllowanceEdge { Represents a 'review_dismissed' event on a given issue or pull request. """ type ReviewDismissedEvent implements Node & UniformResourceLocatable { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int """ @@ -10554,204 +16303,344 @@ type ReviewDismissedEvent implements Node & UniformResourceLocatable { dismissalMessageHTML: String id: ID! - """Identifies the message associated with the 'review_dismissed' event.""" - message: String! @deprecated(reason: "`message` is being removed because it not nullable, whereas the underlying field is optional. Use `dismissalMessage` instead. Removal on 2019-07-01 UTC.") + """ + Identifies the message associated with the 'review_dismissed' event. + """ + message: String! + @deprecated( + reason: "`message` is being removed because it not nullable, whereas the underlying field is optional. Use `dismissalMessage` instead. Removal on 2019-07-01 UTC." + ) - """The message associated with the event, rendered to HTML.""" - messageHtml: HTML! @deprecated(reason: "`messageHtml` is being removed because it not nullable, whereas the underlying field is optional. Use `dismissalMessageHTML` instead. Removal on 2019-07-01 UTC.") + """ + The message associated with the event, rendered to HTML. + """ + messageHtml: HTML! + @deprecated( + reason: "`messageHtml` is being removed because it not nullable, whereas the underlying field is optional. Use `dismissalMessageHTML` instead. Removal on 2019-07-01 UTC." + ) """ Identifies the previous state of the review with the 'review_dismissed' event. """ previousReviewState: PullRequestReviewState! - """PullRequest referenced by event.""" + """ + PullRequest referenced by event. + """ pullRequest: PullRequest! - """Identifies the commit which caused the review to become stale.""" + """ + Identifies the commit which caused the review to become stale. + """ pullRequestCommit: PullRequestCommit - """The HTTP path for this review dismissed event.""" + """ + The HTTP path for this review dismissed event. + """ resourcePath: URI! - """Identifies the review associated with the 'review_dismissed' event.""" + """ + Identifies the review associated with the 'review_dismissed' event. + """ review: PullRequestReview - """The HTTP URL for this review dismissed event.""" + """ + The HTTP URL for this review dismissed event. + """ url: URI! } -"""A request for a user to review a pull request.""" +""" +A request for a user to review a pull request. +""" type ReviewRequest implements Node { - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int id: ID! - """Identifies the pull request associated with this review request.""" + """ + Identifies the pull request associated with this review request. + """ pullRequest: PullRequest! - """The reviewer that is requested.""" + """ + The reviewer that is requested. + """ requestedReviewer: RequestedReviewer } -"""The connection type for ReviewRequest.""" +""" +The connection type for ReviewRequest. +""" type ReviewRequestConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [ReviewRequestEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [ReviewRequest] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""Represents an 'review_requested' event on a given pull request.""" +""" +Represents an 'review_requested' event on a given pull request. +""" type ReviewRequestedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """PullRequest referenced by event.""" + """ + PullRequest referenced by event. + """ pullRequest: PullRequest! - """Identifies the reviewer whose review was requested.""" + """ + Identifies the reviewer whose review was requested. + """ requestedReviewer: RequestedReviewer } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type ReviewRequestEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: ReviewRequest } -"""Represents an 'review_request_removed' event on a given pull request.""" +""" +Represents an 'review_request_removed' event on a given pull request. +""" type ReviewRequestRemovedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """PullRequest referenced by event.""" + """ + PullRequest referenced by event. + """ pullRequest: PullRequest! - """Identifies the reviewer whose review request was removed.""" + """ + Identifies the reviewer whose review request was removed. + """ requestedReviewer: RequestedReviewer } -"""The results of a search.""" -union SearchResultItem = Issue | PullRequest | Repository | User | Organization | MarketplaceListing +""" +The results of a search. +""" +union SearchResultItem = + Issue + | PullRequest + | Repository + | User + | Organization + | MarketplaceListing -"""A list of results that matched against a search query.""" +""" +A list of results that matched against a search query. +""" type SearchResultItemConnection { - """The number of pieces of code that matched the search query.""" + """ + The number of pieces of code that matched the search query. + """ codeCount: Int! - """A list of edges.""" + """ + A list of edges. + """ edges: [SearchResultItemEdge] - """The number of issues that matched the search query.""" + """ + The number of issues that matched the search query. + """ issueCount: Int! - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [SearchResultItem] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """The number of repositories that matched the search query.""" + """ + The number of repositories that matched the search query. + """ repositoryCount: Int! - """The number of users that matched the search query.""" + """ + The number of users that matched the search query. + """ userCount: Int! - """The number of wiki pages that matched the search query.""" + """ + The number of wiki pages that matched the search query. + """ wikiCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type SearchResultItemEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: SearchResultItem - """Text matches on the result found.""" + """ + Text matches on the result found. + """ textMatches: [TextMatch] } -"""Represents the individual results of a search.""" +""" +Represents the individual results of a search. +""" enum SearchType { - """Returns results matching issues in repositories.""" + """ + Returns results matching issues in repositories. + """ ISSUE - """Returns results matching repositories.""" + """ + Returns results matching repositories. + """ REPOSITORY - """Returns results matching users and organizations on GitHub.""" + """ + Returns results matching users and organizations on GitHub. + """ USER } -"""A GitHub Security Advisory""" +""" +A GitHub Security Advisory +""" type SecurityAdvisory implements Node { - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """This is a long plaintext description of the advisory""" + """ + This is a long plaintext description of the advisory + """ description: String! - """The GitHub Security Advisory ID""" + """ + The GitHub Security Advisory ID + """ ghsaId: String! id: ID! - """A list of identifiers for this advisory""" + """ + A list of identifiers for this advisory + """ identifiers: [SecurityAdvisoryIdentifier!]! - """The organization that originated the advisory""" + """ + The organization that originated the advisory + """ origin: String! - """When the advisory was published""" + """ + When the advisory was published + """ publishedAt: DateTime! - """A list of references for this advisory""" + """ + A list of references for this advisory + """ references: [SecurityAdvisoryReference!]! - """The severity of the advisory""" + """ + The severity of the advisory + """ severity: SecurityAdvisorySeverity! - """A short plaintext summary of the advisory""" + """ + A short plaintext summary of the advisory + """ summary: String! - """When the advisory was last updated""" + """ + When the advisory was last updated + """ updatedAt: DateTime! - """Vulnerabilities associated with this Advisory""" + """ + Vulnerabilities associated with this Advisory + """ vulnerabilities( - """Ordering options for the returned topics.""" + """ + Ordering options for the returned topics. + """ orderBy: SecurityVulnerabilityOrder - """An ecosystem to filter vulnerabilities by.""" + """ + An ecosystem to filter vulnerabilities by. + """ ecosystem: SecurityAdvisoryEcosystem - """A package name to filter vulnerabilities by.""" + """ + A package name to filter vulnerabilities by. + """ package: String - """A list of severities to filter vulnerabilities by.""" + """ + A list of severities to filter vulnerabilities by. + """ severities: [SecurityAdvisorySeverity!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -10759,155 +16648,255 @@ type SecurityAdvisory implements Node { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): SecurityVulnerabilityConnection! - """When the advisory was withdrawn, if it has been withdrawn""" + """ + When the advisory was withdrawn, if it has been withdrawn + """ withdrawnAt: DateTime } -"""The connection type for SecurityAdvisory.""" +""" +The connection type for SecurityAdvisory. +""" type SecurityAdvisoryConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [SecurityAdvisoryEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [SecurityAdvisory] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""The possible ecosystems of a security vulnerability's package.""" +""" +The possible ecosystems of a security vulnerability's package. +""" enum SecurityAdvisoryEcosystem { - """Ruby gems hosted at RubyGems.org""" + """ + Ruby gems hosted at RubyGems.org + """ RUBYGEMS - """JavaScript packages hosted at npmjs.com""" + """ + JavaScript packages hosted at npmjs.com + """ NPM - """Python packages hosted at PyPI.org""" + """ + Python packages hosted at PyPI.org + """ PIP - """Java artifacts hosted at the Maven central repository""" + """ + Java artifacts hosted at the Maven central repository + """ MAVEN - """.NET packages hosted at the NuGet Gallery""" + """ + .NET packages hosted at the NuGet Gallery + """ NUGET } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type SecurityAdvisoryEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: SecurityAdvisory } -"""A GitHub Security Advisory Identifier""" +""" +A GitHub Security Advisory Identifier +""" type SecurityAdvisoryIdentifier { - """The identifier type, e.g. GHSA, CVE""" + """ + The identifier type, e.g. GHSA, CVE + """ type: String! - """The identifier""" + """ + The identifier + """ value: String! } -"""An advisory identifier to filter results on.""" +""" +An advisory identifier to filter results on. +""" input SecurityAdvisoryIdentifierFilter { - """The identifier type.""" + """ + The identifier type. + """ type: SecurityAdvisoryIdentifierType! - """The identifier string. Supports exact or partial matching.""" + """ + The identifier string. Supports exact or partial matching. + """ value: String! } -"""Identifier formats available for advisories.""" +""" +Identifier formats available for advisories. +""" enum SecurityAdvisoryIdentifierType { - """Common Vulnerabilities and Exposures Identifier.""" + """ + Common Vulnerabilities and Exposures Identifier. + """ CVE - """GitHub Security Advisory ID.""" + """ + GitHub Security Advisory ID. + """ GHSA } -"""Ordering options for security advisory connections""" +""" +Ordering options for security advisory connections +""" input SecurityAdvisoryOrder { - """The field to order security advisories by.""" + """ + The field to order security advisories by. + """ field: SecurityAdvisoryOrderField! - """The ordering direction.""" + """ + The ordering direction. + """ direction: OrderDirection! } -"""Properties by which security advisory connections can be ordered.""" +""" +Properties by which security advisory connections can be ordered. +""" enum SecurityAdvisoryOrderField { - """Order advisories by publication time""" + """ + Order advisories by publication time + """ PUBLISHED_AT - """Order advisories by update time""" + """ + Order advisories by update time + """ UPDATED_AT } -"""An individual package""" +""" +An individual package +""" type SecurityAdvisoryPackage { - """The ecosystem the package belongs to, e.g. RUBYGEMS, NPM""" + """ + The ecosystem the package belongs to, e.g. RUBYGEMS, NPM + """ ecosystem: SecurityAdvisoryEcosystem! - """The package name""" + """ + The package name + """ name: String! } -"""An individual package version""" +""" +An individual package version +""" type SecurityAdvisoryPackageVersion { - """The package name or version""" + """ + The package name or version + """ identifier: String! } -"""A GitHub Security Advisory Reference""" +""" +A GitHub Security Advisory Reference +""" type SecurityAdvisoryReference { - """A publicly accessible reference""" + """ + A publicly accessible reference + """ url: URI! } -"""Severity of the vulnerability.""" +""" +Severity of the vulnerability. +""" enum SecurityAdvisorySeverity { - """Low.""" + """ + Low. + """ LOW - """Moderate.""" + """ + Moderate. + """ MODERATE - """High.""" + """ + High. + """ HIGH - """Critical.""" + """ + Critical. + """ CRITICAL } -"""An individual vulnerability within an Advisory""" +""" +An individual vulnerability within an Advisory +""" type SecurityVulnerability { - """The Advisory associated with this Vulnerability""" + """ + The Advisory associated with this Vulnerability + """ advisory: SecurityAdvisory! - """The first version containing a fix for the vulnerability""" + """ + The first version containing a fix for the vulnerability + """ firstPatchedVersion: SecurityAdvisoryPackageVersion - """A description of the vulnerable package""" + """ + A description of the vulnerable package + """ package: SecurityAdvisoryPackage! - """The severity of the vulnerability within this package""" + """ + The severity of the vulnerability within this package + """ severity: SecurityAdvisorySeverity! - """When the vulnerability was last updated""" + """ + When the vulnerability was last updated + """ updatedAt: DateTime! """ @@ -10918,56 +16907,87 @@ type SecurityVulnerability { + `< 0.1.11` denotes a version range up to, but excluding, the specified version + `>= 4.3.0, < 4.3.5` denotes a version range with a known minimum and maximum version. + `>= 0.0.1` denotes a version range with a known minimum, but no known maximum - """ vulnerableVersionRange: String! } -"""The connection type for SecurityVulnerability.""" +""" +The connection type for SecurityVulnerability. +""" type SecurityVulnerabilityConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [SecurityVulnerabilityEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [SecurityVulnerability] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type SecurityVulnerabilityEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: SecurityVulnerability } -"""Ordering options for security vulnerability connections""" +""" +Ordering options for security vulnerability connections +""" input SecurityVulnerabilityOrder { - """The field to order security vulnerabilities by.""" + """ + The field to order security vulnerabilities by. + """ field: SecurityVulnerabilityOrderField! - """The ordering direction.""" + """ + The ordering direction. + """ direction: OrderDirection! } -"""Properties by which security vulnerability connections can be ordered.""" +""" +Properties by which security vulnerability connections can be ordered. +""" enum SecurityVulnerabilityOrderField { - """Order vulnerability by update time""" + """ + Order vulnerability by update time + """ UPDATED_AT } -"""Represents an S/MIME signature on a Commit or Tag.""" +""" +Represents an S/MIME signature on a Commit or Tag. +""" type SmimeSignature implements GitSignature { - """Email used to sign this object.""" + """ + Email used to sign this object. + """ email: String! - """True if the signature is valid and verified by GitHub.""" + """ + True if the signature is valid and verified by GitHub. + """ isValid: Boolean! """ @@ -10975,10 +16995,14 @@ type SmimeSignature implements GitSignature { """ payload: String! - """ASCII-armored signature header from object.""" + """ + ASCII-armored signature header from object. + """ signature: String! - """GitHub user corresponding to the email signing this commit.""" + """ + GitHub user corresponding to the email signing this commit. + """ signer: User """ @@ -10987,57 +17011,91 @@ type SmimeSignature implements GitSignature { """ state: GitSignatureState! - """True if the signature was made with GitHub's signing key.""" + """ + True if the signature was made with GitHub's signing key. + """ wasSignedByGitHub: Boolean! } -"""The connection type for User.""" +""" +The connection type for User. +""" type StargazerConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [StargazerEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [User] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""Represents a user that's starred a repository.""" +""" +Represents a user that's starred a repository. +""" type StargazerEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! node: User! - """Identifies when the item was starred.""" + """ + Identifies when the item was starred. + """ starredAt: DateTime! } -"""Ways in which star connections can be ordered.""" +""" +Ways in which star connections can be ordered. +""" input StarOrder { - """The field in which to order nodes by.""" + """ + The field in which to order nodes by. + """ field: StarOrderField! - """The direction in which to order nodes.""" + """ + The direction in which to order nodes. + """ direction: OrderDirection! } -"""Properties by which star connections can be ordered.""" +""" +Properties by which star connections can be ordered. +""" enum StarOrderField { - """Allows ordering a list of stars by when they were created.""" + """ + Allows ordering a list of stars by when they were created. + """ STARRED_AT } -"""Things that can be starred.""" +""" +Things that can be starred. +""" interface Starrable { id: ID! - """A list of users who have starred this starrable.""" + """ + A list of users who have starred this starrable. + """ stargazers( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -11045,13 +17103,19 @@ interface Starrable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Order for connection""" + """ + Order for connection + """ orderBy: StarOrder ): StargazerConnection! @@ -11061,118 +17125,192 @@ interface Starrable { viewerHasStarred: Boolean! } -"""The connection type for Repository.""" +""" +The connection type for Repository. +""" type StarredRepositoryConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [StarredRepositoryEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Repository] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""Represents a starred repository.""" +""" +Represents a starred repository. +""" type StarredRepositoryEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! node: Repository! - """Identifies when the item was starred.""" + """ + Identifies when the item was starred. + """ starredAt: DateTime! } -"""Represents a commit status.""" +""" +Represents a commit status. +""" type Status implements Node { - """The commit this status is attached to.""" + """ + The commit this status is attached to. + """ commit: Commit - """Looks up an individual status context by context name.""" + """ + Looks up an individual status context by context name. + """ context( - """The context name.""" + """ + The context name. + """ name: String! ): StatusContext - """The individual status contexts for this commit.""" + """ + The individual status contexts for this commit. + """ contexts: [StatusContext!]! id: ID! - """The combined commit status.""" + """ + The combined commit status. + """ state: StatusState! } -"""Represents an individual commit status context""" +""" +Represents an individual commit status context +""" type StatusContext implements Node { - """This commit this status context is attached to.""" + """ + This commit this status context is attached to. + """ commit: Commit - """The name of this status context.""" + """ + The name of this status context. + """ context: String! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """The actor who created this status context.""" + """ + The actor who created this status context. + """ creator: Actor - """The description for this status context.""" + """ + The description for this status context. + """ description: String id: ID! - """The state of this status context.""" + """ + The state of this status context. + """ state: StatusState! - """The URL for this status context.""" + """ + The URL for this status context. + """ targetUrl: URI } -"""The possible commit status states.""" +""" +The possible commit status states. +""" enum StatusState { - """Status is expected.""" + """ + Status is expected. + """ EXPECTED - """Status is errored.""" + """ + Status is errored. + """ ERROR - """Status is failing.""" + """ + Status is failing. + """ FAILURE - """Status is pending.""" + """ + Status is pending. + """ PENDING - """Status is successful.""" + """ + Status is successful. + """ SUCCESS } -"""Autogenerated input type of SubmitPullRequestReview""" +""" +Autogenerated input type of SubmitPullRequestReview +""" input SubmitPullRequestReviewInput { - """The Pull Request Review ID to submit.""" + """ + The Pull Request Review ID to submit. + """ pullRequestReviewId: ID! - """The event to send to the Pull Request Review.""" + """ + The event to send to the Pull Request Review. + """ event: PullRequestReviewEvent! - """The text field to set on the Pull Request Review.""" + """ + The text field to set on the Pull Request Review. + """ body: String - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of SubmitPullRequestReview""" +""" +Autogenerated return type of SubmitPullRequestReview +""" type SubmitPullRequestReviewPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The submitted pull request review.""" + """ + The submitted pull request review. + """ pullRequestReview: PullRequestReview } -"""Entities that can be subscribed to for web and email notifications.""" +""" +Entities that can be subscribed to for web and email notifications. +""" interface Subscribable { id: ID! @@ -11187,28 +17325,44 @@ interface Subscribable { viewerSubscription: SubscriptionState } -"""Represents a 'subscribed' event on a given `Subscribable`.""" +""" +Represents a 'subscribed' event on a given `Subscribable`. +""" type SubscribedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Object referenced by event.""" + """ + Object referenced by event. + """ subscribable: Subscribable! } -"""The possible states of a subscription.""" +""" +The possible states of a subscription. +""" enum SubscriptionState { - """The User is only notified when participating or @mentioned.""" + """ + The User is only notified when participating or @mentioned. + """ UNSUBSCRIBED - """The User is notified of all conversations.""" + """ + The User is notified of all conversations. + """ SUBSCRIBED - """The User is never notified.""" + """ + The User is never notified. + """ IGNORED } @@ -11216,52 +17370,84 @@ enum SubscriptionState { A suggestion to review a pull request based on a user's commit history and review comments. """ type SuggestedReviewer { - """Is this suggestion based on past commits?""" + """ + Is this suggestion based on past commits? + """ isAuthor: Boolean! - """Is this suggestion based on past review comments?""" + """ + Is this suggestion based on past review comments? + """ isCommenter: Boolean! - """Identifies the user suggested to review the pull request.""" + """ + Identifies the user suggested to review the pull request. + """ reviewer: User! } -"""Represents a Git tag.""" +""" +Represents a Git tag. +""" type Tag implements Node & GitObject { - """An abbreviated version of the Git object ID""" + """ + An abbreviated version of the Git object ID + """ abbreviatedOid: String! - """The HTTP path for this Git object""" + """ + The HTTP path for this Git object + """ commitResourcePath: URI! - """The HTTP URL for this Git object""" + """ + The HTTP URL for this Git object + """ commitUrl: URI! id: ID! - """The Git tag message.""" + """ + The Git tag message. + """ message: String - """The Git tag name.""" + """ + The Git tag name. + """ name: String! - """The Git object ID""" + """ + The Git object ID + """ oid: GitObjectID! - """The Repository the Git object belongs to""" + """ + The Repository the Git object belongs to + """ repository: Repository! - """Details about the tag author.""" + """ + Details about the tag author. + """ tagger: GitActor - """The Git object the tag points to.""" + """ + The Git object the tag points to. + """ target: GitObject! } -"""A team of users in an organization.""" +""" +A team of users in an organization. +""" type Team implements Node & Subscribable & MemberStatusable { - """A list of teams that are ancestors of this team.""" + """ + A list of teams that are ancestors of this team. + """ ancestors( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -11269,31 +17455,49 @@ type Team implements Node & Subscribable & MemberStatusable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): TeamConnection! - """A URL pointing to the team's avatar.""" + """ + A URL pointing to the team's avatar. + """ avatarUrl( - """The size in pixels of the resulting square image.""" + """ + The size in pixels of the resulting square image. + """ size: Int = 400 ): URI - """List of child teams belonging to this team""" + """ + List of child teams belonging to this team + """ childTeams( - """Order for connection""" + """ + Order for connection + """ orderBy: TeamOrder - """User logins to filter by""" + """ + User logins to filter by + """ userLogins: [String!] - """Whether to list immediate child teams or all descendant child teams.""" + """ + Whether to list immediate child teams or all descendant child teams. + """ immediateOnly: Boolean = true - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -11301,32 +17505,50 @@ type Team implements Node & Subscribable & MemberStatusable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): TeamConnection! - """The slug corresponding to the organization and team.""" + """ + The slug corresponding to the organization and team. + """ combinedSlug: String! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """The description of the team.""" + """ + The description of the team. + """ description: String - """The HTTP path for editing this team""" + """ + The HTTP path for editing this team + """ editTeamResourcePath: URI! - """The HTTP URL for editing this team""" + """ + The HTTP URL for editing this team + """ editTeamUrl: URI! id: ID! - """A list of pending invitations for users to this team""" + """ + A list of pending invitations for users to this team + """ invitations( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -11334,10 +17556,14 @@ type Team implements Node & Subscribable & MemberStatusable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): OrganizationInvitationConnection @@ -11345,7 +17571,9 @@ type Team implements Node & Subscribable & MemberStatusable { Get the status messages members of this entity have set that are either public or visible only to the organization. """ memberStatuses( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -11353,19 +17581,29 @@ type Team implements Node & Subscribable & MemberStatusable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Ordering options for user statuses returned from the connection.""" + """ + Ordering options for user statuses returned from the connection. + """ orderBy: UserStatusOrder ): UserStatusConnection! - """A list of users who are members of this team.""" + """ + A list of users who are members of this team. + """ members( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -11373,52 +17611,84 @@ type Team implements Node & Subscribable & MemberStatusable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """The search string to look for.""" + """ + The search string to look for. + """ query: String - """Filter by membership type""" + """ + Filter by membership type + """ membership: TeamMembershipType = ALL - """Filter by team member role""" + """ + Filter by team member role + """ role: TeamMemberRole - """Order for the connection.""" + """ + Order for the connection. + """ orderBy: TeamMemberOrder ): TeamMemberConnection! - """The HTTP path for the team' members""" + """ + The HTTP path for the team' members + """ membersResourcePath: URI! - """The HTTP URL for the team' members""" + """ + The HTTP URL for the team' members + """ membersUrl: URI! - """The name of the team.""" + """ + The name of the team. + """ name: String! - """The HTTP path creating a new team""" + """ + The HTTP path creating a new team + """ newTeamResourcePath: URI! - """The HTTP URL creating a new team""" + """ + The HTTP URL creating a new team + """ newTeamUrl: URI! - """The organization that owns this team.""" + """ + The organization that owns this team. + """ organization: Organization! - """The parent team of the team.""" + """ + The parent team of the team. + """ parentTeam: Team - """The level of privacy the team has.""" + """ + The level of privacy the team has. + """ privacy: TeamPrivacy! - """A list of repositories this team has access to.""" + """ + A list of repositories this team has access to. + """ repositories( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -11426,44 +17696,70 @@ type Team implements Node & Subscribable & MemberStatusable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """The search string to look for.""" + """ + The search string to look for. + """ query: String - """Order for the connection.""" + """ + Order for the connection. + """ orderBy: TeamRepositoryOrder ): TeamRepositoryConnection! - """The HTTP path for this team's repositories""" + """ + The HTTP path for this team's repositories + """ repositoriesResourcePath: URI! - """The HTTP URL for this team's repositories""" + """ + The HTTP URL for this team's repositories + """ repositoriesUrl: URI! - """The HTTP path for this team""" + """ + The HTTP path for this team + """ resourcePath: URI! - """The slug corresponding to the team.""" + """ + The slug corresponding to the team. + """ slug: String! - """The HTTP path for this team's teams""" + """ + The HTTP path for this team's teams + """ teamsResourcePath: URI! - """The HTTP URL for this team's teams""" + """ + The HTTP URL for this team's teams + """ teamsUrl: URI! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this team""" + """ + The HTTP URL for this team + """ url: URI! - """Team is adminable by the viewer.""" + """ + Team is adminable by the viewer. + """ viewerCanAdminister: Boolean! """ @@ -11477,85 +17773,139 @@ type Team implements Node & Subscribable & MemberStatusable { viewerSubscription: SubscriptionState } -"""The connection type for Team.""" +""" +The connection type for Team. +""" type TeamConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [TeamEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Team] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type TeamEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Team } -"""The connection type for User.""" +""" +The connection type for User. +""" type TeamMemberConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [TeamMemberEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [User] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""Represents a user who is a member of a team.""" +""" +Represents a user who is a member of a team. +""" type TeamMemberEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The HTTP path to the organization's member access page.""" + """ + The HTTP path to the organization's member access page. + """ memberAccessResourcePath: URI! - """The HTTP URL to the organization's member access page.""" + """ + The HTTP URL to the organization's member access page. + """ memberAccessUrl: URI! node: User! - """The role the member has on the team.""" + """ + The role the member has on the team. + """ role: TeamMemberRole! } -"""Ordering options for team member connections""" +""" +Ordering options for team member connections +""" input TeamMemberOrder { - """The field to order team members by.""" + """ + The field to order team members by. + """ field: TeamMemberOrderField! - """The ordering direction.""" + """ + The ordering direction. + """ direction: OrderDirection! } -"""Properties by which team member connections can be ordered.""" +""" +Properties by which team member connections can be ordered. +""" enum TeamMemberOrderField { - """Order team members by login""" + """ + Order team members by login + """ LOGIN - """Order team members by creation time""" + """ + Order team members by creation time + """ CREATED_AT } -"""The possible team member roles; either 'maintainer' or 'member'.""" +""" +The possible team member roles; either 'maintainer' or 'member'. +""" enum TeamMemberRole { - """A team maintainer has permission to add and remove team members.""" + """ + A team maintainer has permission to add and remove team members. + """ MAINTAINER - """A team member has no administrative permissions on the team.""" + """ + A team member has no administrative permissions on the team. + """ MEMBER } @@ -11563,34 +17913,54 @@ enum TeamMemberRole { Defines which types of team members are included in the returned list. Can be one of IMMEDIATE, CHILD_TEAM or ALL. """ enum TeamMembershipType { - """Includes only immediate members of the team.""" + """ + Includes only immediate members of the team. + """ IMMEDIATE - """Includes only child team members for the team.""" + """ + Includes only child team members for the team. + """ CHILD_TEAM - """Includes immediate and child team members for the team.""" + """ + Includes immediate and child team members for the team. + """ ALL } -"""Ways in which team connections can be ordered.""" +""" +Ways in which team connections can be ordered. +""" input TeamOrder { - """The field in which to order nodes by.""" + """ + The field in which to order nodes by. + """ field: TeamOrderField! - """The direction in which to order nodes.""" + """ + The direction in which to order nodes. + """ direction: OrderDirection! } -"""Properties by which team connections can be ordered.""" +""" +Properties by which team connections can be ordered. +""" enum TeamOrderField { - """Allows ordering a list of teams by name.""" + """ + Allows ordering a list of teams by name. + """ NAME } -"""The possible team privacy values.""" +""" +The possible team privacy values. +""" enum TeamPrivacy { - """A secret team can only be seen by its members.""" + """ + A secret team can only be seen by its members. + """ SECRET """ @@ -11599,114 +17969,181 @@ enum TeamPrivacy { VISIBLE } -"""The connection type for Repository.""" +""" +The connection type for Repository. +""" type TeamRepositoryConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [TeamRepositoryEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Repository] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""Represents a team repository.""" +""" +Represents a team repository. +""" type TeamRepositoryEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! node: Repository! - """The permission level the team has on the repository""" + """ + The permission level the team has on the repository + """ permission: RepositoryPermission! } -"""Ordering options for team repository connections""" +""" +Ordering options for team repository connections +""" input TeamRepositoryOrder { - """The field to order repositories by.""" + """ + The field to order repositories by. + """ field: TeamRepositoryOrderField! - """The ordering direction.""" + """ + The ordering direction. + """ direction: OrderDirection! } -"""Properties by which team repository connections can be ordered.""" +""" +Properties by which team repository connections can be ordered. +""" enum TeamRepositoryOrderField { - """Order repositories by creation time""" + """ + Order repositories by creation time + """ CREATED_AT - """Order repositories by update time""" + """ + Order repositories by update time + """ UPDATED_AT - """Order repositories by push time""" + """ + Order repositories by push time + """ PUSHED_AT - """Order repositories by name""" + """ + Order repositories by name + """ NAME - """Order repositories by permission""" + """ + Order repositories by permission + """ PERMISSION - """Order repositories by number of stargazers""" + """ + Order repositories by number of stargazers + """ STARGAZERS } -"""The role of a user on a team.""" +""" +The role of a user on a team. +""" enum TeamRole { - """User has admin rights on the team.""" + """ + User has admin rights on the team. + """ ADMIN - """User is a member of the team.""" + """ + User is a member of the team. + """ MEMBER } -"""A text match within a search result.""" +""" +A text match within a search result. +""" type TextMatch { - """The specific text fragment within the property matched on.""" + """ + The specific text fragment within the property matched on. + """ fragment: String! - """Highlights within the matched fragment.""" + """ + Highlights within the matched fragment. + """ highlights: [TextMatchHighlight!]! - """The property matched on.""" + """ + The property matched on. + """ property: String! } -"""Represents a single highlight in a search result match.""" +""" +Represents a single highlight in a search result match. +""" type TextMatchHighlight { - """The indice in the fragment where the matched text begins.""" + """ + The indice in the fragment where the matched text begins. + """ beginIndice: Int! - """The indice in the fragment where the matched text ends.""" + """ + The indice in the fragment where the matched text ends. + """ endIndice: Int! - """The text matched.""" + """ + The text matched. + """ text: String! } -"""A topic aggregates entities that are related to a subject.""" +""" +A topic aggregates entities that are related to a subject. +""" type Topic implements Node & Starrable { id: ID! - """The topic's name.""" + """ + The topic's name. + """ name: String! """ A list of related topics, including aliases of this topic, sorted with the most relevant first. Returns up to 10 Topics. - """ relatedTopics( - """How many topics to return.""" + """ + How many topics to return. + """ first: Int = 3 ): [Topic!]! - """A list of users who have starred this starrable.""" + """ + A list of users who have starred this starrable. + """ stargazers( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -11714,13 +18151,19 @@ type Topic implements Node & Starrable { """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - """Order for connection""" + """ + Order for connection + """ orderBy: StarOrder ): StargazerConnection! @@ -11730,33 +18173,53 @@ type Topic implements Node & Starrable { viewerHasStarred: Boolean! } -"""The connection type for Topic.""" +""" +The connection type for Topic. +""" type TopicConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [TopicEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [Topic] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type TopicEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Topic } -"""Reason that the suggested topic is declined.""" +""" +Reason that the suggested topic is declined. +""" enum TopicSuggestionDeclineReason { - """The suggested topic is not relevant to the repository.""" + """ + The suggested topic is not relevant to the repository. + """ NOT_RELEVANT """ @@ -11764,103 +18227,167 @@ enum TopicSuggestionDeclineReason { """ TOO_SPECIFIC - """The viewer does not like the suggested topic.""" + """ + The viewer does not like the suggested topic. + """ PERSONAL_PREFERENCE - """The suggested topic is too general for the repository.""" + """ + The suggested topic is too general for the repository. + """ TOO_GENERAL } -"""Represents a 'transferred' event on a given issue or pull request.""" +""" +Represents a 'transferred' event on a given issue or pull request. +""" type TransferredEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """The repository this came from""" + """ + The repository this came from + """ fromRepository: Repository id: ID! - """Identifies the issue associated with the event.""" + """ + Identifies the issue associated with the event. + """ issue: Issue! } -"""Represents a Git tree.""" +""" +Represents a Git tree. +""" type Tree implements Node & GitObject { - """An abbreviated version of the Git object ID""" + """ + An abbreviated version of the Git object ID + """ abbreviatedOid: String! - """The HTTP path for this Git object""" + """ + The HTTP path for this Git object + """ commitResourcePath: URI! - """The HTTP URL for this Git object""" + """ + The HTTP URL for this Git object + """ commitUrl: URI! - """A list of tree entries.""" + """ + A list of tree entries. + """ entries: [TreeEntry!] id: ID! - """The Git object ID""" + """ + The Git object ID + """ oid: GitObjectID! - """The Repository the Git object belongs to""" + """ + The Repository the Git object belongs to + """ repository: Repository! } -"""Represents a Git tree entry.""" +""" +Represents a Git tree entry. +""" type TreeEntry { - """Entry file mode.""" + """ + Entry file mode. + """ mode: Int! - """Entry file name.""" + """ + Entry file name. + """ name: String! - """Entry file object.""" + """ + Entry file object. + """ object: GitObject - """Entry file Git object ID.""" + """ + Entry file Git object ID. + """ oid: GitObjectID! - """The Repository the tree entry belongs to""" + """ + The Repository the tree entry belongs to + """ repository: Repository! - """Entry file type.""" + """ + Entry file type. + """ type: String! } -"""Represents an 'unassigned' event on any assignable object.""" +""" +Represents an 'unassigned' event on any assignable object. +""" type UnassignedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the assignable associated with the event.""" + """ + Identifies the assignable associated with the event. + """ assignable: Assignable! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Identifies the subject (user) who was unassigned.""" + """ + Identifies the subject (user) who was unassigned. + """ user: User } -"""Represents a type that can be retrieved by a URL.""" +""" +Represents a type that can be retrieved by a URL. +""" interface UniformResourceLocatable { - """The HTML path to this resource.""" + """ + The HTML path to this resource. + """ resourcePath: URI! - """The URL to this resource.""" + """ + The URL to this resource. + """ url: URI! } -"""Represents an unknown signature on a Commit or Tag.""" +""" +Represents an unknown signature on a Commit or Tag. +""" type UnknownSignature implements GitSignature { - """Email used to sign this object.""" + """ + Email used to sign this object. + """ email: String! - """True if the signature is valid and verified by GitHub.""" + """ + True if the signature is valid and verified by GitHub. + """ isValid: Boolean! """ @@ -11868,10 +18395,14 @@ type UnknownSignature implements GitSignature { """ payload: String! - """ASCII-armored signature header from object.""" + """ + ASCII-armored signature header from object. + """ signature: String! - """GitHub user corresponding to the email signing this commit.""" + """ + GitHub user corresponding to the email signing this commit. + """ signer: User """ @@ -11880,60 +18411,96 @@ type UnknownSignature implements GitSignature { """ state: GitSignatureState! - """True if the signature was made with GitHub's signing key.""" + """ + True if the signature was made with GitHub's signing key. + """ wasSignedByGitHub: Boolean! } -"""Represents an 'unlabeled' event on a given issue or pull request.""" +""" +Represents an 'unlabeled' event on a given issue or pull request. +""" type UnlabeledEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Identifies the label associated with the 'unlabeled' event.""" + """ + Identifies the label associated with the 'unlabeled' event. + """ label: Label! - """Identifies the `Labelable` associated with the event.""" + """ + Identifies the `Labelable` associated with the event. + """ labelable: Labelable! } -"""Represents an 'unlocked' event on a given issue or pull request.""" +""" +Represents an 'unlocked' event on a given issue or pull request. +""" type UnlockedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Object that was unlocked.""" + """ + Object that was unlocked. + """ lockable: Lockable! } -"""Autogenerated input type of UnlockLockable""" +""" +Autogenerated input type of UnlockLockable +""" input UnlockLockableInput { - """ID of the issue or pull request to be unlocked.""" + """ + ID of the issue or pull request to be unlocked. + """ lockableId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UnlockLockable""" +""" +Autogenerated return type of UnlockLockable +""" type UnlockLockablePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The item that was unlocked.""" + """ + The item that was unlocked. + """ unlockedRecord: Lockable } -"""Autogenerated input type of UnmarkIssueAsDuplicate""" +""" +Autogenerated input type of UnmarkIssueAsDuplicate +""" input UnmarkIssueAsDuplicateInput { - """ID of the issue or pull request currently marked as a duplicate.""" + """ + ID of the issue or pull request currently marked as a duplicate. + """ duplicateId: ID! """ @@ -11941,120 +18508,196 @@ input UnmarkIssueAsDuplicateInput { """ canonicalId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UnmarkIssueAsDuplicate""" +""" +Autogenerated return type of UnmarkIssueAsDuplicate +""" type UnmarkIssueAsDuplicatePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The issue or pull request that was marked as a duplicate.""" + """ + The issue or pull request that was marked as a duplicate. + """ duplicate: IssueOrPullRequest } -"""Autogenerated input type of UnminimizeComment""" +""" +Autogenerated input type of UnminimizeComment +""" input UnminimizeCommentInput { - """The Node ID of the subject to modify.""" + """ + The Node ID of the subject to modify. + """ subjectId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated input type of UnpinIssue""" +""" +Autogenerated input type of UnpinIssue +""" input UnpinIssueInput { - """The ID of the issue to be unpinned""" + """ + The ID of the issue to be unpinned + """ issueId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Represents an 'unpinned' event on a given issue or pull request.""" +""" +Represents an 'unpinned' event on a given issue or pull request. +""" type UnpinnedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Identifies the issue associated with the event.""" + """ + Identifies the issue associated with the event. + """ issue: Issue! } -"""Autogenerated input type of UnresolveReviewThread""" +""" +Autogenerated input type of UnresolveReviewThread +""" input UnresolveReviewThreadInput { - """The ID of the thread to unresolve""" + """ + The ID of the thread to unresolve + """ threadId: ID! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UnresolveReviewThread""" +""" +Autogenerated return type of UnresolveReviewThread +""" type UnresolveReviewThreadPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The thread to resolve.""" + """ + The thread to resolve. + """ thread: PullRequestReviewThread } -"""Represents an 'unsubscribed' event on a given `Subscribable`.""" +""" +Represents an 'unsubscribed' event on a given `Subscribable`. +""" type UnsubscribedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """Object referenced by event.""" + """ + Object referenced by event. + """ subscribable: Subscribable! } -"""Entities that can be updated.""" +""" +Entities that can be updated. +""" interface Updatable { - """Check if the current viewer can update this object.""" + """ + Check if the current viewer can update this object. + """ viewerCanUpdate: Boolean! } -"""Comments that can be updated.""" +""" +Comments that can be updated. +""" interface UpdatableComment { - """Reasons why the current viewer can not update this comment.""" + """ + Reasons why the current viewer can not update this comment. + """ viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! } -"""Autogenerated input type of UpdateBranchProtectionRule""" +""" +Autogenerated input type of UpdateBranchProtectionRule +""" input UpdateBranchProtectionRuleInput { - """The global relay id of the branch protection rule to be updated.""" + """ + The global relay id of the branch protection rule to be updated. + """ branchProtectionRuleId: ID! - """The glob-like pattern used to determine matching branches.""" + """ + The glob-like pattern used to determine matching branches. + """ pattern: String - """Are approving reviews required to update matching branches.""" + """ + Are approving reviews required to update matching branches. + """ requiresApprovingReviews: Boolean - """Number of approving reviews required to update matching branches.""" + """ + Number of approving reviews required to update matching branches. + """ requiredApprovingReviewCount: Int - """Are commits required to be signed.""" + """ + Are commits required to be signed. + """ requiresCommitSignatures: Boolean - """Can admins overwrite branch protection.""" + """ + Can admins overwrite branch protection. + """ isAdminEnforced: Boolean - """Are status checks required to update matching branches.""" + """ + Are status checks required to update matching branches. + """ requiresStatusChecks: Boolean - """Are branches required to be up to date before merging.""" + """ + Are branches required to be up to date before merging. + """ requiresStrictStatusChecks: Boolean - """Are reviews from code owners required to update matching branches.""" + """ + Are reviews from code owners required to update matching branches. + """ requiresCodeOwnerReviews: Boolean """ @@ -12062,7 +18705,9 @@ input UpdateBranchProtectionRuleInput { """ dismissesStaleReviews: Boolean - """Is dismissal of pull request reviews restricted.""" + """ + Is dismissal of pull request reviews restricted. + """ restrictsReviewDismissals: Boolean """ @@ -12070,10 +18715,14 @@ input UpdateBranchProtectionRuleInput { """ reviewDismissalActorIds: [ID!] - """Is pushing to matching branches restricted.""" + """ + Is pushing to matching branches restricted. + """ restrictsPushes: Boolean - """A list of User or Team IDs allowed to push to matching branches.""" + """ + A list of User or Team IDs allowed to push to matching branches. + """ pushActorIds: [ID!] """ @@ -12081,276 +18730,451 @@ input UpdateBranchProtectionRuleInput { """ requiredStatusCheckContexts: [String!] - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UpdateBranchProtectionRule""" +""" +Autogenerated return type of UpdateBranchProtectionRule +""" type UpdateBranchProtectionRulePayload { - """The newly created BranchProtectionRule.""" + """ + The newly created BranchProtectionRule. + """ branchProtectionRule: BranchProtectionRule - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated input type of UpdateIssueComment""" +""" +Autogenerated input type of UpdateIssueComment +""" input UpdateIssueCommentInput { - """The ID of the IssueComment to modify.""" + """ + The ID of the IssueComment to modify. + """ id: ID! - """The updated text of the comment.""" + """ + The updated text of the comment. + """ body: String! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UpdateIssueComment""" +""" +Autogenerated return type of UpdateIssueComment +""" type UpdateIssueCommentPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The updated comment.""" + """ + The updated comment. + """ issueComment: IssueComment } -"""Autogenerated input type of UpdateIssue""" +""" +Autogenerated input type of UpdateIssue +""" input UpdateIssueInput { - """The ID of the Issue to modify.""" + """ + The ID of the Issue to modify. + """ id: ID! - """The title for the issue.""" + """ + The title for the issue. + """ title: String - """The body for the issue description.""" + """ + The body for the issue description. + """ body: String - """An array of Node IDs of users for this issue.""" + """ + An array of Node IDs of users for this issue. + """ assigneeIds: [ID!] - """The Node ID of the milestone for this issue.""" + """ + The Node ID of the milestone for this issue. + """ milestoneId: ID - """An array of Node IDs of labels for this issue.""" + """ + An array of Node IDs of labels for this issue. + """ labelIds: [ID!] - """The desired issue state.""" + """ + The desired issue state. + """ state: IssueState - """An array of Node IDs for projects associated with this issue.""" + """ + An array of Node IDs for projects associated with this issue. + """ projectIds: [ID!] - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UpdateIssue""" +""" +Autogenerated return type of UpdateIssue +""" type UpdateIssuePayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The issue.""" + """ + The issue. + """ issue: Issue } -"""Autogenerated input type of UpdateProjectCard""" +""" +Autogenerated input type of UpdateProjectCard +""" input UpdateProjectCardInput { - """The ProjectCard ID to update.""" + """ + The ProjectCard ID to update. + """ projectCardId: ID! - """Whether or not the ProjectCard should be archived""" + """ + Whether or not the ProjectCard should be archived + """ isArchived: Boolean - """The note of ProjectCard.""" + """ + The note of ProjectCard. + """ note: String - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UpdateProjectCard""" +""" +Autogenerated return type of UpdateProjectCard +""" type UpdateProjectCardPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The updated ProjectCard.""" + """ + The updated ProjectCard. + """ projectCard: ProjectCard } -"""Autogenerated input type of UpdateProjectColumn""" +""" +Autogenerated input type of UpdateProjectColumn +""" input UpdateProjectColumnInput { - """The ProjectColumn ID to update.""" + """ + The ProjectColumn ID to update. + """ projectColumnId: ID! - """The name of project column.""" + """ + The name of project column. + """ name: String! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UpdateProjectColumn""" +""" +Autogenerated return type of UpdateProjectColumn +""" type UpdateProjectColumnPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The updated project column.""" + """ + The updated project column. + """ projectColumn: ProjectColumn } -"""Autogenerated input type of UpdateProject""" +""" +Autogenerated input type of UpdateProject +""" input UpdateProjectInput { - """The Project ID to update.""" + """ + The Project ID to update. + """ projectId: ID! - """The name of project.""" + """ + The name of project. + """ name: String - """The description of project.""" + """ + The description of project. + """ body: String - """Whether the project is open or closed.""" + """ + Whether the project is open or closed. + """ state: ProjectState - """Whether the project is public or not.""" + """ + Whether the project is public or not. + """ public: Boolean - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UpdateProject""" +""" +Autogenerated return type of UpdateProject +""" type UpdateProjectPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The updated project.""" + """ + The updated project. + """ project: Project } -"""Autogenerated input type of UpdatePullRequest""" +""" +Autogenerated input type of UpdatePullRequest +""" input UpdatePullRequestInput { - """The Node ID of the pull request.""" + """ + The Node ID of the pull request. + """ pullRequestId: ID! """ The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. - """ baseRefName: String - """The title of the pull request.""" + """ + The title of the pull request. + """ title: String - """The contents of the pull request.""" + """ + The contents of the pull request. + """ body: String - """Indicates whether maintainers can modify the pull request.""" + """ + Indicates whether maintainers can modify the pull request. + """ maintainerCanModify: Boolean - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UpdatePullRequest""" +""" +Autogenerated return type of UpdatePullRequest +""" type UpdatePullRequestPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The updated pull request.""" + """ + The updated pull request. + """ pullRequest: PullRequest } -"""Autogenerated input type of UpdatePullRequestReviewComment""" +""" +Autogenerated input type of UpdatePullRequestReviewComment +""" input UpdatePullRequestReviewCommentInput { - """The Node ID of the comment to modify.""" + """ + The Node ID of the comment to modify. + """ pullRequestReviewCommentId: ID! - """The text of the comment.""" + """ + The text of the comment. + """ body: String! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UpdatePullRequestReviewComment""" +""" +Autogenerated return type of UpdatePullRequestReviewComment +""" type UpdatePullRequestReviewCommentPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The updated comment.""" + """ + The updated comment. + """ pullRequestReviewComment: PullRequestReviewComment } -"""Autogenerated input type of UpdatePullRequestReview""" +""" +Autogenerated input type of UpdatePullRequestReview +""" input UpdatePullRequestReviewInput { - """The Node ID of the pull request review to modify.""" + """ + The Node ID of the pull request review to modify. + """ pullRequestReviewId: ID! - """The contents of the pull request review body.""" + """ + The contents of the pull request review body. + """ body: String! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UpdatePullRequestReview""" +""" +Autogenerated return type of UpdatePullRequestReview +""" type UpdatePullRequestReviewPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The updated pull request review.""" + """ + The updated pull request review. + """ pullRequestReview: PullRequestReview } -"""Autogenerated input type of UpdateSubscription""" +""" +Autogenerated input type of UpdateSubscription +""" input UpdateSubscriptionInput { - """The Node ID of the subscribable object to modify.""" + """ + The Node ID of the subscribable object to modify. + """ subscribableId: ID! - """The new state of the subscription.""" + """ + The new state of the subscription. + """ state: SubscriptionState! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UpdateSubscription""" +""" +Autogenerated return type of UpdateSubscription +""" type UpdateSubscriptionPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """The input subscribable entity.""" + """ + The input subscribable entity. + """ subscribable: Subscribable } -"""Autogenerated input type of UpdateTopics""" +""" +Autogenerated input type of UpdateTopics +""" input UpdateTopicsInput { - """The Node ID of the repository.""" + """ + The Node ID of the repository. + """ repositoryId: ID! - """An array of topic names.""" + """ + An array of topic names. + """ topicNames: [String!]! - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String } -"""Autogenerated return type of UpdateTopics""" +""" +Autogenerated return type of UpdateTopics +""" type UpdateTopicsPayload { - """A unique identifier for the client performing the mutation.""" + """ + A unique identifier for the client performing the mutation. + """ clientMutationId: String - """Names of the provided topics that are not valid.""" + """ + Names of the provided topics that are not valid. + """ invalidTopicNames: [String!] - """The updated repository.""" + """ + The updated repository. + """ repository: Repository } -"""An RFC 3986, RFC 3987, and RFC 6570 (level 4) compliant URI string.""" +""" +An RFC 3986, RFC 3987, and RFC 6570 (level 4) compliant URI string. +""" scalar URI """ @@ -12361,25 +19185,39 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch Determine if this repository owner has any items that can be pinned to their profile. """ anyPinnableItems( - """Filter to only a particular kind of pinnable item.""" + """ + Filter to only a particular kind of pinnable item. + """ type: PinnableItemType ): Boolean! - """A URL pointing to the user's public avatar.""" + """ + A URL pointing to the user's public avatar. + """ avatarUrl( - """The size of the resulting square image.""" + """ + The size of the resulting square image. + """ size: Int ): URI! - """The user's public profile bio.""" + """ + The user's public profile bio. + """ bio: String - """The user's public profile bio as HTML.""" + """ + The user's public profile bio as HTML. + """ bioHTML: HTML! - """A list of commit comments made by this user.""" + """ + A list of commit comments made by this user. + """ commitComments( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12387,24 +19225,34 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): CommitCommentConnection! - """The user's public profile company.""" + """ + The user's public profile company. + """ company: String - """The user's public profile company as HTML.""" + """ + The user's public profile company as HTML. + """ companyHTML: HTML! """ The collection of contributions this user has made to different repositories. """ contributionsCollection( - """The ID of the organization used to filter contributions.""" + """ + The ID of the organization used to filter contributions. + """ organizationID: ID """ @@ -12419,18 +19267,28 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch to: DateTime ): ContributionsCollection! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the primary key from the database.""" + """ + Identifies the primary key from the database. + """ databaseId: Int - """The user's publicly visible profile email.""" + """ + The user's publicly visible profile email. + """ email: String! - """A list of users the given user is followed by.""" + """ + A list of users the given user is followed by. + """ followers( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12438,16 +19296,24 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): FollowerConnection! - """A list of users the given user is following.""" + """ + A list of users the given user is following. + """ following( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12455,22 +19321,34 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): FollowingConnection! - """Find gist by repo name.""" + """ + Find gist by repo name. + """ gist( - """The gist name to find.""" + """ + The gist name to find. + """ name: String! ): Gist - """A list of gist comments made by this user.""" + """ + A list of gist comments made by this user. + """ gistComments( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12478,22 +19356,34 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): GistCommentConnection! - """A list of the Gists the user has created.""" + """ + A list of the Gists the user has created. + """ gists( - """Filters Gists according to privacy.""" + """ + Filters Gists according to privacy. + """ privacy: GistPrivacy - """Ordering options for gists returned from the connection""" + """ + Ordering options for gists returned from the connection + """ orderBy: GistOrder - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12501,10 +19391,14 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): GistConnection! id: ID! @@ -12519,24 +19413,38 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ isCampusExpert: Boolean! - """Whether or not this user is a GitHub Developer Program member.""" + """ + Whether or not this user is a GitHub Developer Program member. + """ isDeveloperProgramMember: Boolean! - """Whether or not this user is a GitHub employee.""" + """ + Whether or not this user is a GitHub employee. + """ isEmployee: Boolean! - """Whether or not the user has marked themselves as for hire.""" + """ + Whether or not the user has marked themselves as for hire. + """ isHireable: Boolean! - """Whether or not this user is a site administrator.""" + """ + Whether or not this user is a site administrator. + """ isSiteAdmin: Boolean! - """Whether or not this user is the viewing user.""" + """ + Whether or not this user is the viewing user. + """ isViewer: Boolean! - """A list of issue comments made by this user.""" + """ + A list of issue comments made by this user. + """ issueComments( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12544,28 +19452,44 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): IssueCommentConnection! - """A list of issues associated with this user.""" + """ + A list of issues associated with this user. + """ issues( - """Ordering options for issues returned from the connection.""" + """ + Ordering options for issues returned from the connection. + """ orderBy: IssueOrder - """A list of label names to filter the pull requests by.""" + """ + A list of label names to filter the pull requests by. + """ labels: [String!] - """A list of states to filter the issues by.""" + """ + A list of states to filter the issues by. + """ states: [IssueState!] - """Filtering options for issues returned from the connection.""" + """ + Filtering options for issues returned from the connection. + """ filterBy: IssueFilters - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12573,10 +19497,14 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): IssueConnection! @@ -12586,24 +19514,38 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ itemShowcase: ProfileItemShowcase! - """The user's public profile location.""" + """ + The user's public profile location. + """ location: String - """The username used to login.""" + """ + The username used to login. + """ login: String! - """The user's public profile name.""" + """ + The user's public profile name. + """ name: String - """Find an organization by its login that the user belongs to.""" + """ + Find an organization by its login that the user belongs to. + """ organization( - """The login of the organization to find.""" + """ + The login of the organization to find. + """ login: String! ): Organization - """A list of organizations the user belongs to.""" + """ + A list of organizations the user belongs to. + """ organizations( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12611,10 +19553,14 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): OrganizationConnection! @@ -12622,10 +19568,14 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch A list of repositories and gists this profile owner can pin to their profile. """ pinnableItems( - """Filter the types of pinnable items that are returned.""" + """ + Filter the types of pinnable items that are returned. + """ types: [PinnableItemType!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12633,10 +19583,14 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PinnableItemConnection! @@ -12644,10 +19598,14 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch A list of repositories and gists this profile owner has pinned to their profile """ pinnedItems( - """Filter the types of pinned items that are returned.""" + """ + Filter the types of pinned items that are returned. + """ types: [PinnableItemType!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12655,10 +19613,14 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PinnableItemConnection! @@ -12667,12 +19629,18 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ pinnedItemsRemaining: Int! - """A list of repositories this user has pinned to their profile""" + """ + A list of repositories this user has pinned to their profile + """ pinnedRepositories( - """If non-null, filters repositories according to privacy""" + """ + If non-null, filters repositories according to privacy + """ privacy: RepositoryPrivacy - """Ordering options for repositories returned from the connection""" + """ + Ordering options for repositories returned from the connection + """ orderBy: RepositoryOrder """ @@ -12694,7 +19662,9 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ isLocked: Boolean - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12702,31 +19672,52 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int - ): RepositoryConnection! @deprecated(reason: "pinnedRepositories will be removed Use ProfileOwner.pinnedItems instead. Removal on 2019-07-01 UTC.") + ): RepositoryConnection! + @deprecated( + reason: "pinnedRepositories will be removed Use ProfileOwner.pinnedItems instead. Removal on 2019-07-01 UTC." + ) - """Find project by number.""" + """ + Find project by number. + """ project( - """The project number to find.""" + """ + The project number to find. + """ number: Int! ): Project - """A list of projects under the owner.""" + """ + A list of projects under the owner. + """ projects( - """Ordering options for projects returned from the connection""" + """ + Ordering options for projects returned from the connection + """ orderBy: ProjectOrder - """Query to search projects by, currently only searching by name.""" + """ + Query to search projects by, currently only searching by name. + """ search: String - """A list of states to filter the projects by.""" + """ + A list of states to filter the projects by. + """ states: [ProjectState!] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12734,22 +19725,34 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): ProjectConnection! - """The HTTP path listing user's projects""" + """ + The HTTP path listing user's projects + """ projectsResourcePath: URI! - """The HTTP URL listing user's projects""" + """ + The HTTP URL listing user's projects + """ projectsUrl: URI! - """A list of public keys associated with this user.""" + """ + A list of public keys associated with this user. + """ publicKeys( - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12757,31 +19760,49 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PublicKeyConnection! - """A list of pull requests associated with this user.""" + """ + A list of pull requests associated with this user. + """ pullRequests( - """A list of states to filter the pull requests by.""" + """ + A list of states to filter the pull requests by. + """ states: [PullRequestState!] - """A list of label names to filter the pull requests by.""" + """ + A list of label names to filter the pull requests by. + """ labels: [String!] - """The head ref name to filter the pull requests by.""" + """ + The head ref name to filter the pull requests by. + """ headRefName: String - """The base ref name to filter the pull requests by.""" + """ + The base ref name to filter the pull requests by. + """ baseRefName: String - """Ordering options for pull requests returned from the connection.""" + """ + Ordering options for pull requests returned from the connection. + """ orderBy: IssueOrder - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12789,19 +19810,29 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): PullRequestConnection! - """A list of repositories that the user owns.""" + """ + A list of repositories that the user owns. + """ repositories( - """If non-null, filters repositories according to privacy""" + """ + If non-null, filters repositories according to privacy + """ privacy: RepositoryPrivacy - """Ordering options for repositories returned from the connection""" + """ + Ordering options for repositories returned from the connection + """ orderBy: RepositoryOrder """ @@ -12823,7 +19854,9 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ isLocked: Boolean - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12831,10 +19864,14 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int """ @@ -12843,12 +19880,18 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch isFork: Boolean ): RepositoryConnection! - """A list of repositories that the user recently contributed to.""" + """ + A list of repositories that the user recently contributed to. + """ repositoriesContributedTo( - """If non-null, filters repositories according to privacy""" + """ + If non-null, filters repositories according to privacy + """ privacy: RepositoryPrivacy - """Ordering options for repositories returned from the connection""" + """ + Ordering options for repositories returned from the connection + """ orderBy: RepositoryOrder """ @@ -12856,7 +19899,9 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ isLocked: Boolean - """If true, include user repositories""" + """ + If true, include user repositories + """ includeUserRepositories: Boolean """ @@ -12865,7 +19910,9 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ contributionTypes: [RepositoryContributionType] - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12873,33 +19920,49 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): RepositoryConnection! - """Find Repository.""" + """ + Find Repository. + """ repository( - """Name of Repository to find.""" + """ + Name of Repository to find. + """ name: String! ): Repository - """The HTTP path for this user""" + """ + The HTTP path for this user + """ resourcePath: URI! - """Repositories the user has starred.""" + """ + Repositories the user has starred. + """ starredRepositories( """ Filters starred repositories to only return repositories owned by the viewer. """ ownedByViewer: Boolean - """Order for connection""" + """ + Order for connection + """ orderBy: StarOrder - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12907,43 +19970,69 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): StarredRepositoryConnection! - """The user's description of what they're currently doing.""" + """ + The user's description of what they're currently doing. + """ status: UserStatus - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The HTTP URL for this user""" + """ + The HTTP URL for this user + """ url: URI! - """Can the viewer pin repositories and gists to the profile?""" + """ + Can the viewer pin repositories and gists to the profile? + """ viewerCanChangePinnedItems: Boolean! - """Can the current viewer create new projects on this owner.""" + """ + Can the current viewer create new projects on this owner. + """ viewerCanCreateProjects: Boolean! - """Whether or not the viewer is able to follow the user.""" + """ + Whether or not the viewer is able to follow the user. + """ viewerCanFollow: Boolean! - """Whether or not this user is followed by the viewer.""" + """ + Whether or not this user is followed by the viewer. + """ viewerIsFollowing: Boolean! - """A list of repositories the given user is watching.""" + """ + A list of repositories the given user is watching. + """ watching( - """If non-null, filters repositories according to privacy""" + """ + If non-null, filters repositories according to privacy + """ privacy: RepositoryPrivacy - """Ordering options for repositories returned from the connection""" + """ + Ordering options for repositories returned from the connection + """ orderBy: RepositoryOrder - """Affiliation options for repositories returned from the connection""" + """ + Affiliation options for repositories returned from the connection + """ affiliations: [RepositoryAffiliation] """ @@ -12958,7 +20047,9 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ isLocked: Boolean - """Returns the elements in the list that come after the specified cursor.""" + """ + Returns the elements in the list that come after the specified cursor. + """ after: String """ @@ -12966,133 +20057,217 @@ type User implements Node & Actor & RegistryPackageOwner & RegistryPackageSearch """ before: String - """Returns the first _n_ elements from the list.""" + """ + Returns the first _n_ elements from the list. + """ first: Int - """Returns the last _n_ elements from the list.""" + """ + Returns the last _n_ elements from the list. + """ last: Int ): RepositoryConnection! - """A URL pointing to the user's public website/blog.""" + """ + A URL pointing to the user's public website/blog. + """ websiteUrl: URI } -"""The possible durations that a user can be blocked for.""" +""" +The possible durations that a user can be blocked for. +""" enum UserBlockDuration { - """The user was blocked for 1 day""" + """ + The user was blocked for 1 day + """ ONE_DAY - """The user was blocked for 3 days""" + """ + The user was blocked for 3 days + """ THREE_DAYS - """The user was blocked for 7 days""" + """ + The user was blocked for 7 days + """ ONE_WEEK - """The user was blocked for 30 days""" + """ + The user was blocked for 30 days + """ ONE_MONTH - """The user was blocked permanently""" + """ + The user was blocked permanently + """ PERMANENT } -"""Represents a 'user_blocked' event on a given user.""" +""" +Represents a 'user_blocked' event on a given user. +""" type UserBlockedEvent implements Node { - """Identifies the actor who performed the event.""" + """ + Identifies the actor who performed the event. + """ actor: Actor - """Number of days that the user was blocked for.""" + """ + Number of days that the user was blocked for. + """ blockDuration: UserBlockDuration! - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! id: ID! - """The user who was blocked.""" + """ + The user who was blocked. + """ subject: User } -"""The connection type for User.""" +""" +The connection type for User. +""" type UserConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [UserEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [User] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edit on user content""" +""" +An edit on user content +""" type UserContentEdit implements Node { - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """Identifies the date and time when the object was deleted.""" + """ + Identifies the date and time when the object was deleted. + """ deletedAt: DateTime - """The actor who deleted this content""" + """ + The actor who deleted this content + """ deletedBy: Actor - """A summary of the changes for this edit""" + """ + A summary of the changes for this edit + """ diff: String - """When this content was edited""" + """ + When this content was edited + """ editedAt: DateTime! - """The actor who edited this content""" + """ + The actor who edited this content + """ editor: Actor id: ID! - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! } -"""A list of edits to content.""" +""" +A list of edits to content. +""" type UserContentEditConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [UserContentEditEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [UserContentEdit] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type UserContentEditEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: UserContentEdit } -"""Represents a user.""" +""" +Represents a user. +""" type UserEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: User } -"""The user's description of what they're currently doing.""" +""" +The user's description of what they're currently doing. +""" type UserStatus implements Node { - """Identifies the date and time when the object was created.""" + """ + Identifies the date and time when the object was created. + """ createdAt: DateTime! - """An emoji summarizing the user's status.""" + """ + An emoji summarizing the user's status. + """ emoji: String - """ID of the object.""" + """ + ID of the object. + """ id: ID! """ @@ -13100,7 +20275,9 @@ type UserStatus implements Node { """ indicatesLimitedAvailability: Boolean! - """A brief message describing what the user is doing.""" + """ + A brief message describing what the user is doing. + """ message: String """ @@ -13108,51 +20285,83 @@ type UserStatus implements Node { """ organization: Organization - """Identifies the date and time when the object was last updated.""" + """ + Identifies the date and time when the object was last updated. + """ updatedAt: DateTime! - """The user who has this status.""" + """ + The user who has this status. + """ user: User! } -"""The connection type for UserStatus.""" +""" +The connection type for UserStatus. +""" type UserStatusConnection { - """A list of edges.""" + """ + A list of edges. + """ edges: [UserStatusEdge] - """A list of nodes.""" + """ + A list of nodes. + """ nodes: [UserStatus] - """Information to aid in pagination.""" + """ + Information to aid in pagination. + """ pageInfo: PageInfo! - """Identifies the total count of items in the connection.""" + """ + Identifies the total count of items in the connection. + """ totalCount: Int! } -"""An edge in a connection.""" +""" +An edge in a connection. +""" type UserStatusEdge { - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: UserStatus } -"""Ordering options for user status connections.""" +""" +Ordering options for user status connections. +""" input UserStatusOrder { - """The field to order user statuses by.""" + """ + The field to order user statuses by. + """ field: UserStatusOrderField! - """The ordering direction.""" + """ + The ordering direction. + """ direction: OrderDirection! } -"""Properties by which user status connections can be ordered.""" +""" +Properties by which user status connections can be ordered. +""" enum UserStatusOrderField { - """Order user statuses by when they were updated.""" + """ + Order user statuses by when they were updated. + """ UPDATED_AT } -"""A valid x509 certificate string""" +""" +A valid x509 certificate string +""" scalar X509Certificate diff --git a/src/__fixtures__/kitchen-sink.graphql b/src/__fixtures__/kitchen-sink.graphql index 874fdc16881..543307bb8a9 100644 --- a/src/__fixtures__/kitchen-sink.graphql +++ b/src/__fixtures__/kitchen-sink.graphql @@ -1,11 +1,11 @@ query queryName($foo: ComplexType, $site: Site = MOBILE) @onQuery { whoever123is: node(id: [123, 456]) { - id , + id ... on User @onInlineFragment { field2 { - id , - alias: field1(first:10, after:$foo,) @include(if: $foo) { - id, + id + alias: field1(first: 10, after: $foo) @include(if: $foo) { + id ...frag @onFragmentSpread } } @@ -27,9 +27,8 @@ mutation likeStory @onMutation { } } -subscription StoryLikeSubscription( - $input: StoryLikeSubscribeInput -) @onSubscription { +subscription StoryLikeSubscription($input: StoryLikeSubscribeInput) + @onSubscription { storyLikeSubscribe(input: $input) { story { likers { @@ -43,16 +42,23 @@ subscription StoryLikeSubscription( } fragment frag on Friend @onFragmentDefinition { - foo(size: $size, bar: $b, obj: {key: "value", block: """ - + foo( + size: $size + bar: $b + obj: { + key: "value" + block: """ block string uses \""" - - """}) + """ + } + ) } { - unnamed(truthy: true, falsy: false, nullish: null), + unnamed(truthy: true, falsy: false, nullish: null) query } -query { __typename } +query { + __typename +} diff --git a/src/__tests__/starWarsData.js b/src/__tests__/starWarsData.js index 087af78aa28..5144f3735e1 100644 --- a/src/__tests__/starWarsData.js +++ b/src/__tests__/starWarsData.js @@ -125,7 +125,7 @@ function getCharacter(id) { */ export function getFriends(character: Character): Array> { // Notice that GraphQL accepts Arrays of Promises. - return character.friends.map(id => getCharacter(id)); + return character.friends.map((id) => getCharacter(id)); } /** diff --git a/src/__tests__/starWarsSchema.js b/src/__tests__/starWarsSchema.js index adac1a5ce2d..78a95647d3f 100644 --- a/src/__tests__/starWarsSchema.js +++ b/src/__tests__/starWarsSchema.js @@ -167,7 +167,7 @@ const humanType = new GraphQLObjectType({ type: GraphQLList(characterInterface), description: 'The friends of the human, or an empty list if they have none.', - resolve: human => getFriends(human), + resolve: (human) => getFriends(human), }, appearsIn: { type: GraphQLList(episodeEnum), @@ -217,7 +217,7 @@ const droidType = new GraphQLObjectType({ type: GraphQLList(characterInterface), description: 'The friends of the droid, or an empty list if they have none.', - resolve: droid => getFriends(droid), + resolve: (droid) => getFriends(droid), }, appearsIn: { type: GraphQLList(episodeEnum), diff --git a/src/error/GraphQLError.js b/src/error/GraphQLError.js index b847f426133..d3af8d2cf7c 100644 --- a/src/error/GraphQLError.js +++ b/src/error/GraphQLError.js @@ -117,7 +117,7 @@ export class GraphQLError extends Error { let _locations; if (positions && source) { - _locations = positions.map(pos => getLocation(source, pos)); + _locations = positions.map((pos) => getLocation(source, pos)); } else if (_nodes) { _locations = _nodes.reduce((list, node) => { if (node.loc) { diff --git a/src/execution/__tests__/abstract-promise-test.js b/src/execution/__tests__/abstract-promise-test.js index 78e0213057c..6f584972259 100644 --- a/src/execution/__tests__/abstract-promise-test.js +++ b/src/execution/__tests__/abstract-promise-test.js @@ -56,7 +56,7 @@ describe('Execute: Handles execution of abstract types with promises', () => { const DogType = new GraphQLObjectType({ name: 'Dog', interfaces: [PetType], - isTypeOf: obj => Promise.resolve(obj instanceof Dog), + isTypeOf: (obj) => Promise.resolve(obj instanceof Dog), fields: { name: { type: GraphQLString }, woofs: { type: GraphQLBoolean }, @@ -66,7 +66,7 @@ describe('Execute: Handles execution of abstract types with promises', () => { const CatType = new GraphQLObjectType({ name: 'Cat', interfaces: [PetType], - isTypeOf: obj => Promise.resolve(obj instanceof Cat), + isTypeOf: (obj) => Promise.resolve(obj instanceof Cat), fields: { name: { type: GraphQLString }, meows: { type: GraphQLBoolean }, @@ -140,7 +140,7 @@ describe('Execute: Handles execution of abstract types with promises', () => { const CatType = new GraphQLObjectType({ name: 'Cat', interfaces: [PetType], - isTypeOf: obj => Promise.resolve(obj instanceof Cat), + isTypeOf: (obj) => Promise.resolve(obj instanceof Cat), fields: { name: { type: GraphQLString }, meows: { type: GraphQLBoolean }, @@ -199,7 +199,7 @@ describe('Execute: Handles execution of abstract types with promises', () => { it('isTypeOf used to resolve runtime type for Union', async () => { const DogType = new GraphQLObjectType({ name: 'Dog', - isTypeOf: obj => Promise.resolve(obj instanceof Dog), + isTypeOf: (obj) => Promise.resolve(obj instanceof Dog), fields: { name: { type: GraphQLString }, woofs: { type: GraphQLBoolean }, @@ -208,7 +208,7 @@ describe('Execute: Handles execution of abstract types with promises', () => { const CatType = new GraphQLObjectType({ name: 'Cat', - isTypeOf: obj => Promise.resolve(obj instanceof Cat), + isTypeOf: (obj) => Promise.resolve(obj instanceof Cat), fields: { name: { type: GraphQLString }, meows: { type: GraphQLBoolean }, diff --git a/src/execution/__tests__/abstract-test.js b/src/execution/__tests__/abstract-test.js index 7c6d527569e..6d60cc253a6 100644 --- a/src/execution/__tests__/abstract-test.js +++ b/src/execution/__tests__/abstract-test.js @@ -56,7 +56,7 @@ describe('Execute: Handles execution of abstract types', () => { const DogType = new GraphQLObjectType({ name: 'Dog', interfaces: [PetType], - isTypeOf: obj => obj instanceof Dog, + isTypeOf: (obj) => obj instanceof Dog, fields: { name: { type: GraphQLString }, woofs: { type: GraphQLBoolean }, @@ -66,7 +66,7 @@ describe('Execute: Handles execution of abstract types', () => { const CatType = new GraphQLObjectType({ name: 'Cat', interfaces: [PetType], - isTypeOf: obj => obj instanceof Cat, + isTypeOf: (obj) => obj instanceof Cat, fields: { name: { type: GraphQLString }, meows: { type: GraphQLBoolean }, @@ -123,7 +123,7 @@ describe('Execute: Handles execution of abstract types', () => { it('isTypeOf used to resolve runtime type for Union', () => { const DogType = new GraphQLObjectType({ name: 'Dog', - isTypeOf: obj => obj instanceof Dog, + isTypeOf: (obj) => obj instanceof Dog, fields: { name: { type: GraphQLString }, woofs: { type: GraphQLBoolean }, @@ -132,7 +132,7 @@ describe('Execute: Handles execution of abstract types', () => { const CatType = new GraphQLObjectType({ name: 'Cat', - isTypeOf: obj => obj instanceof Cat, + isTypeOf: (obj) => obj instanceof Cat, fields: { name: { type: GraphQLString }, meows: { type: GraphQLBoolean }, diff --git a/src/execution/__tests__/executor-test.js b/src/execution/__tests__/executor-test.js index 7a06d987806..ef5d02076e3 100644 --- a/src/execution/__tests__/executor-test.js +++ b/src/execution/__tests__/executor-test.js @@ -103,7 +103,7 @@ describe('Execute: Handles basic execution tasks', () => { e: () => 'Egg', f: 'Fish', // Called only by DataType::pic static resolver - pic: size => 'Pic of size: ' + size, + pic: (size) => 'Pic of size: ' + size, deep: () => deepData, promise: promiseData, }; @@ -116,7 +116,7 @@ describe('Execute: Handles basic execution tasks', () => { }; function promiseData() { - return new Promise(resolve => { + return new Promise((resolve) => { process.nextTick(() => { resolve(data); }); @@ -428,7 +428,7 @@ describe('Execute: Handles basic execution tasks', () => { ]; }, async() { - return new Promise(resolve => resolve('async')); + return new Promise((resolve) => resolve('async')); }, asyncReject() { return new Promise((_, reject) => @@ -891,9 +891,9 @@ describe('Execute: Handles basic execution tasks', () => { const document = parse('{ a, b, c, d, e }'); const rootValue = { a: () => 'a', - b: () => new Promise(resolve => resolve('b')), + b: () => new Promise((resolve) => resolve('b')), c: () => 'c', - d: () => new Promise(resolve => resolve('d')), + d: () => new Promise((resolve) => resolve('d')), e: () => 'e', }; diff --git a/src/execution/__tests__/mutations-test.js b/src/execution/__tests__/mutations-test.js index 217b6e88733..63b24113948 100644 --- a/src/execution/__tests__/mutations-test.js +++ b/src/execution/__tests__/mutations-test.js @@ -32,7 +32,7 @@ class Root { } promiseToChangeTheNumber(newNumber: number): Promise { - return new Promise(resolve => { + return new Promise((resolve) => { process.nextTick(() => { resolve(this.immediatelyChangeTheNumber(newNumber)); }); diff --git a/src/execution/__tests__/nonnull-test.js b/src/execution/__tests__/nonnull-test.js index 331c1ae74c8..3312a1b275a 100644 --- a/src/execution/__tests__/nonnull-test.js +++ b/src/execution/__tests__/nonnull-test.js @@ -42,12 +42,12 @@ const throwingData = { return throwingData; }, promiseNest() { - return new Promise(resolve => { + return new Promise((resolve) => { resolve(throwingData); }); }, promiseNonNullNest() { - return new Promise(resolve => { + return new Promise((resolve) => { resolve(throwingData); }); }, @@ -61,12 +61,12 @@ const nullingData = { return null; }, promise() { - return new Promise(resolve => { + return new Promise((resolve) => { resolve(null); }); }, promiseNonNull() { - return new Promise(resolve => { + return new Promise((resolve) => { resolve(null); }); }, @@ -77,12 +77,12 @@ const nullingData = { return nullingData; }, promiseNest() { - return new Promise(resolve => { + return new Promise((resolve) => { resolve(nullingData); }); }, promiseNonNullNest() { - return new Promise(resolve => { + return new Promise((resolve) => { resolve(nullingData); }); }, diff --git a/src/execution/__tests__/union-interface-test.js b/src/execution/__tests__/union-interface-test.js index b85987f42df..39e2518a4f4 100644 --- a/src/execution/__tests__/union-interface-test.js +++ b/src/execution/__tests__/union-interface-test.js @@ -96,7 +96,7 @@ const DogType = new GraphQLObjectType({ mother: { type: DogType }, father: { type: DogType }, }), - isTypeOf: value => value instanceof Dog, + isTypeOf: (value) => value instanceof Dog, }); const CatType = new GraphQLObjectType({ @@ -109,7 +109,7 @@ const CatType = new GraphQLObjectType({ mother: { type: CatType }, father: { type: CatType }, }), - isTypeOf: value => value instanceof Cat, + isTypeOf: (value) => value instanceof Cat, }); const PetType = new GraphQLUnionType({ @@ -139,7 +139,7 @@ const PersonType = new GraphQLObjectType({ mother: { type: PersonType }, father: { type: PersonType }, }), - isTypeOf: value => value instanceof Person, + isTypeOf: (value) => value instanceof Person, }); const schema = new GraphQLSchema({ diff --git a/src/execution/execute.js b/src/execution/execute.js index 970e644fa75..a78df7729af 100644 --- a/src/execution/execute.js +++ b/src/execution/execute.js @@ -232,7 +232,7 @@ function buildResponse( data: PromiseOrValue | null>, ): PromiseOrValue { if (isPromise(data)) { - return data.then(resolved => buildResponse(exeContext, resolved)); + return data.then((resolved) => buildResponse(exeContext, resolved)); } return exeContext.errors.length === 0 ? { data } @@ -368,7 +368,7 @@ function executeOperation( ? executeFieldsSerially(exeContext, type, rootValue, path, fields) : executeFields(exeContext, type, rootValue, path, fields); if (isPromise(result)) { - return result.then(undefined, error => { + return result.then(undefined, (error) => { exeContext.errors.push(error); return Promise.resolve(null); }); @@ -407,7 +407,7 @@ function executeFieldsSerially( return results; } if (isPromise(result)) { - return result.then(resolvedResult => { + return result.then((resolvedResult) => { results[responseName] = resolvedResult; return results; }); @@ -732,7 +732,7 @@ function completeValueCatchingError( try { let completed; if (isPromise(result)) { - completed = result.then(resolved => + completed = result.then((resolved) => completeValue(exeContext, returnType, fieldNodes, info, path, resolved), ); } else { @@ -749,7 +749,7 @@ function completeValueCatchingError( if (isPromise(completed)) { // Note: we don't rely on a `catch` method, but we do expect "thenable" // to take a second callback for the error case. - return completed.then(undefined, error => + return completed.then(undefined, (error) => handleFieldError(error, fieldNodes, path, returnType, exeContext), ); } @@ -964,7 +964,7 @@ function completeAbstractValue( const runtimeType = resolveTypeFn(result, contextValue, info, returnType); if (isPromise(runtimeType)) { - return runtimeType.then(resolvedRuntimeType => + return runtimeType.then((resolvedRuntimeType) => completeObjectValue( exeContext, ensureValidRuntimeType( @@ -1050,7 +1050,7 @@ function completeObjectValue( const isTypeOf = returnType.isTypeOf(result, exeContext.contextValue, info); if (isPromise(isTypeOf)) { - return isTypeOf.then(resolvedIsTypeOf => { + return isTypeOf.then((resolvedIsTypeOf) => { if (!resolvedIsTypeOf) { throw invalidReturnTypeError(returnType, result, fieldNodes); } @@ -1138,7 +1138,7 @@ function _collectSubfields( * Otherwise, test each possible type for the abstract type by calling * isTypeOf for the object being coerced, returning the first type that matches. */ -export const defaultTypeResolver: GraphQLTypeResolver = function( +export const defaultTypeResolver: GraphQLTypeResolver = function ( value, contextValue, info, @@ -1168,7 +1168,7 @@ export const defaultTypeResolver: GraphQLTypeResolver = function( } if (promisedIsTypeOfResults.length) { - return Promise.all(promisedIsTypeOfResults).then(isTypeOfResults => { + return Promise.all(promisedIsTypeOfResults).then((isTypeOfResults) => { for (let i = 0; i < isTypeOfResults.length; i++) { if (isTypeOfResults[i]) { return possibleTypes[i]; @@ -1187,7 +1187,7 @@ export const defaultTypeResolver: GraphQLTypeResolver = function( export const defaultFieldResolver: GraphQLFieldResolver< mixed, mixed, -> = function(source: any, args, contextValue, info) { +> = function (source: any, args, contextValue, info) { // ensure source is a value for which property access is acceptable. if (isObjectLike(source) || typeof source === 'function') { const property = source[info.fieldName]; diff --git a/src/execution/values.js b/src/execution/values.js index 44c514967ae..aaafd51d959 100644 --- a/src/execution/values.js +++ b/src/execution/values.js @@ -53,14 +53,19 @@ export function getVariableValues( const errors = []; const maxErrors = options?.maxErrors; try { - const coerced = coerceVariableValues(schema, varDefNodes, inputs, error => { - if (maxErrors != null && errors.length >= maxErrors) { - throw new GraphQLError( - 'Too many errors processing variables, error limit reached. Execution aborted.', - ); - } - errors.push(error); - }); + const coerced = coerceVariableValues( + schema, + varDefNodes, + inputs, + (error) => { + if (maxErrors != null && errors.length >= maxErrors) { + throw new GraphQLError( + 'Too many errors processing variables, error limit reached. Execution aborted.', + ); + } + errors.push(error); + }, + ); if (errors.length === 0) { return { coerced }; @@ -76,7 +81,7 @@ function coerceVariableValues( schema: GraphQLSchema, varDefNodes: $ReadOnlyArray, inputs: { +[variable: string]: mixed, ... }, - onError: GraphQLError => void, + onError: (GraphQLError) => void, ): { [variable: string]: mixed, ... } { const coercedValues = {}; for (const varDefNode of varDefNodes) { @@ -167,7 +172,7 @@ export function getArgumentValues( /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ const argumentNodes = node.arguments ?? []; - const argNodeMap = keyMap(argumentNodes, arg => arg.name.value); + const argNodeMap = keyMap(argumentNodes, (arg) => arg.name.value); for (const argDef of def.args) { const name = argDef.name; @@ -253,7 +258,7 @@ export function getDirectiveValues( node.directives && find( node.directives, - directive => directive.name.value === directiveDef.name, + (directive) => directive.name.value === directiveDef.name, ); if (directiveNode) { diff --git a/src/graphql.js b/src/graphql.js index a49f032166c..5a82d4e444a 100644 --- a/src/graphql.js +++ b/src/graphql.js @@ -90,7 +90,7 @@ export function graphql( ) { /* eslint-enable no-redeclare */ // Always return a Promise for a consistent API. - return new Promise(resolve => + return new Promise((resolve) => resolve( // Extract arguments from object args if provided. arguments.length === 1 diff --git a/src/jsutils/__tests__/inspect-test.js b/src/jsutils/__tests__/inspect-test.js index 454547b065e..f85cfb47b90 100644 --- a/src/jsutils/__tests__/inspect-test.js +++ b/src/jsutils/__tests__/inspect-test.js @@ -185,7 +185,7 @@ describe('inspect', () => { (Foo.prototype: any)[Symbol.toStringTag] = 'Bar'; expect(inspect([[new Foo()]])).to.equal('[[[Bar]]]'); - const objectWithoutClassName = new (function() { + const objectWithoutClassName = new (function () { this.foo = 1; })(); expect(inspect([[objectWithoutClassName]])).to.equal('[[[Object]]]'); diff --git a/src/jsutils/didYouMean.js b/src/jsutils/didYouMean.js index 6c9bc3dac48..3e6bc94503b 100644 --- a/src/jsutils/didYouMean.js +++ b/src/jsutils/didYouMean.js @@ -24,7 +24,7 @@ export default function didYouMean(firstArg, secondArg) { message += subMessage + ' '; } - const suggestions = suggestionsArg.map(x => `"${x}"`); + const suggestions = suggestionsArg.map((x) => `"${x}"`); switch (suggestions.length) { case 0: return ''; diff --git a/src/jsutils/inspect.js b/src/jsutils/inspect.js index 49e0d8babc3..9ae109a9f43 100644 --- a/src/jsutils/inspect.js +++ b/src/jsutils/inspect.js @@ -63,7 +63,7 @@ function formatObject(object, seenValues) { return '[' + getObjectTag(object) + ']'; } - const properties = keys.map(key => { + const properties = keys.map((key) => { const value = formatValue(object[key], seenValues); return key + ': ' + value; }); diff --git a/src/jsutils/printPathArray.js b/src/jsutils/printPathArray.js index f850c5e124e..10f6d119f20 100644 --- a/src/jsutils/printPathArray.js +++ b/src/jsutils/printPathArray.js @@ -7,7 +7,7 @@ export default function printPathArray( path: $ReadOnlyArray, ): string { return path - .map(key => + .map((key) => typeof key === 'number' ? '[' + key.toString() + ']' : '.' + key, ) .join(''); diff --git a/src/jsutils/promiseForObject.js b/src/jsutils/promiseForObject.js index b0afd8b6792..ab0435dccc5 100644 --- a/src/jsutils/promiseForObject.js +++ b/src/jsutils/promiseForObject.js @@ -13,8 +13,8 @@ export default function promiseForObject( object: ObjMap>, ): Promise> { const keys = Object.keys(object); - const valuesAndPromises = keys.map(name => object[name]); - return Promise.all(valuesAndPromises).then(values => + const valuesAndPromises = keys.map((name) => object[name]); + return Promise.all(valuesAndPromises).then((values) => values.reduce((resolvedObject, value, i) => { resolvedObject[keys[i]] = value; return resolvedObject; diff --git a/src/jsutils/promiseReduce.js b/src/jsutils/promiseReduce.js index 22abbd55aff..0a610e77f71 100644 --- a/src/jsutils/promiseReduce.js +++ b/src/jsutils/promiseReduce.js @@ -18,7 +18,7 @@ export default function promiseReduce( return values.reduce( (previous, value) => isPromise(previous) - ? previous.then(resolved => callback(resolved, value)) + ? previous.then((resolved) => callback(resolved, value)) : callback(previous, value), initialValue, ); diff --git a/src/language/__tests__/lexer-test.js b/src/language/__tests__/lexer-test.js index 2d6e6b11fc0..bbfea7e30fa 100644 --- a/src/language/__tests__/lexer-test.js +++ b/src/language/__tests__/lexer-test.js @@ -894,7 +894,7 @@ describe('Lexer', () => { tokens.push(tok); } - expect(tokens.map(tok => tok.kind)).to.deep.equal([ + expect(tokens.map((tok) => tok.kind)).to.deep.equal([ TokenKind.SOF, TokenKind.BRACE_L, TokenKind.COMMENT, diff --git a/src/language/__tests__/predicates-test.js b/src/language/__tests__/predicates-test.js index a79fb7b706e..0f01049f85a 100644 --- a/src/language/__tests__/predicates-test.js +++ b/src/language/__tests__/predicates-test.js @@ -18,10 +18,10 @@ import { } from '../predicates'; const allASTNodes: Array = Object.values(Kind).map( - kind => ({ kind }: any), + (kind) => ({ kind }: any), ); -function filterNodes(predicate: ASTNode => boolean): Array { +function filterNodes(predicate: (ASTNode) => boolean): Array { return allASTNodes.filter(predicate).map(({ kind }) => kind); } diff --git a/src/language/ast.js b/src/language/ast.js index 9d5df64d860..8592996b474 100644 --- a/src/language/ast.js +++ b/src/language/ast.js @@ -45,7 +45,7 @@ export class Location { } // Print a simplified form when appearing in JSON/util.inspect. -defineToJSON(Location, function() { +defineToJSON(Location, function () { return { start: this.start, end: this.end }; }); @@ -113,7 +113,7 @@ export class Token { } // Print a simplified form when appearing in JSON/util.inspect. -defineToJSON(Token, function() { +defineToJSON(Token, function () { return { kind: this.kind, value: this.value, diff --git a/src/language/printLocation.js b/src/language/printLocation.js index 536d5aba01f..af5cff0817d 100644 --- a/src/language/printLocation.js +++ b/src/language/printLocation.js @@ -48,7 +48,7 @@ export function printSourceLocation( locationStr + printPrefixedLines([ [`${lineNum}`, subLines[0]], - ...subLines.slice(1, subLineIndex + 1).map(subLine => ['', subLine]), + ...subLines.slice(1, subLineIndex + 1).map((subLine) => ['', subLine]), [' ', whitespace(subLineColumnNum - 1) + '^'], ['', subLines[subLineIndex + 1]], ]) diff --git a/src/language/printer.js b/src/language/printer.js index aeff16b1404..c035401aba4 100644 --- a/src/language/printer.js +++ b/src/language/printer.js @@ -14,12 +14,12 @@ export function print(ast: ASTNode): string { // TODO: provide better type coverage in future const printDocASTReducer: any = { - Name: node => node.value, - Variable: node => '$' + node.name, + Name: (node) => node.value, + Variable: (node) => '$' + node.name, // Document - Document: node => join(node.definitions, '\n\n') + '\n', + Document: (node) => join(node.definitions, '\n\n') + '\n', OperationDefinition(node) { const op = node.operation; @@ -248,7 +248,7 @@ const printDocASTReducer: any = { }; function addDescription(cb) { - return node => join([node.description, cb(node)], '\n'); + return (node) => join([node.description, cb(node)], '\n'); } /** @@ -256,7 +256,7 @@ function addDescription(cb) { * print all items together separated by separator if provided */ function join(maybeArray: ?Array, separator = '') { - return maybeArray?.filter(x => x).join(separator) ?? ''; + return maybeArray?.filter((x) => x).join(separator) ?? ''; } /** diff --git a/src/polyfills/arrayFrom.js b/src/polyfills/arrayFrom.js index ab7ad40200c..f10ae58d085 100644 --- a/src/polyfills/arrayFrom.js +++ b/src/polyfills/arrayFrom.js @@ -14,7 +14,7 @@ declare function arrayFrom( // $FlowFixMe const arrayFrom = Array.from || - function(obj, mapFn, thisArg) { + function (obj, mapFn, thisArg) { if (obj == null) { throw new TypeError( 'Array.from requires an array-like object - not null or undefined', diff --git a/src/polyfills/find.js b/src/polyfills/find.js index 2243c2a7b92..224a99da4ad 100644 --- a/src/polyfills/find.js +++ b/src/polyfills/find.js @@ -8,10 +8,10 @@ declare function find( /* eslint-disable no-redeclare */ // $FlowFixMe const find = Array.prototype.find - ? function(list, predicate) { + ? function (list, predicate) { return Array.prototype.find.call(list, predicate); } - : function(list, predicate) { + : function (list, predicate) { for (const value of list) { if (predicate(value)) { return value; diff --git a/src/polyfills/flatMap.js b/src/polyfills/flatMap.js index 4152b16a463..38f739e97c0 100644 --- a/src/polyfills/flatMap.js +++ b/src/polyfills/flatMap.js @@ -10,10 +10,10 @@ const flatMapMethod = Array.prototype.flatMap; /* eslint-disable no-redeclare */ // $FlowFixMe const flatMap = flatMapMethod - ? function(list, fn) { + ? function (list, fn) { return flatMapMethod.call(list, fn); } - : function(list, fn) { + : function (list, fn) { let result = []; for (const item of list) { const value = fn(item); diff --git a/src/polyfills/isFinite.js b/src/polyfills/isFinite.js index 9156126ef4f..8b26d8d2d95 100644 --- a/src/polyfills/isFinite.js +++ b/src/polyfills/isFinite.js @@ -8,7 +8,7 @@ declare function isFinitePolyfill( // $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441 const isFinitePolyfill = Number.isFinite || - function(value) { + function (value) { return typeof value === 'number' && isFinite(value); }; export default isFinitePolyfill; diff --git a/src/polyfills/isInteger.js b/src/polyfills/isInteger.js index f4c4639ca64..ba79ee44301 100644 --- a/src/polyfills/isInteger.js +++ b/src/polyfills/isInteger.js @@ -7,7 +7,7 @@ declare function isInteger(value: mixed): boolean %checks(typeof value === // $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441 const isInteger = Number.isInteger || - function(value) { + function (value) { return ( typeof value === 'number' && isFinite(value) && diff --git a/src/polyfills/objectEntries.js b/src/polyfills/objectEntries.js index ba4f5e1e7b2..d47e6c51b9a 100644 --- a/src/polyfills/objectEntries.js +++ b/src/polyfills/objectEntries.js @@ -7,6 +7,6 @@ declare function objectEntries(obj: ObjMap): Array<[string, T]>; /* eslint-disable no-redeclare */ // $FlowFixMe workaround for: https://github.com/facebook/flow/issues/5838 const objectEntries = - Object.entries || (obj => Object.keys(obj).map(key => [key, obj[key]])); + Object.entries || ((obj) => Object.keys(obj).map((key) => [key, obj[key]])); export default objectEntries; diff --git a/src/polyfills/objectValues.js b/src/polyfills/objectValues.js index 8f1d65f5258..afe1af290e8 100644 --- a/src/polyfills/objectValues.js +++ b/src/polyfills/objectValues.js @@ -7,5 +7,5 @@ declare function objectValues(obj: ObjMap): Array; /* eslint-disable no-redeclare */ // $FlowFixMe workaround for: https://github.com/facebook/flow/issues/2221 const objectValues = - Object.values || (obj => Object.keys(obj).map(key => obj[key])); + Object.values || ((obj) => Object.keys(obj).map((key) => obj[key])); export default objectValues; diff --git a/src/subscription/__tests__/eventEmitterAsyncIterator-test.js b/src/subscription/__tests__/eventEmitterAsyncIterator-test.js index 6ebbe0c2655..4e5ee51f362 100644 --- a/src/subscription/__tests__/eventEmitterAsyncIterator-test.js +++ b/src/subscription/__tests__/eventEmitterAsyncIterator-test.js @@ -28,8 +28,8 @@ describe('eventEmitterAsyncIterator', () => { }); // Read ahead - const i3 = iterator.next().then(x => x); - const i4 = iterator.next().then(x => x); + const i3 = iterator.next().then((x) => x); + const i4 = iterator.next().then((x) => x); // Publish expect(emitter.emit('publish', 'Coconut')).to.equal(true); @@ -40,7 +40,7 @@ describe('eventEmitterAsyncIterator', () => { expect(await i3).to.deep.equal({ done: false, value: 'Coconut' }); // Read ahead - const i5 = iterator.next().then(x => x); + const i5 = iterator.next().then((x) => x); // Terminate emitter // $FlowFixMe diff --git a/src/subscription/__tests__/eventEmitterAsyncIterator.js b/src/subscription/__tests__/eventEmitterAsyncIterator.js index d9ed65d97d3..c1c5abbfa77 100644 --- a/src/subscription/__tests__/eventEmitterAsyncIterator.js +++ b/src/subscription/__tests__/eventEmitterAsyncIterator.js @@ -24,7 +24,7 @@ export default function eventEmitterAsyncIterator( } function pullValue() { - return new Promise(resolve => { + return new Promise((resolve) => { if (pushQueue.length !== 0) { resolve({ value: pushQueue.shift(), done: false }); } else { diff --git a/src/subscription/__tests__/mapAsyncIterator-test.js b/src/subscription/__tests__/mapAsyncIterator-test.js index d498a3b1378..a4b8b7f2acd 100644 --- a/src/subscription/__tests__/mapAsyncIterator-test.js +++ b/src/subscription/__tests__/mapAsyncIterator-test.js @@ -18,7 +18,7 @@ describe('mapAsyncIterator', () => { yield 3; } - const doubles = mapAsyncIterator(source(), x => x + x); + const doubles = mapAsyncIterator(source(), (x) => x + x); expect(await doubles.next()).to.deep.equal({ value: 2, done: false }); expect(await doubles.next()).to.deep.equal({ value: 4, done: false }); @@ -45,7 +45,7 @@ describe('mapAsyncIterator', () => { }, }; - const doubles = mapAsyncIterator(iterator, x => x + x); + const doubles = mapAsyncIterator(iterator, (x) => x + x); expect(await doubles.next()).to.deep.equal({ value: 2, done: false }); expect(await doubles.next()).to.deep.equal({ value: 4, done: false }); @@ -63,7 +63,7 @@ describe('mapAsyncIterator', () => { yield 3; } - const doubles = mapAsyncIterator(source(), x => x + x); + const doubles = mapAsyncIterator(source(), (x) => x + x); const result = []; for await (const x of doubles) { @@ -82,7 +82,7 @@ describe('mapAsyncIterator', () => { // Flow test: this is *not* AsyncIterator> const doubles: AsyncIterator = mapAsyncIterator( source(), - async x => (await x) + x, + async (x) => (await x) + x, ); expect(await doubles.next()).to.deep.equal({ value: 2, done: false }); @@ -103,7 +103,7 @@ describe('mapAsyncIterator', () => { yield 3; } - const doubles = mapAsyncIterator(source(), x => x + x); + const doubles = mapAsyncIterator(source(), (x) => x + x); expect(await doubles.next()).to.deep.equal({ value: 2, done: false }); expect(await doubles.next()).to.deep.equal({ value: 4, done: false }); @@ -141,7 +141,7 @@ describe('mapAsyncIterator', () => { }, }; - const doubles = mapAsyncIterator(iterator, x => x + x); + const doubles = mapAsyncIterator(iterator, (x) => x + x); expect(await doubles.next()).to.deep.equal({ value: 2, done: false }); expect(await doubles.next()).to.deep.equal({ value: 4, done: false }); @@ -167,7 +167,7 @@ describe('mapAsyncIterator', () => { } } - const doubles = mapAsyncIterator(source(), x => x + x); + const doubles = mapAsyncIterator(source(), (x) => x + x); expect(await doubles.next()).to.deep.equal({ value: 2, done: false }); expect(await doubles.next()).to.deep.equal({ value: 4, done: false }); @@ -205,7 +205,7 @@ describe('mapAsyncIterator', () => { }, }; - const doubles = mapAsyncIterator(iterator, x => x + x); + const doubles = mapAsyncIterator(iterator, (x) => x + x); expect(await doubles.next()).to.deep.equal({ value: 2, done: false }); expect(await doubles.next()).to.deep.equal({ value: 4, done: false }); @@ -233,7 +233,7 @@ describe('mapAsyncIterator', () => { } } - const doubles = mapAsyncIterator(source(), x => x + x); + const doubles = mapAsyncIterator(source(), (x) => x + x); expect(await doubles.next()).to.deep.equal({ value: 2, done: false }); expect(await doubles.next()).to.deep.equal({ value: 4, done: false }); @@ -260,7 +260,7 @@ describe('mapAsyncIterator', () => { throw new Error('Goodbye'); } - const doubles = mapAsyncIterator(source(), x => x + x); + const doubles = mapAsyncIterator(source(), (x) => x + x); expect(await doubles.next()).to.deep.equal({ value: 'HelloHello', @@ -286,8 +286,8 @@ describe('mapAsyncIterator', () => { const doubles = mapAsyncIterator( source(), - x => x + x, - error => error, + (x) => x + x, + (error) => error, ); expect(await doubles.next()).to.deep.equal({ @@ -345,7 +345,7 @@ describe('mapAsyncIterator', () => { } it('closes source if mapper throws an error', async () => { - await testClosesSourceWithMapper(x => { + await testClosesSourceWithMapper((x) => { if (x > 1) { throw new Error('Cannot count to ' + x); } @@ -354,7 +354,7 @@ describe('mapAsyncIterator', () => { }); it('closes source if mapper rejects', async () => { - await testClosesSourceWithMapper(x => + await testClosesSourceWithMapper((x) => x > 1 ? Promise.reject(new Error('Cannot count to ' + x)) : Promise.resolve(x), @@ -367,7 +367,7 @@ describe('mapAsyncIterator', () => { throw new Error(2); } - const throwOver1 = mapAsyncIterator(source(), x => x, mapper); + const throwOver1 = mapAsyncIterator(source(), (x) => x, mapper); expect(await throwOver1.next()).to.deep.equal({ value: 1, done: false }); @@ -388,13 +388,13 @@ describe('mapAsyncIterator', () => { } it('closes source if mapper throws an error', async () => { - await testClosesSourceWithRejectMapper(error => { + await testClosesSourceWithRejectMapper((error) => { throw new Error('Cannot count to ' + error.message); }); }); it('closes source if mapper rejects', async () => { - await testClosesSourceWithRejectMapper(error => + await testClosesSourceWithRejectMapper((error) => Promise.reject(new Error('Cannot count to ' + error.message)), ); }); diff --git a/src/subscription/__tests__/subscribe-test.js b/src/subscription/__tests__/subscribe-test.js index 8586d95469e..4a0620168d0 100644 --- a/src/subscription/__tests__/subscribe-test.js +++ b/src/subscription/__tests__/subscribe-test.js @@ -35,11 +35,11 @@ const InboxType = new GraphQLObjectType({ fields: { total: { type: GraphQLInt, - resolve: inbox => inbox.emails.length, + resolve: (inbox) => inbox.emails.length, }, unread: { type: GraphQLInt, - resolve: inbox => inbox.emails.filter(email => email.unread).length, + resolve: (inbox) => inbox.emails.filter((email) => email.unread).length, }, emails: { type: GraphQLList(EmailType) }, }, @@ -922,12 +922,12 @@ describe('Subscription Publish Phase', () => { it('should handle error during execution of source event', async () => { const erroringEmailSchema = emailSchemaWithResolvers( - async function*() { + async function* () { yield { email: { subject: 'Hello' } }; yield { email: { subject: 'Goodbye' } }; yield { email: { subject: 'Bonjour' } }; }, - event => { + (event) => { if (event.email.subject === 'Goodbye') { throw new Error('Never leave.'); } @@ -1000,11 +1000,11 @@ describe('Subscription Publish Phase', () => { it('should pass through error thrown in source event stream', async () => { const erroringEmailSchema = emailSchemaWithResolvers( - async function*() { + async function* () { yield { email: { subject: 'Hello' } }; throw new Error('test error'); }, - email => email, + (email) => email, ); const subscription = await subscribe({ @@ -1054,11 +1054,11 @@ describe('Subscription Publish Phase', () => { it('should resolve GraphQL error from source event stream', async () => { const erroringEmailSchema = emailSchemaWithResolvers( - async function*() { + async function* () { yield { email: { subject: 'Hello' } }; throw new GraphQLError('test error'); }, - email => email, + (email) => email, ); const subscription = await subscribe({ diff --git a/src/subscription/mapAsyncIterator.js b/src/subscription/mapAsyncIterator.js index 46dc8d7edc9..2731dbc6c94 100644 --- a/src/subscription/mapAsyncIterator.js +++ b/src/subscription/mapAsyncIterator.js @@ -10,8 +10,8 @@ import { type PromiseOrValue } from '../jsutils/PromiseOrValue'; */ export default function mapAsyncIterator( iterable: AsyncIterable, - callback: T => PromiseOrValue, - rejectCallback?: any => PromiseOrValue, + callback: (T) => PromiseOrValue, + rejectCallback?: (any) => PromiseOrValue, ): AsyncGenerator { // $FlowFixMe const iteratorMethod = iterable[SYMBOL_ASYNC_ITERATOR]; @@ -21,7 +21,7 @@ export default function mapAsyncIterator( // $FlowFixMe(>=0.68.0) if (typeof iterator.return === 'function') { $return = iterator.return; - abruptClose = error => { + abruptClose = (error) => { const rethrow = () => Promise.reject(error); return $return.call(iterator).then(rethrow, rethrow); }; @@ -37,7 +37,7 @@ export default function mapAsyncIterator( if (rejectCallback) { // Capture rejectCallback to ensure it cannot be null. const reject = rejectCallback; - mapReject = error => + mapReject = (error) => asyncMapValue(error, reject).then(iteratorResult, abruptClose); } @@ -67,9 +67,9 @@ export default function mapAsyncIterator( function asyncMapValue( value: T, - callback: T => PromiseOrValue, + callback: (T) => PromiseOrValue, ): Promise { - return new Promise(resolve => resolve(callback(value))); + return new Promise((resolve) => resolve(callback(value))); } function iteratorResult(value: T): IteratorResult { diff --git a/src/subscription/subscribe.js b/src/subscription/subscribe.js index 1b170800c68..0def478c427 100644 --- a/src/subscription/subscribe.js +++ b/src/subscription/subscribe.js @@ -143,7 +143,7 @@ function subscribeImpl( // the GraphQL specification. The `execute` function provides the // "ExecuteSubscriptionEvent" algorithm, as it is nearly identical to the // "ExecuteQuery" algorithm, for which `execute` is also used. - const mapSourceToResponse = payload => + const mapSourceToResponse = (payload) => execute({ schema, document, @@ -156,7 +156,7 @@ function subscribeImpl( // Resolve the Source Stream, then map every source value to a // ExecutionResult value as described above. - return sourcePromise.then(resultOrStream => + return sourcePromise.then((resultOrStream) => // Note: Flow can't refine isAsyncIterable, so explicit casts are used. isAsyncIterable(resultOrStream) ? mapAsyncIterator( @@ -270,7 +270,7 @@ export function createSourceEventStream( ); // Coerce to Promise for easier error handling and consistent return type. - return Promise.resolve(result).then(eventStream => { + return Promise.resolve(result).then((eventStream) => { // If eventStream is an Error, rethrow a located error. if (eventStream instanceof Error) { return { diff --git a/src/type/definition.js b/src/type/definition.js index 7d43167df81..16cd2de08ec 100644 --- a/src/type/definition.js +++ b/src/type/definition.js @@ -582,7 +582,7 @@ export class GraphQLScalarType { this.serialize = config.serialize ?? identityFunc; this.parseValue = parseValue; this.parseLiteral = - config.parseLiteral ?? (node => parseValue(valueFromASTUntyped(node))); + config.parseLiteral ?? ((node) => parseValue(valueFromASTUntyped(node))); this.extensions = config.extensions && toObjMap(config.extensions); this.astNode = config.astNode; this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes); @@ -848,7 +848,7 @@ function isPlainObj(obj) { } function fieldsToFieldsConfig(fields) { - return mapValue(fields, field => ({ + return mapValue(fields, (field) => ({ description: field.description, type: field.type, args: argsToArgsConfig(field.args), @@ -868,8 +868,8 @@ export function argsToArgsConfig( ): GraphQLFieldConfigArgumentMap { return keyValMap( args, - arg => arg.name, - arg => ({ + (arg) => arg.name, + (arg) => ({ description: arg.description, type: arg.type, defaultValue: arg.defaultValue, @@ -1251,9 +1251,9 @@ export class GraphQLEnumType /* */ { this._values = defineEnumValues(this.name, config.values); this._valueLookup = new Map( - this._values.map(enumValue => [enumValue.value, enumValue]), + this._values.map((enumValue) => [enumValue.value, enumValue]), ); - this._nameLookup = keyMap(this._values, value => value.name); + this._nameLookup = keyMap(this._values, (value) => value.name); devAssert(typeof config.name === 'string', 'Must provide name.'); } @@ -1325,8 +1325,8 @@ export class GraphQLEnumType /* */ { |} { const values = keyValMap( this.getValues(), - value => value.name, - value => ({ + (value) => value.name, + (value) => ({ description: value.description, value: value.value, deprecationReason: value.deprecationReason, @@ -1361,7 +1361,7 @@ function didYouMeanEnumValue( enumType: GraphQLEnumType, unknownValueStr: string, ): string { - const allNames = enumType.getValues().map(value => value.name); + const allNames = enumType.getValues().map((value) => value.name); const suggestedValues = suggestionList(unknownValueStr, allNames); return didYouMean('the enum value', suggestedValues); @@ -1479,7 +1479,7 @@ export class GraphQLInputObjectType { extensions: ?ReadOnlyObjMap, extensionASTNodes: $ReadOnlyArray, |} { - const fields = mapValue(this.getFields(), field => ({ + const fields = mapValue(this.getFields(), (field) => ({ description: field.description, type: field.type, defaultValue: field.defaultValue, diff --git a/src/type/introspection.js b/src/type/introspection.js index 97438179487..62f53325c5a 100644 --- a/src/type/introspection.js +++ b/src/type/introspection.js @@ -45,7 +45,7 @@ export const __Schema = new GraphQLObjectType({ ({ description: { type: GraphQLString, - resolve: schema => schema.description, + resolve: (schema) => schema.description, }, types: { description: 'A list of all types supported by this server.', @@ -57,24 +57,24 @@ export const __Schema = new GraphQLObjectType({ queryType: { description: 'The type that query operations will be rooted at.', type: GraphQLNonNull(__Type), - resolve: schema => schema.getQueryType(), + resolve: (schema) => schema.getQueryType(), }, mutationType: { description: 'If this server supports mutation, the type that mutation operations will be rooted at.', type: __Type, - resolve: schema => schema.getMutationType(), + resolve: (schema) => schema.getMutationType(), }, subscriptionType: { description: 'If this server support subscription, the type that subscription operations will be rooted at.', type: __Type, - resolve: schema => schema.getSubscriptionType(), + resolve: (schema) => schema.getSubscriptionType(), }, directives: { description: 'A list of all directives supported by this server.', type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__Directive))), - resolve: schema => schema.getDirectives(), + resolve: (schema) => schema.getDirectives(), }, }: GraphQLFieldConfigMap), }); @@ -87,23 +87,23 @@ export const __Directive = new GraphQLObjectType({ ({ name: { type: GraphQLNonNull(GraphQLString), - resolve: directive => directive.name, + resolve: (directive) => directive.name, }, description: { type: GraphQLString, - resolve: directive => directive.description, + resolve: (directive) => directive.description, }, isRepeatable: { type: GraphQLNonNull(GraphQLBoolean), - resolve: directive => directive.isRepeatable, + resolve: (directive) => directive.isRepeatable, }, locations: { type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__DirectiveLocation))), - resolve: directive => directive.locations, + resolve: (directive) => directive.locations, }, args: { type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__InputValue))), - resolve: directive => directive.args, + resolve: (directive) => directive.args, }, }: GraphQLFieldConfigMap), }); @@ -232,11 +232,11 @@ export const __Type = new GraphQLObjectType({ }, name: { type: GraphQLString, - resolve: type => (type.name !== undefined ? type.name : undefined), + resolve: (type) => (type.name !== undefined ? type.name : undefined), }, description: { type: GraphQLString, - resolve: type => + resolve: (type) => type.description !== undefined ? type.description : undefined, }, fields: { @@ -248,7 +248,7 @@ export const __Type = new GraphQLObjectType({ if (isObjectType(type) || isInterfaceType(type)) { let fields = objectValues(type.getFields()); if (!includeDeprecated) { - fields = fields.filter(field => !field.isDeprecated); + fields = fields.filter((field) => !field.isDeprecated); } return fields; } @@ -280,7 +280,7 @@ export const __Type = new GraphQLObjectType({ if (isEnumType(type)) { let values = type.getValues(); if (!includeDeprecated) { - values = values.filter(value => !value.isDeprecated); + values = values.filter((value) => !value.isDeprecated); } return values; } @@ -296,7 +296,8 @@ export const __Type = new GraphQLObjectType({ }, ofType: { type: __Type, - resolve: type => (type.ofType !== undefined ? type.ofType : undefined), + resolve: (type) => + type.ofType !== undefined ? type.ofType : undefined, }, }: GraphQLFieldConfigMap), }); @@ -309,27 +310,27 @@ export const __Field = new GraphQLObjectType({ ({ name: { type: GraphQLNonNull(GraphQLString), - resolve: field => field.name, + resolve: (field) => field.name, }, description: { type: GraphQLString, - resolve: field => field.description, + resolve: (field) => field.description, }, args: { type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__InputValue))), - resolve: field => field.args, + resolve: (field) => field.args, }, type: { type: GraphQLNonNull(__Type), - resolve: field => field.type, + resolve: (field) => field.type, }, isDeprecated: { type: GraphQLNonNull(GraphQLBoolean), - resolve: field => field.isDeprecated, + resolve: (field) => field.isDeprecated, }, deprecationReason: { type: GraphQLString, - resolve: field => field.deprecationReason, + resolve: (field) => field.deprecationReason, }, }: GraphQLFieldConfigMap, mixed>), }); @@ -342,15 +343,15 @@ export const __InputValue = new GraphQLObjectType({ ({ name: { type: GraphQLNonNull(GraphQLString), - resolve: inputValue => inputValue.name, + resolve: (inputValue) => inputValue.name, }, description: { type: GraphQLString, - resolve: inputValue => inputValue.description, + resolve: (inputValue) => inputValue.description, }, type: { type: GraphQLNonNull(__Type), - resolve: inputValue => inputValue.type, + resolve: (inputValue) => inputValue.type, }, defaultValue: { type: GraphQLString, @@ -373,19 +374,19 @@ export const __EnumValue = new GraphQLObjectType({ ({ name: { type: GraphQLNonNull(GraphQLString), - resolve: enumValue => enumValue.name, + resolve: (enumValue) => enumValue.name, }, description: { type: GraphQLString, - resolve: enumValue => enumValue.description, + resolve: (enumValue) => enumValue.description, }, isDeprecated: { type: GraphQLNonNull(GraphQLBoolean), - resolve: enumValue => enumValue.isDeprecated, + resolve: (enumValue) => enumValue.isDeprecated, }, deprecationReason: { type: GraphQLString, - resolve: enumValue => enumValue.deprecationReason, + resolve: (enumValue) => enumValue.deprecationReason, }, }: GraphQLFieldConfigMap), }); diff --git a/src/type/schema.js b/src/type/schema.js index 2b428703740..85e9f02ac3c 100644 --- a/src/type/schema.js +++ b/src/type/schema.js @@ -336,7 +336,7 @@ export class GraphQLSchema { } getDirective(name: string): ?GraphQLDirective { - return find(this.getDirectives(), directive => directive.name === name); + return find(this.getDirectives(), (directive) => directive.name === name); } toConfig(): GraphQLSchemaNormalizedConfig { diff --git a/src/type/validate.js b/src/type/validate.js index fc57bd12294..d297005b49b 100644 --- a/src/type/validate.js +++ b/src/type/validate.js @@ -73,7 +73,7 @@ export function validateSchema( export function assertValidSchema(schema: GraphQLSchema): void { const errors = validateSchema(schema); if (errors.length !== 0) { - throw new Error(errors.map(error => error.message).join('\n\n')); + throw new Error(errors.map((error) => error.message).join('\n\n')); } } @@ -141,7 +141,7 @@ function getOperationTypeNode( type: GraphQLObjectType, operation: string, ): ?ASTNode { - const operationNodes = getAllSubNodes(schema, node => node.operationTypes); + const operationNodes = getAllSubNodes(schema, (node) => node.operationTypes); for (const node of operationNodes) { if (node.operation === operation) { return node.type; @@ -362,7 +362,7 @@ function validateTypeImplementsInterface( // Assert each interface field arg is implemented. for (const ifaceArg of ifaceField.args) { const argName = ifaceArg.name; - const typeArg = find(typeField.args, arg => arg.name === argName); + const typeArg = find(typeField.args, (arg) => arg.name === argName); // Assert interface field arg exists on object field. if (!typeArg) { @@ -392,7 +392,7 @@ function validateTypeImplementsInterface( // Assert additional arguments must not be required. for (const typeArg of typeField.args) { const argName = typeArg.name; - const ifaceArg = find(ifaceField.args, arg => arg.name === argName); + const ifaceArg = find(ifaceField.args, (arg) => arg.name === argName); if (!ifaceArg && isRequiredArgument(typeArg)) { context.reportError( `Object field ${type.name}.${fieldName} includes required argument ${argName} that is missing from the Interface field ${iface.name}.${fieldName}.`, @@ -551,10 +551,10 @@ function createInputObjectCircularRefsValidator( detectCycleRecursive(fieldType); } else { const cyclePath = fieldPath.slice(cycleIndex); - const pathStr = cyclePath.map(fieldObj => fieldObj.name).join('.'); + const pathStr = cyclePath.map((fieldObj) => fieldObj.name).join('.'); context.reportError( `Cannot reference Input Object "${fieldType.name}" within itself through a series of non-null fields: "${pathStr}".`, - cyclePath.map(fieldObj => fieldObj.astNode), + cyclePath.map((fieldObj) => fieldObj.astNode), ); } fieldPath.pop(); @@ -587,15 +587,15 @@ function getAllSubNodes( getter: (T | K) => ?(L | $ReadOnlyArray), ): $ReadOnlyArray { /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ - return flatMap(getAllNodes(object), item => getter(item) ?? []); + return flatMap(getAllNodes(object), (item) => getter(item) ?? []); } function getAllImplementsInterfaceNodes( type: GraphQLObjectType | GraphQLInterfaceType, iface: GraphQLInterfaceType, ): $ReadOnlyArray { - return getAllSubNodes(type, typeNode => typeNode.interfaces).filter( - ifaceNode => ifaceNode.name.value === iface.name, + return getAllSubNodes(type, (typeNode) => typeNode.interfaces).filter( + (ifaceNode) => ifaceNode.name.value === iface.name, ); } @@ -603,7 +603,7 @@ function getUnionMemberTypeNodes( union: GraphQLUnionType, typeName: string, ): ?$ReadOnlyArray { - return getAllSubNodes(union, unionNode => unionNode.types).filter( - typeNode => typeNode.name.value === typeName, + return getAllSubNodes(union, (unionNode) => unionNode.types).filter( + (typeNode) => typeNode.name.value === typeName, ); } diff --git a/src/utilities/TypeInfo.js b/src/utilities/TypeInfo.js index 5d9298d855a..04f533f8df9 100644 --- a/src/utilities/TypeInfo.js +++ b/src/utilities/TypeInfo.js @@ -209,7 +209,7 @@ export class TypeInfo { if (fieldOrDirective) { argDef = find( fieldOrDirective.args, - arg => arg.name === node.name.value, + (arg) => arg.name === node.name.value, ); if (argDef) { argType = argDef.type; diff --git a/src/utilities/__tests__/buildClientSchema-test.js b/src/utilities/__tests__/buildClientSchema-test.js index f15a50a8bca..3cc63ebfe9e 100644 --- a/src/utilities/__tests__/buildClientSchema-test.js +++ b/src/utilities/__tests__/buildClientSchema-test.js @@ -895,7 +895,7 @@ describe('Type System: build schema from introspection', () => { const introspection = introspectionFromSchema(schema); const fooIntrospection = introspection.__schema.types.find( - type => type.name === 'Foo', + (type) => type.name === 'Foo', ); expect(fooIntrospection).to.deep.include({ name: 'Foo', @@ -919,7 +919,7 @@ describe('Type System: build schema from introspection', () => { const introspection = introspectionFromSchema(schema); const fooIntrospection = introspection.__schema.types.find( - type => type.name === 'Foo', + (type) => type.name === 'Foo', ); expect(fooIntrospection).to.deep.include({ name: 'Foo', diff --git a/src/utilities/__tests__/coerceInputValue-test.js b/src/utilities/__tests__/coerceInputValue-test.js index c88f734c3c0..7675ff44e3c 100644 --- a/src/utilities/__tests__/coerceInputValue-test.js +++ b/src/utilities/__tests__/coerceInputValue-test.js @@ -262,7 +262,7 @@ describe('coerceInputValue', () => { }); describe('for GraphQLInputObject with default value', () => { - const TestInputObject = defaultValue => + const TestInputObject = (defaultValue) => new GraphQLInputObjectType({ name: 'TestInputObject', fields: { @@ -290,9 +290,7 @@ describe('coerceInputValue', () => { it('returns NaN as value', () => { const result = coerceValue({}, TestInputObject(NaN)); - expectValue(result) - .to.have.property('foo') - .that.satisfy(Number.isNaN); + expectValue(result).to.have.property('foo').that.satisfy(Number.isNaN); }); }); diff --git a/src/utilities/__tests__/extendSchema-test.js b/src/utilities/__tests__/extendSchema-test.js index e84671e3373..5f52ec5bdac 100644 --- a/src/utilities/__tests__/extendSchema-test.js +++ b/src/utilities/__tests__/extendSchema-test.js @@ -50,7 +50,7 @@ function printSchemaChanges(schema, extendedSchema) { return print({ kind: Kind.DOCUMENT, definitions: ast.definitions.filter( - node => !schemaDefinitions.includes(print(node)), + (node) => !schemaDefinitions.includes(print(node)), ), }); } diff --git a/src/utilities/__tests__/findDeprecatedUsages-test.js b/src/utilities/__tests__/findDeprecatedUsages-test.js index 44c45488570..f49c67589fb 100644 --- a/src/utilities/__tests__/findDeprecatedUsages-test.js +++ b/src/utilities/__tests__/findDeprecatedUsages-test.js @@ -50,7 +50,7 @@ describe('findDeprecatedUsages', () => { parse('{ normalField, deprecatedField }'), ); - const errorMessages = errors.map(err => err.message); + const errorMessages = errors.map((err) => err.message); expect(errorMessages).to.deep.equal([ 'The field "Query.deprecatedField" is deprecated. Some field reason.', @@ -67,7 +67,7 @@ describe('findDeprecatedUsages', () => { `), ); - const errorMessages = errors.map(err => err.message); + const errorMessages = errors.map((err) => err.message); expect(errorMessages).to.deep.equal([ 'The enum value "EnumType.DEPRECATED_VALUE" is deprecated. Some enum reason.', diff --git a/src/utilities/__tests__/stripIgnoredCharacters-test.js b/src/utilities/__tests__/stripIgnoredCharacters-test.js index 5391806f346..6e162ba1fe8 100644 --- a/src/utilities/__tests__/stripIgnoredCharacters-test.js +++ b/src/utilities/__tests__/stripIgnoredCharacters-test.js @@ -388,7 +388,7 @@ describe('stripIgnoredCharacters', () => { expectStripped('""",|"""').toStayTheSame(); const ignoredTokensWithoutFormatting = ignoredTokens.filter( - token => ['\n', '\r', '\r\n', '\t', ' '].indexOf(token) === -1, + (token) => ['\n', '\r', '\r\n', '\t', ' '].indexOf(token) === -1, ); for (const ignored of ignoredTokensWithoutFormatting) { expectStripped('"""|' + ignored + '|"""').toStayTheSame(); diff --git a/src/utilities/buildASTSchema.js b/src/utilities/buildASTSchema.js index f33fb7aa0be..7893071779b 100644 --- a/src/utilities/buildASTSchema.js +++ b/src/utilities/buildASTSchema.js @@ -94,15 +94,15 @@ export function buildASTSchema( const { directives } = config; // If specified directives were not explicitly declared, add them. - if (!directives.some(directive => directive.name === 'skip')) { + if (!directives.some((directive) => directive.name === 'skip')) { directives.push(GraphQLSkipDirective); } - if (!directives.some(directive => directive.name === 'include')) { + if (!directives.some((directive) => directive.name === 'include')) { directives.push(GraphQLIncludeDirective); } - if (!directives.some(directive => directive.name === 'deprecated')) { + if (!directives.some((directive) => directive.name === 'deprecated')) { directives.push(GraphQLDeprecatedDirective); } diff --git a/src/utilities/buildClientSchema.js b/src/utilities/buildClientSchema.js index 788d602ad8a..f1b52c80f01 100644 --- a/src/utilities/buildClientSchema.js +++ b/src/utilities/buildClientSchema.js @@ -77,8 +77,8 @@ export function buildClientSchema( // Iterate through all types, getting the type definition for each. const typeMap = keyValMap( schemaIntrospection.types, - typeIntrospection => typeIntrospection.name, - typeIntrospection => buildType(typeIntrospection), + (typeIntrospection) => typeIntrospection.name, + (typeIntrospection) => buildType(typeIntrospection), ); // Include standard types only if they are used. @@ -279,8 +279,8 @@ export function buildClientSchema( description: enumIntrospection.description, values: keyValMap( enumIntrospection.enumValues, - valueIntrospection => valueIntrospection.name, - valueIntrospection => ({ + (valueIntrospection) => valueIntrospection.name, + (valueIntrospection) => ({ description: valueIntrospection.description, deprecationReason: valueIntrospection.deprecationReason, }), @@ -313,7 +313,7 @@ export function buildClientSchema( return keyValMap( typeIntrospection.fields, - fieldIntrospection => fieldIntrospection.name, + (fieldIntrospection) => fieldIntrospection.name, buildField, ); } @@ -345,7 +345,7 @@ export function buildClientSchema( function buildInputValueDefMap(inputValueIntrospections) { return keyValMap( inputValueIntrospections, - inputValue => inputValue.name, + (inputValue) => inputValue.name, buildInputValue, ); } diff --git a/src/utilities/concatAST.js b/src/utilities/concatAST.js index aedc27e474e..895229dd409 100644 --- a/src/utilities/concatAST.js +++ b/src/utilities/concatAST.js @@ -12,6 +12,6 @@ import { type DocumentNode } from '../language/ast'; export function concatAST(asts: $ReadOnlyArray): DocumentNode { return { kind: 'Document', - definitions: flatMap(asts, ast => ast.definitions), + definitions: flatMap(asts, (ast) => ast.definitions), }; } diff --git a/src/utilities/extendSchema.js b/src/utilities/extendSchema.js index 0246eca461f..f10195854b4 100644 --- a/src/utilities/extendSchema.js +++ b/src/utilities/extendSchema.js @@ -296,7 +296,7 @@ export function extendSchemaImpl( return new GraphQLInputObjectType({ ...config, fields: () => ({ - ...mapValue(config.fields, field => ({ + ...mapValue(config.fields, (field) => ({ ...field, type: replaceType(field.type), })), @@ -686,7 +686,7 @@ export function extendSchemaImpl( const stdTypeMap = keyMap( specifiedScalarTypes.concat(introspectionTypes), - type => type.name, + (type) => type.name, ); /** diff --git a/src/utilities/findBreakingChanges.js b/src/utilities/findBreakingChanges.js index ab566d479f6..b3dc7f5eb04 100644 --- a/src/utilities/findBreakingChanges.js +++ b/src/utilities/findBreakingChanges.js @@ -83,7 +83,7 @@ export function findBreakingChanges( newSchema: GraphQLSchema, ): Array { const breakingChanges = findSchemaChanges(oldSchema, newSchema).filter( - change => change.type in BreakingChangeType, + (change) => change.type in BreakingChangeType, ); return ((breakingChanges: any): Array); } @@ -97,7 +97,7 @@ export function findDangerousChanges( newSchema: GraphQLSchema, ): Array { const dangerousChanges = findSchemaChanges(oldSchema, newSchema).filter( - change => change.type in DangerousChangeType, + (change) => change.type in DangerousChangeType, ); return ((dangerousChanges: any): Array); } diff --git a/src/utilities/lexicographicSortSchema.js b/src/utilities/lexicographicSortSchema.js index c9b932f5f75..494fc5adfc9 100644 --- a/src/utilities/lexicographicSortSchema.js +++ b/src/utilities/lexicographicSortSchema.js @@ -38,7 +38,7 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema { const schemaConfig = schema.toConfig(); const typeMap = keyValMap( sortByName(schemaConfig.types), - type => type.name, + (type) => type.name, sortNamedType, ); @@ -72,20 +72,20 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema { const config = directive.toConfig(); return new GraphQLDirective({ ...config, - locations: sortBy(config.locations, x => x), + locations: sortBy(config.locations, (x) => x), args: sortArgs(config.args), }); } function sortArgs(args) { - return sortObjMap(args, arg => ({ + return sortObjMap(args, (arg) => ({ ...arg, type: replaceType(arg.type), })); } function sortFields(fieldsMap) { - return sortObjMap(fieldsMap, field => ({ + return sortObjMap(fieldsMap, (field) => ({ ...field, type: replaceType(field.type), args: sortArgs(field.args), @@ -93,7 +93,7 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema { } function sortInputFields(fieldsMap) { - return sortObjMap(fieldsMap, field => ({ + return sortObjMap(fieldsMap, (field) => ({ ...field, type: replaceType(field.type), })); @@ -150,9 +150,9 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema { } } -function sortObjMap(map: ObjMap, sortValueFn?: T => R): ObjMap { +function sortObjMap(map: ObjMap, sortValueFn?: (T) => R): ObjMap { const sortedMap = Object.create(null); - const sortedKeys = sortBy(Object.keys(map), x => x); + const sortedKeys = sortBy(Object.keys(map), (x) => x); for (const key of sortedKeys) { const value = map[key]; sortedMap[key] = sortValueFn ? sortValueFn(value) : value; @@ -163,10 +163,13 @@ function sortObjMap(map: ObjMap, sortValueFn?: T => R): ObjMap { function sortByName( array: $ReadOnlyArray, ): Array { - return sortBy(array, obj => obj.name); + return sortBy(array, (obj) => obj.name); } -function sortBy(array: $ReadOnlyArray, mapToKey: T => string): Array { +function sortBy( + array: $ReadOnlyArray, + mapToKey: (T) => string, +): Array { return array.slice().sort((obj1, obj2) => { const key1 = mapToKey(obj1); const key2 = mapToKey(obj2); diff --git a/src/utilities/printSchema.js b/src/utilities/printSchema.js index 674d5b26a56..fba396fb8df 100644 --- a/src/utilities/printSchema.js +++ b/src/utilities/printSchema.js @@ -56,7 +56,7 @@ type Options = {| export function printSchema(schema: GraphQLSchema, options?: Options): string { return printFilteredSchema( schema, - n => !isSpecifiedDirective(n), + (n) => !isSpecifiedDirective(n), isDefinedType, options, ); @@ -90,8 +90,8 @@ function printFilteredSchema( return ( [printSchemaDefinition(schema)] .concat( - directives.map(directive => printDirective(directive, options)), - types.map(type => printType(type, options)), + directives.map((directive) => printDirective(directive, options)), + types.map((type) => printType(type, options)), ) .filter(Boolean) .join('\n\n') + '\n' @@ -189,7 +189,7 @@ function printImplementedInterfaces( ): string { const interfaces = type.getInterfaces(); return interfaces.length - ? ' implements ' + interfaces.map(i => i.name).join(' & ') + ? ' implements ' + interfaces.map((i) => i.name).join(' & ') : ''; } @@ -267,7 +267,7 @@ function printArgs(options, args, indentation = '') { } // If every arg does not have a description, print them on one line. - if (args.every(arg => !arg.description)) { + if (args.every((arg) => !arg.description)) { return '(' + args.map(printInputValue).join(', ') + ')'; } @@ -348,7 +348,7 @@ function printDescriptionWithComments(description, indentation, firstInBlock) { const prefix = indentation && !firstInBlock ? '\n' : ''; const comment = description .split('\n') - .map(line => indentation + (line !== '' ? '# ' + line : '#')) + .map((line) => indentation + (line !== '' ? '# ' + line : '#')) .join('\n'); return prefix + comment + '\n'; diff --git a/src/utilities/separateOperations.js b/src/utilities/separateOperations.js index 57319eedcfa..0c8f9de3007 100644 --- a/src/utilities/separateOperations.js +++ b/src/utilities/separateOperations.js @@ -54,7 +54,7 @@ export function separateOperations( separatedDocumentASTs[operationName] = { kind: Kind.DOCUMENT, definitions: documentAST.definitions.filter( - node => + (node) => node === operation || (node.kind === Kind.FRAGMENT_DEFINITION && dependencies[node.name.value]), diff --git a/src/utilities/typeComparators.js b/src/utilities/typeComparators.js index 18e4447812d..b878ba8bb3f 100644 --- a/src/utilities/typeComparators.js +++ b/src/utilities/typeComparators.js @@ -106,7 +106,7 @@ export function doTypesOverlap( // between possible concrete types of each. return schema .getPossibleTypes(typeA) - .some(type => schema.isSubType(typeB, type)); + .some((type) => schema.isSubType(typeB, type)); } // Determine if the latter type is a possible concrete type of the former. return schema.isSubType(typeA, typeB); diff --git a/src/utilities/valueFromAST.js b/src/utilities/valueFromAST.js index e5abd029d15..4820b57c46c 100644 --- a/src/utilities/valueFromAST.js +++ b/src/utilities/valueFromAST.js @@ -111,7 +111,7 @@ export function valueFromAST( return; // Invalid: intentionally return no value. } const coercedObj = Object.create(null); - const fieldNodes = keyMap(valueNode.fields, field => field.name.value); + const fieldNodes = keyMap(valueNode.fields, (field) => field.name.value); for (const field of objectValues(type.getFields())) { const fieldNode = fieldNodes[field.name]; if (!fieldNode || isMissingVariable(fieldNode.value, variables)) { diff --git a/src/utilities/valueFromASTUntyped.js b/src/utilities/valueFromASTUntyped.js index 5957ea879ce..5ccfef9e7de 100644 --- a/src/utilities/valueFromASTUntyped.js +++ b/src/utilities/valueFromASTUntyped.js @@ -40,12 +40,14 @@ export function valueFromASTUntyped( case Kind.BOOLEAN: return valueNode.value; case Kind.LIST: - return valueNode.values.map(node => valueFromASTUntyped(node, variables)); + return valueNode.values.map((node) => + valueFromASTUntyped(node, variables), + ); case Kind.OBJECT: return keyValMap( valueNode.fields, - field => field.name.value, - field => valueFromASTUntyped(field.value, variables), + (field) => field.name.value, + (field) => valueFromASTUntyped(field.value, variables), ); case Kind.VARIABLE: return variables?.[valueNode.name.value]; diff --git a/src/validation/ValidationContext.js b/src/validation/ValidationContext.js index a8f720a05e4..ecb9854f4a6 100644 --- a/src/validation/ValidationContext.js +++ b/src/validation/ValidationContext.js @@ -131,7 +131,7 @@ export class ASTValidationContext { } } -export type ASTValidationRule = ASTValidationContext => ASTVisitor; +export type ASTValidationRule = (ASTValidationContext) => ASTVisitor; export class SDLValidationContext extends ASTValidationContext { _schema: ?GraphQLSchema; @@ -150,7 +150,7 @@ export class SDLValidationContext extends ASTValidationContext { } } -export type SDLValidationRule = SDLValidationContext => ASTVisitor; +export type SDLValidationRule = (SDLValidationContext) => ASTVisitor; export class ValidationContext extends ASTValidationContext { _schema: GraphQLSchema; @@ -245,4 +245,4 @@ export class ValidationContext extends ASTValidationContext { } } -export type ValidationRule = ValidationContext => ASTVisitor; +export type ValidationRule = (ValidationContext) => ASTVisitor; diff --git a/src/validation/__tests__/validation-test.js b/src/validation/__tests__/validation-test.js index f59903f9644..4c4e6cbb254 100644 --- a/src/validation/__tests__/validation-test.js +++ b/src/validation/__tests__/validation-test.js @@ -74,7 +74,7 @@ describe('Validate: Supports full validation', () => { `); const errors = validate(testSchema, doc, undefined, typeInfo); - const errorMessages = errors.map(err => err.message); + const errorMessages = errors.map((err) => err.message); expect(errorMessages).to.deep.equal([ 'Cannot query field "catOrDog" on type "QueryRoot". Did you mean "catOrDog"?', diff --git a/src/validation/rules/FieldsOnCorrectTypeRule.js b/src/validation/rules/FieldsOnCorrectTypeRule.js index 0e6d74d4068..038d9a8a3f5 100644 --- a/src/validation/rules/FieldsOnCorrectTypeRule.js +++ b/src/validation/rules/FieldsOnCorrectTypeRule.js @@ -124,7 +124,7 @@ function getSuggestedTypeNames( return typeA.name.localeCompare(typeB.name); }) - .map(x => x.name); + .map((x) => x.name); } /** diff --git a/src/validation/rules/KnownArgumentNamesRule.js b/src/validation/rules/KnownArgumentNamesRule.js index fe4b4bc3ef8..d397bf2429e 100644 --- a/src/validation/rules/KnownArgumentNamesRule.js +++ b/src/validation/rules/KnownArgumentNamesRule.js @@ -31,7 +31,7 @@ export function KnownArgumentNamesRule(context: ValidationContext): ASTVisitor { if (!argDef && fieldDef && parentType) { const argName = argNode.name.value; - const knownArgsNames = fieldDef.args.map(arg => arg.name); + const knownArgsNames = fieldDef.args.map((arg) => arg.name); const suggestions = suggestionList(argName, knownArgsNames); context.reportError( new GraphQLError( @@ -58,7 +58,7 @@ export function KnownArgumentNamesOnDirectivesRule( ? schema.getDirectives() : specifiedDirectives; for (const directive of definedDirectives) { - directiveArgs[directive.name] = directive.args.map(arg => arg.name); + directiveArgs[directive.name] = directive.args.map((arg) => arg.name); } const astDefinitions = context.getDocument().definitions; @@ -67,7 +67,7 @@ export function KnownArgumentNamesOnDirectivesRule( /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ const argsNodes = def.arguments ?? []; - directiveArgs[def.name.value] = argsNodes.map(arg => arg.name.value); + directiveArgs[def.name.value] = argsNodes.map((arg) => arg.name.value); } } diff --git a/src/validation/rules/KnownDirectivesRule.js b/src/validation/rules/KnownDirectivesRule.js index fc8dee278dc..9bece5bfcee 100644 --- a/src/validation/rules/KnownDirectivesRule.js +++ b/src/validation/rules/KnownDirectivesRule.js @@ -42,7 +42,7 @@ export function KnownDirectivesRule( const astDefinitions = context.getDocument().definitions; for (const def of astDefinitions) { if (def.kind === Kind.DIRECTIVE_DEFINITION) { - locationsMap[def.name.value] = def.locations.map(name => name.value); + locationsMap[def.name.value] = def.locations.map((name) => name.value); } } diff --git a/src/validation/rules/KnownTypeNamesRule.js b/src/validation/rules/KnownTypeNamesRule.js index 2c71a3888c4..80f44c38668 100644 --- a/src/validation/rules/KnownTypeNamesRule.js +++ b/src/validation/rules/KnownTypeNamesRule.js @@ -68,7 +68,7 @@ export function KnownTypeNamesRule( }; } -const specifiedScalarsNames = specifiedScalarTypes.map(type => type.name); +const specifiedScalarsNames = specifiedScalarTypes.map((type) => type.name); function isSpecifiedScalarName(typeName) { return specifiedScalarsNames.indexOf(typeName) !== -1; } diff --git a/src/validation/rules/LoneAnonymousOperationRule.js b/src/validation/rules/LoneAnonymousOperationRule.js index 0ca8c7ff61a..3105b69e524 100644 --- a/src/validation/rules/LoneAnonymousOperationRule.js +++ b/src/validation/rules/LoneAnonymousOperationRule.js @@ -20,7 +20,7 @@ export function LoneAnonymousOperationRule( return { Document(node) { operationCount = node.definitions.filter( - definition => definition.kind === Kind.OPERATION_DEFINITION, + (definition) => definition.kind === Kind.OPERATION_DEFINITION, ).length; }, OperationDefinition(node) { diff --git a/src/validation/rules/NoFragmentCyclesRule.js b/src/validation/rules/NoFragmentCyclesRule.js index bb6f60575cd..83f6f481d6d 100644 --- a/src/validation/rules/NoFragmentCyclesRule.js +++ b/src/validation/rules/NoFragmentCyclesRule.js @@ -60,7 +60,7 @@ export function NoFragmentCyclesRule( const cyclePath = spreadPath.slice(cycleIndex); const viaPath = cyclePath .slice(0, -1) - .map(s => '"' + s.name.value + '"') + .map((s) => '"' + s.name.value + '"') .join(', '); context.reportError( diff --git a/src/validation/rules/OverlappingFieldsCanBeMergedRule.js b/src/validation/rules/OverlappingFieldsCanBeMergedRule.js index 15a6f7bcead..a8dd7220506 100644 --- a/src/validation/rules/OverlappingFieldsCanBeMergedRule.js +++ b/src/validation/rules/OverlappingFieldsCanBeMergedRule.js @@ -629,10 +629,10 @@ function sameArguments( if (arguments1.length !== arguments2.length) { return false; } - return arguments1.every(argument1 => { + return arguments1.every((argument1) => { const argument2 = find( arguments2, - argument => argument.name.value === argument1.name.value, + (argument) => argument.name.value === argument1.name.value, ); if (!argument2) { return false; diff --git a/src/validation/rules/ProvidedRequiredArgumentsRule.js b/src/validation/rules/ProvidedRequiredArgumentsRule.js index 8e0823330d2..d72974fe254 100644 --- a/src/validation/rules/ProvidedRequiredArgumentsRule.js +++ b/src/validation/rules/ProvidedRequiredArgumentsRule.js @@ -38,7 +38,7 @@ export function ProvidedRequiredArgumentsRule( /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ const argNodes = fieldNode.arguments ?? []; - const argNodeMap = keyMap(argNodes, arg => arg.name.value); + const argNodeMap = keyMap(argNodes, (arg) => arg.name.value); for (const argDef of fieldDef.args) { const argNode = argNodeMap[argDef.name]; if (!argNode && isRequiredArgument(argDef)) { @@ -71,7 +71,7 @@ export function ProvidedRequiredArgumentsOnDirectivesRule( for (const directive of definedDirectives) { requiredArgsMap[directive.name] = keyMap( directive.args.filter(isRequiredArgument), - arg => arg.name, + (arg) => arg.name, ); } @@ -83,7 +83,7 @@ export function ProvidedRequiredArgumentsOnDirectivesRule( requiredArgsMap[def.name.value] = keyMap( argNodes.filter(isRequiredArgumentNode), - arg => arg.name.value, + (arg) => arg.name.value, ); } } @@ -97,7 +97,7 @@ export function ProvidedRequiredArgumentsOnDirectivesRule( if (requiredArgs) { /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ const argNodes = directiveNode.arguments ?? []; - const argNodeMap = keyMap(argNodes, arg => arg.name.value); + const argNodeMap = keyMap(argNodes, (arg) => arg.name.value); for (const argName of Object.keys(requiredArgs)) { if (!argNodeMap[argName]) { const argType = requiredArgs[argName].type; diff --git a/src/validation/rules/ValuesOfCorrectTypeRule.js b/src/validation/rules/ValuesOfCorrectTypeRule.js index 8681e46fe46..d2bffe3bb62 100644 --- a/src/validation/rules/ValuesOfCorrectTypeRule.js +++ b/src/validation/rules/ValuesOfCorrectTypeRule.js @@ -51,7 +51,7 @@ export function ValuesOfCorrectTypeRule( return false; // Don't traverse further. } // Ensure every required field exists. - const fieldNodeMap = keyMap(node.fields, field => field.name.value); + const fieldNodeMap = keyMap(node.fields, (field) => field.name.value); for (const fieldDef of objectValues(type.getFields())) { const fieldNode = fieldNodeMap[fieldDef.name]; if (!fieldNode && isRequiredInputField(fieldDef)) { @@ -93,11 +93,11 @@ export function ValuesOfCorrectTypeRule( ); } }, - EnumValue: node => isValidValueNode(context, node), - IntValue: node => isValidValueNode(context, node), - FloatValue: node => isValidValueNode(context, node), - StringValue: node => isValidValueNode(context, node), - BooleanValue: node => isValidValueNode(context, node), + EnumValue: (node) => isValidValueNode(context, node), + IntValue: (node) => isValidValueNode(context, node), + FloatValue: (node) => isValidValueNode(context, node), + StringValue: (node) => isValidValueNode(context, node), + BooleanValue: (node) => isValidValueNode(context, node), }; } diff --git a/src/validation/validate.js b/src/validation/validate.js index 63361e990bf..2e5df6bc1c8 100644 --- a/src/validation/validate.js +++ b/src/validation/validate.js @@ -53,7 +53,7 @@ export function validate( schema, documentAST, typeInfo, - error => { + (error) => { if (options.maxErrors != null && errors.length >= options.maxErrors) { errors.push( new GraphQLError( @@ -68,7 +68,7 @@ export function validate( // This uses a specialized visitor which runs multiple visitors in parallel, // while maintaining the visitor skip and break API. - const visitor = visitInParallel(rules.map(rule => rule(context))); + const visitor = visitInParallel(rules.map((rule) => rule(context))); // Visit the whole document with each instance of all provided rules. try { @@ -93,12 +93,12 @@ export function validateSDL( const context = new SDLValidationContext( documentAST, schemaToExtend, - error => { + (error) => { errors.push(error); }, ); - const visitors = rules.map(rule => rule(context)); + const visitors = rules.map((rule) => rule(context)); visit(documentAST, visitInParallel(visitors)); return errors; } @@ -112,7 +112,7 @@ export function validateSDL( export function assertValidSDL(documentAST: DocumentNode): void { const errors = validateSDL(documentAST); if (errors.length !== 0) { - throw new Error(errors.map(error => error.message).join('\n\n')); + throw new Error(errors.map((error) => error.message).join('\n\n')); } } @@ -128,6 +128,6 @@ export function assertValidSDLExtension( ): void { const errors = validateSDL(documentAST, schema); if (errors.length !== 0) { - throw new Error(errors.map(error => error.message).join('\n\n')); + throw new Error(errors.map((error) => error.message).join('\n\n')); } } diff --git a/yarn.lock b/yarn.lock index c00410aa640..67300ce65e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3071,10 +3071,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier@1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prettier@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.2.tgz#1ba8f3eb92231e769b7fcd7cb73ae1b6b74ade08" + integrity sha512-5xJQIPT8BraI7ZnaDwSbu5zLrB6vvi8hVV58yHQ+QK64qrY40dULy0HSRlQ2/2IdzeBpjhDkqdcFBnFeDEMVdg== private@^0.1.8: version "0.1.8" From 09cee7364d3523c01283e69ce6c1dbd9e7bec997 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 2 Apr 2020 16:53:39 +0300 Subject: [PATCH 05/63] Update Flow (#2500) --- .flowconfig | 2 +- package.json | 2 +- src/execution/__tests__/abstract-test.js | 2 +- src/subscription/__tests__/subscribe-test.js | 14 +++++++------- src/subscription/mapAsyncIterator.js | 6 ++---- src/type/__tests__/definition-test.js | 14 +++++++------- .../__tests__/getOperationRootType-test.js | 4 ++-- yarn.lock | 8 ++++---- 8 files changed, 25 insertions(+), 27 deletions(-) diff --git a/.flowconfig b/.flowconfig index 5791eac34a2..76267e7deb2 100644 --- a/.flowconfig +++ b/.flowconfig @@ -40,4 +40,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)?)\\) suppress_comment=\\(.\\|\n\\)*\\$DisableFlowOnNegativeTest [version] -^0.120.0 +^0.121.0 diff --git a/package.json b/package.json index fbe1e6b7483..92f102148f2 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "eslint-plugin-flowtype": "4.6.0", "eslint-plugin-graphql-internal": "link:./resources/eslint-rules", "eslint-plugin-import": "2.20.1", - "flow-bin": "0.120.1", + "flow-bin": "0.121.0", "mocha": "7.1.0", "nyc": "15.0.0", "prettier": "2.0.2", diff --git a/src/execution/__tests__/abstract-test.js b/src/execution/__tests__/abstract-test.js index 6d60cc253a6..10b07c6d6b5 100644 --- a/src/execution/__tests__/abstract-test.js +++ b/src/execution/__tests__/abstract-test.js @@ -403,8 +403,8 @@ describe('Execute: Handles execution of abstract types', () => { const fooInterface = new GraphQLInterfaceType({ name: 'FooInterface', fields: { bar: { type: GraphQLString } }, + // $DisableFlowOnNegativeTest resolveType() { - // $DisableFlowOnNegativeTest return []; }, }); diff --git a/src/subscription/__tests__/subscribe-test.js b/src/subscription/__tests__/subscribe-test.js index 4a0620168d0..cff3ef6ef9d 100644 --- a/src/subscription/__tests__/subscribe-test.js +++ b/src/subscription/__tests__/subscribe-test.js @@ -160,11 +160,11 @@ describe('Subscription Initialization Phase', () => { // Empty } + // $FlowFixMe const ai = await subscribe(emailSchema, document, { importantEmail: emptyAsyncIterator, }); - // $FlowFixMe ai.next(); ai.return(); }); @@ -215,6 +215,7 @@ describe('Subscription Initialization Phase', () => { }), }); + // $FlowFixMe const subscription = await subscribe({ schema, document: parse(` @@ -228,7 +229,6 @@ describe('Subscription Initialization Phase', () => { importantEmail: {}, }); - // $FlowFixMe await subscription.next(); }); @@ -250,6 +250,7 @@ describe('Subscription Initialization Phase', () => { }), }); + // $FlowFixMe const subscription = await subscribe({ schema, document: parse(` @@ -263,7 +264,6 @@ describe('Subscription Initialization Phase', () => { importantEmail: {}, }); - // $FlowFixMe await subscription.next(); }); @@ -297,6 +297,7 @@ describe('Subscription Initialization Phase', () => { subscription: SubscriptionTypeMultiple, }); + // $FlowFixMe const subscription = await subscribe({ schema, document: parse(` @@ -307,7 +308,6 @@ describe('Subscription Initialization Phase', () => { `), }); - // $FlowFixMe subscription.next(); // Ask for a result, but ignore it. expect(didResolveImportantEmail).to.equal(true); @@ -935,6 +935,7 @@ describe('Subscription Publish Phase', () => { }, ); + // $FlowFixMe const subscription = await subscribe({ schema: erroringEmailSchema, document: parse(` @@ -948,7 +949,6 @@ describe('Subscription Publish Phase', () => { `), }); - // $FlowFixMe const payload1 = await subscription.next(); expect(payload1).to.deep.equal({ done: false, @@ -1007,6 +1007,7 @@ describe('Subscription Publish Phase', () => { (email) => email, ); + // $FlowFixMe const subscription = await subscribe({ schema: erroringEmailSchema, document: parse(` @@ -1020,7 +1021,6 @@ describe('Subscription Publish Phase', () => { `), }); - // $FlowFixMe const payload1 = await subscription.next(); expect(payload1).to.deep.equal({ done: false, @@ -1061,6 +1061,7 @@ describe('Subscription Publish Phase', () => { (email) => email, ); + // $FlowFixMe const subscription = await subscribe({ schema: erroringEmailSchema, document: parse(` @@ -1074,7 +1075,6 @@ describe('Subscription Publish Phase', () => { `), }); - // $FlowFixMe const payload1 = await subscription.next(); expect(payload1).to.deep.equal({ done: false, diff --git a/src/subscription/mapAsyncIterator.js b/src/subscription/mapAsyncIterator.js index 2731dbc6c94..afe05c8d51e 100644 --- a/src/subscription/mapAsyncIterator.js +++ b/src/subscription/mapAsyncIterator.js @@ -15,10 +15,9 @@ export default function mapAsyncIterator( ): AsyncGenerator { // $FlowFixMe const iteratorMethod = iterable[SYMBOL_ASYNC_ITERATOR]; - const iterator: AsyncIterator = iteratorMethod.call(iterable); - let $return; + const iterator: any = iteratorMethod.call(iterable); + let $return: any; let abruptClose; - // $FlowFixMe(>=0.68.0) if (typeof iterator.return === 'function') { $return = iterator.return; abruptClose = (error) => { @@ -53,7 +52,6 @@ export default function mapAsyncIterator( : Promise.resolve({ value: undefined, done: true }); }, throw(error) { - // $FlowFixMe(>=0.68.0) if (typeof iterator.throw === 'function') { return iterator.throw(error).then(mapResult, mapReject); } diff --git a/src/type/__tests__/definition-test.js b/src/type/__tests__/definition-test.js index 8003d868836..25803830a20 100644 --- a/src/type/__tests__/definition-test.js +++ b/src/type/__tests__/definition-test.js @@ -336,8 +336,8 @@ describe('Type System: Objects', () => { it('rejects an Object type with a field function that returns incorrect type', () => { const objType = new GraphQLObjectType({ name: 'SomeObject', + // $DisableFlowOnNegativeTest fields() { - // $DisableFlowOnNegativeTest return [{ field: ScalarType }]; }, }); @@ -365,8 +365,8 @@ describe('Type System: Objects', () => { it('rejects an Object type with an isDeprecated instead of deprecationReason on field', () => { const OldObject = new GraphQLObjectType({ name: 'OldObject', + // $DisableFlowOnNegativeTest fields: { - // $DisableFlowOnNegativeTest field: { type: ScalarType, isDeprecated: true }, }, }); @@ -405,8 +405,8 @@ describe('Type System: Objects', () => { it('rejects an empty Object field resolver', () => { const objType = new GraphQLObjectType({ name: 'SomeObject', + // $DisableFlowOnNegativeTest fields: { - // $DisableFlowOnNegativeTest field: { type: ScalarType, resolve: {} }, }, }); @@ -419,8 +419,8 @@ describe('Type System: Objects', () => { it('rejects a constant scalar value resolver', () => { const objType = new GraphQLObjectType({ name: 'SomeObject', + // $DisableFlowOnNegativeTest fields: { - // $DisableFlowOnNegativeTest field: { type: ScalarType, resolve: 0 }, }, }); @@ -724,8 +724,8 @@ describe('Type System: Enums', () => { () => new GraphQLEnumType({ name: 'SomeEnum', + // $DisableFlowOnNegativeTest values: { - // $DisableFlowOnNegativeTest FOO: { isDeprecated: true }, }, }), @@ -809,8 +809,8 @@ describe('Type System: Input Objects', () => { it('rejects an Input Object type with resolvers', () => { const inputObjType = new GraphQLInputObjectType({ name: 'SomeInputObject', + // $DisableFlowOnNegativeTest fields: { - // $DisableFlowOnNegativeTest f: { type: ScalarType, resolve: dummyFunc }, }, }); @@ -822,8 +822,8 @@ describe('Type System: Input Objects', () => { it('rejects an Input Object type with resolver constant', () => { const inputObjType = new GraphQLInputObjectType({ name: 'SomeInputObject', + // $DisableFlowOnNegativeTest fields: { - // $DisableFlowOnNegativeTest f: { type: ScalarType, resolve: {} }, }, }); diff --git a/src/utilities/__tests__/getOperationRootType-test.js b/src/utilities/__tests__/getOperationRootType-test.js index 862f35be672..5f811e9102f 100644 --- a/src/utilities/__tests__/getOperationRootType-test.js +++ b/src/utilities/__tests__/getOperationRootType-test.js @@ -149,13 +149,13 @@ describe('getOperationRootType', () => { it('Throws when operation not a valid operation kind', () => { const testSchema = new GraphQLSchema({}); - const doc = parse('{ field }'); const operationNode = { ...getOperationNode(doc), - // $DisableFlowOnNegativeTest operation: 'non_existent_operation', }; + + // $DisableFlowOnNegativeTest expect(() => getOperationRootType(testSchema, operationNode)).to.throw( 'Can only have query, mutation and subscription operations.', ); diff --git a/yarn.lock b/yarn.lock index 67300ce65e6..0700943541e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1975,10 +1975,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== -flow-bin@0.120.1: - version "0.120.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.120.1.tgz#ab051d6df71829b70a26a2c90bb81f9d43797cae" - integrity sha512-KgE+d+rKzdXzhweYVJty1QIOOZTTbtnXZf+4SLnmArLvmdfeLreQOZpeLbtq5h79m7HhDzX/HkUkoyu/fmSC2A== +flow-bin@0.121.0: + version "0.121.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.121.0.tgz#e206bdc3d510277f9a847920540f72c49e87c130" + integrity sha512-QYRMs+AoMLj/OTaSo9+8c3kzM/u8YgvfrInp0qzhtzC02Sc2jb3BV/QZWZGjPo+XK3twyyqXrcI3s8MuL1UQRg== foreground-child@^2.0.0: version "2.0.0" From 57f9854456fefe6db9727188b03b19b05dfa813d Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 2 Apr 2020 17:34:39 +0300 Subject: [PATCH 06/63] Update deps (#2502) --- .eslintrc.yml | 11 +- package.json | 20 +- yarn.lock | 723 +++++++++++++++++++++++++++----------------------- 3 files changed, 411 insertions(+), 343 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 6a996d30b30..d0011cd01f9 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -19,7 +19,7 @@ rules: graphql-internal/no-dir-import: error ############################################################################## - # `eslint-plugin-flowtype` rule list based on `v4.6.x` + # `eslint-plugin-flowtype` rule list based on `v4.7.x` # https://github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype ############################################################################## @@ -439,9 +439,10 @@ overrides: - plugin:import/typescript rules: flowtype/require-valid-file-annotation: off + flowtype/no-types-missing-file-annotation: off ########################################################################## - # `@typescript-eslint/eslint-plugin` rule list based on `v2.21.x` + # `@typescript-eslint/eslint-plugin` rule list based on `v2.26.x` ########################################################################## # Supported Rules @@ -451,6 +452,7 @@ overrides: '@typescript-eslint/await-thenable': error '@typescript-eslint/ban-ts-comment': error '@typescript-eslint/ban-types': error + '@typescript-eslint/class-literal-property-style': off '@typescript-eslint/consistent-type-assertions': [error, { assertionStyle: as, objectLiteralTypeAssertions: never }] '@typescript-eslint/consistent-type-definitions': off # TODO consider @@ -485,6 +487,9 @@ overrides: '@typescript-eslint/no-unnecessary-qualifier': error '@typescript-eslint/no-unnecessary-type-arguments': error '@typescript-eslint/no-unnecessary-type-assertion': error + '@typescript-eslint/no-unsafe-call': off # TODO consider + '@typescript-eslint/no-unsafe-member-access': off # TODO consider + '@typescript-eslint/no-unsafe-return': off # TODO consider '@typescript-eslint/no-unused-vars-experimental': off '@typescript-eslint/no-var-requires': error '@typescript-eslint/prefer-as-const': off # TODO consider @@ -495,7 +500,7 @@ overrides: '@typescript-eslint/prefer-nullish-coalescing': error '@typescript-eslint/prefer-optional-chain': error '@typescript-eslint/prefer-readonly': error - '@typescript-eslint/prefer-readonly-parameter-types': off # FIXME: crash eslint + '@typescript-eslint/prefer-readonly-parameter-types': off # TODO consider '@typescript-eslint/prefer-regexp-exec': error '@typescript-eslint/prefer-string-starts-ends-with': off # TODO switch to error after IE11 drop '@typescript-eslint/promise-function-async': off diff --git a/package.json b/package.json index 92f102148f2..ed62ae31e52 100644 --- a/package.json +++ b/package.json @@ -44,22 +44,22 @@ }, "dependencies": {}, "devDependencies": { - "@babel/core": "7.8.7", - "@babel/plugin-transform-flow-strip-types": "7.8.3", - "@babel/preset-env": "7.8.7", - "@babel/register": "7.8.6", - "@typescript-eslint/eslint-plugin": "2.22.0", - "@typescript-eslint/parser": "2.22.0", + "@babel/core": "7.9.0", + "@babel/plugin-transform-flow-strip-types": "7.9.0", + "@babel/preset-env": "7.9.0", + "@babel/register": "7.9.0", + "@typescript-eslint/eslint-plugin": "2.26.0", + "@typescript-eslint/parser": "2.26.0", "babel-eslint": "10.1.0", "chai": "4.2.0", "cspell": "4.0.55", - "dtslint": "3.3.0", + "dtslint": "3.4.1", "eslint": "6.8.0", - "eslint-plugin-flowtype": "4.6.0", + "eslint-plugin-flowtype": "4.7.0", "eslint-plugin-graphql-internal": "link:./resources/eslint-rules", - "eslint-plugin-import": "2.20.1", + "eslint-plugin-import": "2.20.2", "flow-bin": "0.121.0", - "mocha": "7.1.0", + "mocha": "7.1.1", "nyc": "15.0.0", "prettier": "2.0.2", "typescript": "^3.8.3" diff --git a/yarn.lock b/yarn.lock index 0700943541e..94ff6b19b7c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,42 +9,43 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/compat-data@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.8.6.tgz#7eeaa0dfa17e50c7d9c0832515eee09b56f04e35" - integrity sha512-CurCIKPTkS25Mb8mz267vU95vy+TyUpnctEX2lV33xWNmHAfjruztgiPBbXZRh3xZZy1CYvGx6XfxyTVS+sk7Q== +"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" + integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== dependencies: - browserslist "^4.8.5" + browserslist "^4.9.1" invariant "^2.2.4" semver "^5.5.0" -"@babel/core@7.8.7", "@babel/core@^7.7.5": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.7.tgz#b69017d221ccdeb203145ae9da269d72cf102f3b" - integrity sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA== +"@babel/core@7.9.0", "@babel/core@^7.7.5": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" + integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.7" - "@babel/helpers" "^7.8.4" - "@babel/parser" "^7.8.7" + "@babel/generator" "^7.9.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.0" + "@babel/parser" "^7.9.0" "@babel/template" "^7.8.6" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.7" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" - json5 "^2.1.0" + json5 "^2.1.2" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.8.6", "@babel/generator@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.7.tgz#870b3cf7984f5297998152af625c4f3e341400f7" - integrity sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew== +"@babel/generator@^7.9.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" + integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== dependencies: - "@babel/types" "^7.8.7" + "@babel/types" "^7.9.0" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" @@ -64,15 +65,6 @@ "@babel/helper-explode-assignable-expression" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-call-delegate@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz#28a279c2e6c622a6233da548127f980751324cab" - integrity sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ== - dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.7" - "@babel/helper-compilation-targets@^7.8.7": version "7.8.7" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" @@ -84,14 +76,14 @@ levenary "^1.1.1" semver "^5.5.0" -"@babel/helper-create-regexp-features-plugin@^7.8.3": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.6.tgz#7fa040c97fb8aebe1247a5c645330c32d083066b" - integrity sha512-bPyujWfsHhV/ztUkwGHz/RPV1T1TDEsSZDsN42JPehndA+p1KKTh3npvTadux0ZhCrytx9tvjpWNowKby3tM6A== +"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" + integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== dependencies: "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.6.0" + regexpu-core "^4.7.0" "@babel/helper-define-map@^7.8.3": version "7.8.3" @@ -147,17 +139,17 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-module-transforms@^7.8.3": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz#6a13b5eecadc35692047073a64e42977b97654a4" - integrity sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg== +"@babel/helper-module-transforms@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" + integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== dependencies: "@babel/helper-module-imports" "^7.8.3" "@babel/helper-replace-supers" "^7.8.6" "@babel/helper-simple-access" "^7.8.3" "@babel/helper-split-export-declaration" "^7.8.3" "@babel/template" "^7.8.6" - "@babel/types" "^7.8.6" + "@babel/types" "^7.9.0" lodash "^4.17.13" "@babel/helper-optimise-call-expression@^7.8.3": @@ -167,7 +159,7 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== @@ -215,6 +207,11 @@ dependencies: "@babel/types" "^7.8.3" +"@babel/helper-validator-identifier@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" + integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== + "@babel/helper-wrap-function@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" @@ -225,28 +222,28 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helpers@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73" - integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w== +"@babel/helpers@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" + integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== dependencies: "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.4" - "@babel/types" "^7.8.3" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" "@babel/highlight@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" - integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" + integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== dependencies: + "@babel/helper-validator-identifier" "^7.9.0" chalk "^2.0.0" - esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.7.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.7.tgz#7b8facf95d25fef9534aad51c4ffecde1a61e26a" - integrity sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A== +"@babel/parser@^7.7.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" + integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== "@babel/plugin-proposal-async-generator-functions@^7.8.3": version "7.8.3" @@ -281,10 +278,18 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-object-rest-spread@^7.8.3": +"@babel/plugin-proposal-numeric-separator@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb" - integrity sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA== + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" + integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + +"@babel/plugin-proposal-object-rest-spread@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f" + integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" @@ -297,20 +302,20 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz#ae10b3214cb25f7adb1f3bc87ba42ca10b7e2543" - integrity sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg== +"@babel/plugin-proposal-optional-chaining@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" + integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz#b646c3adea5f98800c9ab45105ac34d06cd4a47f" - integrity sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ== +"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" + integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.8.8" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-async-generators@^7.8.0": @@ -348,6 +353,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread@^7.8.0": 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" @@ -407,10 +419,10 @@ "@babel/helper-plugin-utils" "^7.8.3" lodash "^4.17.13" -"@babel/plugin-transform-classes@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz#77534447a477cbe5995ae4aee3e39fbc8090c46d" - integrity sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg== +"@babel/plugin-transform-classes@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d" + integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ== dependencies: "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-define-map" "^7.8.3" @@ -429,13 +441,13 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-destructuring@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz#20ddfbd9e4676906b1056ee60af88590cc7aaa0b" - integrity sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ== + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz#fadb2bc8e90ccaf5658de6f8d4d22ff6272a2f4b" + integrity sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-dotall-regex@^7.8.3": +"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== @@ -458,18 +470,18 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-flow-strip-types@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.8.3.tgz#da705a655466b2a9b36046b57bf0cbcd53551bd4" - integrity sha512-g/6WTWG/xbdd2exBBzMfygjX/zw4eyNC4X8pRaq7aRHRoDUCzAIu3kGYIXviOv8BjCuWm8vDBwjHcjiRNgXrPA== +"@babel/plugin-transform-flow-strip-types@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz#8a3538aa40434e000b8f44a3c5c9ac7229bd2392" + integrity sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-flow" "^7.8.3" -"@babel/plugin-transform-for-of@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz#a051bd1b402c61af97a27ff51b468321c7c2a085" - integrity sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw== +"@babel/plugin-transform-for-of@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" + integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" @@ -495,41 +507,41 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-amd@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz#65606d44616b50225e76f5578f33c568a0b876a5" - integrity sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ== +"@babel/plugin-transform-modules-amd@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" + integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== dependencies: - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5" - integrity sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg== +"@babel/plugin-transform-modules-commonjs@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" + integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== dependencies: - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-simple-access" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-systemjs@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz#d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420" - integrity sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg== +"@babel/plugin-transform-modules-systemjs@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" + integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== dependencies: "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-umd@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz#592d578ce06c52f5b98b02f913d653ffe972661a" - integrity sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw== +"@babel/plugin-transform-modules-umd@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" + integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== dependencies: - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": @@ -555,11 +567,10 @@ "@babel/helper-replace-supers" "^7.8.3" "@babel/plugin-transform-parameters@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.7.tgz#66fa2f1de4129b4e0447509223ac71bda4955395" - integrity sha512-brYWaEPTRimOctz2NDA3jnBbDi7SVN2T4wYuu0aqSzxC3nozFZngGaw29CJ9ZPweB7k+iFmZuoG3IVPIcXmD2g== + version "7.9.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz#3028d0cc20ddc733166c6e9c8534559cee09f54a" + integrity sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg== dependencies: - "@babel/helper-call-delegate" "^7.8.7" "@babel/helper-get-function-arity" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -629,12 +640,12 @@ "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/preset-env@7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.8.7.tgz#1fc7d89c7f75d2d70c2b6768de6c2e049b3cb9db" - integrity sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw== +"@babel/preset-env@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8" + integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ== dependencies: - "@babel/compat-data" "^7.8.6" + "@babel/compat-data" "^7.9.0" "@babel/helper-compilation-targets" "^7.8.7" "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -642,14 +653,16 @@ "@babel/plugin-proposal-dynamic-import" "^7.8.3" "@babel/plugin-proposal-json-strings" "^7.8.3" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.8.3" + "@babel/plugin-proposal-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.0" "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.9.0" "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" "@babel/plugin-syntax-async-generators" "^7.8.0" "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-json-strings" "^7.8.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.8.0" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" @@ -658,20 +671,20 @@ "@babel/plugin-transform-async-to-generator" "^7.8.3" "@babel/plugin-transform-block-scoped-functions" "^7.8.3" "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.8.6" + "@babel/plugin-transform-classes" "^7.9.0" "@babel/plugin-transform-computed-properties" "^7.8.3" "@babel/plugin-transform-destructuring" "^7.8.3" "@babel/plugin-transform-dotall-regex" "^7.8.3" "@babel/plugin-transform-duplicate-keys" "^7.8.3" "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.8.6" + "@babel/plugin-transform-for-of" "^7.9.0" "@babel/plugin-transform-function-name" "^7.8.3" "@babel/plugin-transform-literals" "^7.8.3" "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.8.3" - "@babel/plugin-transform-modules-commonjs" "^7.8.3" - "@babel/plugin-transform-modules-systemjs" "^7.8.3" - "@babel/plugin-transform-modules-umd" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.9.0" + "@babel/plugin-transform-modules-commonjs" "^7.9.0" + "@babel/plugin-transform-modules-systemjs" "^7.9.0" + "@babel/plugin-transform-modules-umd" "^7.9.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" "@babel/plugin-transform-new-target" "^7.8.3" "@babel/plugin-transform-object-super" "^7.8.3" @@ -685,17 +698,29 @@ "@babel/plugin-transform-template-literals" "^7.8.3" "@babel/plugin-transform-typeof-symbol" "^7.8.4" "@babel/plugin-transform-unicode-regex" "^7.8.3" - "@babel/types" "^7.8.7" - browserslist "^4.8.5" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.9.0" + browserslist "^4.9.1" core-js-compat "^3.6.2" invariant "^2.2.2" levenary "^1.1.1" semver "^5.5.0" -"@babel/register@7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.8.6.tgz#a1066aa6168a73a70c35ef28cc5865ccc087ea69" - integrity sha512-7IDO93fuRsbyml7bAafBQb3RcBGlCpU4hh5wADA2LJEEcYk92WkwFZ0pHyIi2fb5Auoz1714abETdZKCOxN0CQ== +"@babel/preset-modules@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" + integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/register@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.9.0.tgz#02464ede57548bddbb5e9f705d263b7c3f43d48b" + integrity sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q== dependencies: find-cache-dir "^2.0.0" lodash "^4.17.13" @@ -704,9 +729,9 @@ source-map-support "^0.5.16" "@babel/runtime@^7.8.4": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.7.tgz#8fefce9802db54881ba59f90bb28719b4996324d" - integrity sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg== + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" + integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== dependencies: regenerator-runtime "^0.13.4" @@ -719,27 +744,27 @@ "@babel/parser" "^7.8.6" "@babel/types" "^7.8.6" -"@babel/traverse@^7.7.0", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4", "@babel/traverse@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.6.tgz#acfe0c64e1cd991b3e32eae813a6eb564954b5ff" - integrity sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A== +"@babel/traverse@^7.7.0", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" + integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.6" + "@babel/generator" "^7.9.0" "@babel/helper-function-name" "^7.8.3" "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" + "@babel/parser" "^7.9.0" + "@babel/types" "^7.9.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.7.tgz#1fc9729e1acbb2337d5b6977a63979b4819f5d1d" - integrity sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw== +"@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" + integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== dependencies: - esutils "^2.0.2" + "@babel/helper-validator-identifier" "^7.9.0" lodash "^4.17.13" to-fast-properties "^2.0.0" @@ -778,40 +803,40 @@ resolved "https://registry.yarnpkg.com/@types/parsimmon/-/parsimmon-1.10.1.tgz#d46015ad91128fce06a1a688ab39a2516507f740" integrity sha512-MoF2IC9oGSgArJwlxdst4XsvWuoYfNUWtBw0kpnCi6K05kV+Ecl7siEeJ40tgCbI9uqEMGQL/NlPMRv6KVkY5Q== -"@typescript-eslint/eslint-plugin@2.22.0": - version "2.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.22.0.tgz#218ce6d4aa0244c6a40baba39ca1e021b26bb017" - integrity sha512-BvxRLaTDVQ3N+Qq8BivLiE9akQLAOUfxNHIEhedOcg8B2+jY8Rc4/D+iVprvuMX1AdezFYautuGDwr9QxqSxBQ== +"@typescript-eslint/eslint-plugin@2.26.0": + version "2.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.26.0.tgz#04c96560c8981421e5a9caad8394192363cc423f" + integrity sha512-4yUnLv40bzfzsXcTAtZyTjbiGUXMrcIJcIMioI22tSOyAxpdXiZ4r7YQUU8Jj6XXrLz9d5aMHPQf5JFR7h27Nw== dependencies: - "@typescript-eslint/experimental-utils" "2.22.0" - eslint-utils "^1.4.3" + "@typescript-eslint/experimental-utils" "2.26.0" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@2.22.0": - version "2.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.22.0.tgz#4d00c91fbaaa68e56e7869be284999a265707f85" - integrity sha512-sJt1GYBe6yC0dWOQzXlp+tiuGglNhJC9eXZeC8GBVH98Zv9jtatccuhz0OF5kC/DwChqsNfghHx7OlIDQjNYAQ== +"@typescript-eslint/experimental-utils@2.26.0": + version "2.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.26.0.tgz#063390c404d9980767d76274df386c0aa675d91d" + integrity sha512-RELVoH5EYd+JlGprEyojUv9HeKcZqF7nZUGSblyAw1FwOGNnmQIU8kxJ69fttQvEwCsX5D6ECJT8GTozxrDKVQ== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.22.0" + "@typescript-eslint/typescript-estree" "2.26.0" eslint-scope "^5.0.0" + eslint-utils "^2.0.0" -"@typescript-eslint/parser@2.22.0": - version "2.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.22.0.tgz#8eeb6cb6de873f655e64153397d4790898e149d0" - integrity sha512-FaZKC1X+nvD7qMPqKFUYHz3H0TAioSVFGvG29f796Nc5tBluoqfHgLbSFKsh7mKjRoeTm8J9WX2Wo9EyZWjG7w== +"@typescript-eslint/parser@2.26.0": + version "2.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.26.0.tgz#385463615818b33acb72a25b39c03579df93d76f" + integrity sha512-+Xj5fucDtdKEVGSh9353wcnseMRkPpEAOY96EEenN7kJVrLqy/EVwtIh3mxcUz8lsFXW1mT5nN5vvEam/a5HiQ== dependencies: "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.22.0" - "@typescript-eslint/typescript-estree" "2.22.0" + "@typescript-eslint/experimental-utils" "2.26.0" + "@typescript-eslint/typescript-estree" "2.26.0" eslint-visitor-keys "^1.1.0" -"@typescript-eslint/typescript-estree@2.22.0": - version "2.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.22.0.tgz#a16ed45876abf743e1f5857e2f4a1c3199fd219e" - integrity sha512-2HFZW2FQc4MhIBB8WhDm9lVFaBDy6h9jGrJ4V2Uzxe/ON29HCHBTj3GkgcsgMWfsl2U5as+pTOr30Nibaw7qRQ== +"@typescript-eslint/typescript-estree@2.26.0": + version "2.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.26.0.tgz#d8132cf1ee8a72234f996519a47d8a9118b57d56" + integrity sha512-3x4SyZCLB4zsKsjuhxDLeVJN6W29VwBnYpCsZ7vIdPel9ZqLfIZJgJXO47MNUkurGpQuIBALdPQKtsSnWpE1Yg== dependencies: debug "^4.1.1" eslint-visitor-keys "^1.1.0" @@ -826,7 +851,7 @@ acorn-jsx@^5.2.0: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== -acorn@^7.1.0: +acorn@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== @@ -1013,14 +1038,15 @@ browser-stdout@1.3.1: resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserslist@^4.8.3, browserslist@^4.8.5, browserslist@^4.9.1: - version "4.9.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.9.1.tgz#01ffb9ca31a1aef7678128fc6a2253316aa7287c" - integrity sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw== +browserslist@^4.8.3, browserslist@^4.9.1: + version "4.11.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b" + integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g== dependencies: - caniuse-lite "^1.0.30001030" - electron-to-chromium "^1.3.363" - node-releases "^1.1.50" + caniuse-lite "^1.0.30001038" + electron-to-chromium "^1.3.390" + node-releases "^1.1.53" + pkg-up "^2.0.0" buffer-from@^1.0.0: version "1.1.1" @@ -1052,10 +1078,10 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001030: - version "1.0.30001032" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001032.tgz#b8d224914e2cd7f507085583d4e38144c652bce4" - integrity sha512-8joOm7BwcpEN4BfVHtfh0hBXSAPVYk+eUIcNntGtMkUWy/6AKRCDZINCLe3kB1vHhT2vBxBF85Hh9VlPXi/qjA== +caniuse-lite@^1.0.30001038: + version "1.0.30001038" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz#44da3cbca2ab6cb6aa83d1be5d324e17f141caff" + integrity sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ== chai@4.2.0: version "4.2.0" @@ -1287,9 +1313,9 @@ cspell-dict-bash@^1.0.3: configstore "^5.0.0" cspell-dict-companies@^1.0.20: - version "1.0.20" - resolved "https://registry.yarnpkg.com/cspell-dict-companies/-/cspell-dict-companies-1.0.20.tgz#75c76f6128cebdcfd8c89a0d62e37635f4a1cefe" - integrity sha512-LpDV5YMNV0vG8/LA4S8bbHNwaxI3gHTsCe0XZSGMRFlxO3bWWhi3Il3KB3pdDArDaopTGZKCMXDQsYFy5WHhQA== + version "1.0.21" + resolved "https://registry.yarnpkg.com/cspell-dict-companies/-/cspell-dict-companies-1.0.21.tgz#0544ce7ed29061201d2fca9ffe6fb11bf09ec709" + integrity sha512-vHW6pA0cLIT1qUfT6c+xV1IORrmSKuraHPJ7dwdRhWwuc6Ltc7QJWloapufxWgsYUCLllmFcv6E7kzzmue66gw== dependencies: configstore "^5.0.0" @@ -1434,16 +1460,16 @@ cspell-dict-scala@^1.0.11: configstore "^5.0.0" cspell-dict-software-terms@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cspell-dict-software-terms/-/cspell-dict-software-terms-1.0.6.tgz#ecbf6d1f0c8b3f987e69a60a77fca07ad5d7225c" - integrity sha512-W9ugGS5dNMWDV27gY5qC+RlckP340q5vzrf6xTzlJ9ikh4c3PymAHne23FH7WwjMbFW7eSbQFddIcRgjXcxbdA== + version "1.0.7" + resolved "https://registry.yarnpkg.com/cspell-dict-software-terms/-/cspell-dict-software-terms-1.0.7.tgz#74f33a36b470c7344ab8bd0fb1bc4f82dcbf27c8" + integrity sha512-Fh8NmDqY+GZRrJJuFUNoIDbR9WoP9mte+nVVGK5u8vurNInOG/MgRL0O/dhDfTmrMlSyAMhlUWm+852sXietEA== dependencies: configstore "^5.0.0" cspell-dict-typescript@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cspell-dict-typescript/-/cspell-dict-typescript-1.0.3.tgz#89d540fdca9c5e22416b42084f737ffe169eaf42" - integrity sha512-j6sVvLUuPCTw5Iqc1D1zB3mWJQTMNshEOmChJfz8vFeBMbu7oj61rLbnhnn2x8kXguKmWN5jhhKnsBIp++jRZA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/cspell-dict-typescript/-/cspell-dict-typescript-1.0.4.tgz#95ca26adf15c5e31cda2506e03ce7b7c18e9fbb0" + integrity sha512-cniGSmTohYriEgGJ0PgcQP2GCGP+PH/0WZ2N7BTTemQr/mHTU6bKWy8DVK63YEtYPEmhZv+G2xPBgBD41QQypQ== dependencies: configstore "^5.0.0" @@ -1626,10 +1652,10 @@ dts-critic@^3.0.0: typescript "^3.7.5" yargs "^12.0.5" -dtslint@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/dtslint/-/dtslint-3.3.0.tgz#e1e429a0c82e7fbe5c55c08dff2459d2280ce513" - integrity sha512-fQ1Q8Rvnz8ejiUe081qjYYeXi8XuNw8cR8dKv57FwZ5HG3KG541eOE3MeyBFbkZZAIZutl7KHcqhRXj0eaKg0g== +dtslint@3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/dtslint/-/dtslint-3.4.1.tgz#b75c1bcd0d81f2029604f2a322aacb474cfc60ea" + integrity sha512-gIFYwlAO8vY17zGMqdJ7x2DA2swrQsKCwrtX0TUP4A36dlXjdFpj6NWMWc1HW5mYkWOkQFHwTWMOdkP6DLsrfA== dependencies: definitelytyped-header-parser "3.9.0" dts-critic "^3.0.0" @@ -1640,10 +1666,10 @@ dtslint@3.3.0: typescript next yargs "^15.1.0" -electron-to-chromium@^1.3.363: - version "1.3.370" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.370.tgz#420fba483d30ba3f7965b30ecf850fdb5f08a0bc" - integrity sha512-399cXDE9C7qoVF2CUgCA/MLflfvxbo1F0kB/pkB94426freL/JgZ0HNaloomsOfnE+VC/qgTFZqzmivSdaNfPQ== +electron-to-chromium@^1.3.390: + version "1.3.393" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.393.tgz#d13fa4cbf5065e18451c84465d22aef6aca9a911" + integrity sha512-Ko3/VdhZAaMaJBLBFqEJ+M1qMiBI8sJfPY/hSJvDrkB3Do8LJsL9tmXy4w7o9nPXif/jFaZGSlXTQWU8XVsYtg== emoji-regex@^7.0.1: version "7.0.3" @@ -1669,10 +1695,10 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1: - version "1.17.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" - integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" @@ -1714,17 +1740,17 @@ eslint-import-resolver-node@^0.3.2: resolve "^1.13.1" eslint-module-utils@^2.4.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz#7878f7504824e1b857dd2505b59a8e5eda26a708" - integrity sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q== + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== dependencies: debug "^2.6.9" pkg-dir "^2.0.0" -eslint-plugin-flowtype@4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.6.0.tgz#82b2bd6f21770e0e5deede0228e456cb35308451" - integrity sha512-W5hLjpFfZyZsXfo5anlu7HM970JBDqbEshAJUkeczP6BFCIfJXuiIBQXyberLRtOStT0OGPF8efeTbxlHk4LpQ== +eslint-plugin-flowtype@4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.7.0.tgz#903a6ea3eb5cbf4c7ba7fa73cc43fc39ab7e4a70" + integrity sha512-M+hxhSCk5QBEValO5/UqrS4UunT+MgplIJK5wA1sCtXjzBcZkpTGRwxmLHhGpbHcrmQecgt6ZL/KDdXWqGB7VA== dependencies: lodash "^4.17.15" @@ -1732,10 +1758,10 @@ eslint-plugin-flowtype@4.6.0: version "0.0.0" uid "" -eslint-plugin-import@2.20.1: - version "2.20.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3" - integrity sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw== +eslint-plugin-import@2.20.2: + version "2.20.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" + integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg== dependencies: array-includes "^3.0.3" array.prototype.flat "^1.2.1" @@ -1765,6 +1791,13 @@ eslint-utils@^1.4.3: dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" + integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== + dependencies: + eslint-visitor-keys "^1.1.0" + eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" @@ -1814,11 +1847,11 @@ eslint@6.8.0: v8-compile-cache "^2.0.3" espree@^6.1.2: - version "6.2.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.0.tgz#349fef01a202bbab047748300deb37fa44da79d7" - integrity sha512-Xs8airJ7RQolnDIbLtRutmfvSsAe0xqMMAantCN/GMoqf81TFbeI1T7Jpd56qYu1uuh32dOG5W/X9uO+ghPXzA== + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== dependencies: - acorn "^7.1.0" + acorn "^7.1.1" acorn-jsx "^5.2.0" eslint-visitor-keys "^1.1.0" @@ -1833,11 +1866,11 @@ esprima@^4.0.0: integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.1.0.tgz#c5c0b66f383e7656404f86b31334d72524eddb48" - integrity sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q== + version "1.2.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.2.0.tgz#a010a519c0288f2530b3404124bfb5f02e9797fe" + integrity sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q== dependencies: - estraverse "^4.0.0" + estraverse "^5.0.0" esrecurse@^4.1.0: version "4.2.1" @@ -1846,11 +1879,16 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: +estraverse@^4.1.0, estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.0.0.tgz#ac81750b482c11cca26e4b07e83ed8f75fbcdc22" + integrity sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -1924,9 +1962,9 @@ find-cache-dir@^2.0.0: pkg-dir "^3.0.0" find-cache-dir@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.0.tgz#4d74ed1fe9ef1731467ca24378e8f8f5c8b6ed11" - integrity sha512-PtXtQb7IrD8O+h6Cq1dbpJH5NzD8+9keN1zZ0YlpDzl1PwXEJEBj6u1Xa92t1Hwluoozd9TNKul5Hi2iqpsWwg== + 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" @@ -1971,9 +2009,9 @@ flat@^4.1.0: is-buffer "~2.0.3" flatted@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== flow-bin@0.121.0: version "0.121.0" @@ -2069,9 +2107,9 @@ get-stream@^4.0.0: pump "^3.0.0" glob-parent@^5.0.0, glob-parent@~5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" - integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== dependencies: is-glob "^4.0.1" @@ -2105,9 +2143,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^12.1.0: - version "12.3.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.3.0.tgz#1e564ee5c4dded2ab098b0f88f24702a3c56be13" - integrity sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw== + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== dependencies: type-fest "^0.8.1" @@ -2169,9 +2207,9 @@ hosted-git-info@^2.1.4: integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== html-escaper@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz#71e87f931de3fe09e56661ab9a29aadec707b491" - integrity sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig== + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== iconv-lite@^0.4.24: version "0.4.24" @@ -2217,9 +2255,9 @@ inherits@2: integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inquirer@^7.0.0: - version "7.0.6" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.6.tgz#ee4ff0ea7ecda5324656fe665878790f66df7d0c" - integrity sha512-7SVO4h+QIdMq6XcqIqrNte3gS5MzCCKZdsq9DO4PJziBFNYzP3PGFbDjgadDb//MCahzgjCxvQ/O2wa7kx9o4w== + 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" @@ -2424,9 +2462,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.0.tgz#d4d16d035db99581b6194e119bbf36c963c5eb70" - integrity sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.1.tgz#1343217244ad637e0c3b18e7f6b746941a9b5e9a" + integrity sha512-Vm9xwCiQ8t2cNNnckyeAV0UdxKpcQUz4nMxsBvIu8n2kmPSiyb5uaF/8LpmKr+yqL/MdOXaX2Nmdo4Qyxium9Q== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -2488,12 +2526,12 @@ json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" -json5@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== +json5@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" + integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== dependencies: - minimist "^1.2.0" + minimist "^1.2.5" jsonfile@^4.0.0: version "4.0.0" @@ -2642,27 +2680,29 @@ minimatch@3.0.4, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= +mkdirp@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.3.tgz#5a514b7179259287952881e94410ec5465659f8c" + integrity sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg== + dependencies: + minimist "^1.2.5" -mkdirp@0.5.1, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= +mkdirp@^0.5.1: + version "0.5.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== dependencies: - minimist "0.0.8" + minimist "^1.2.5" -mocha@7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.1.0.tgz#c784f579ad0904d29229ad6cb1e2514e4db7d249" - integrity sha512-MymHK8UkU0K15Q/zX7uflZgVoRWiTjy0fXE/QjKts6mowUvGxOdPhZ2qj3b0iZdUrNZlW9LAIMFHB4IW+2b3EQ== +mocha@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.1.1.tgz#89fbb30d09429845b1bb893a830bf5771049a441" + integrity sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA== dependencies: ansi-colors "3.2.3" browser-stdout "1.3.1" @@ -2677,7 +2717,7 @@ mocha@7.1.0: js-yaml "3.13.1" log-symbols "3.0.0" minimatch "3.0.4" - mkdirp "0.5.1" + mkdirp "0.5.3" ms "2.1.1" node-environment-flags "1.0.6" object.assign "4.1.0" @@ -2685,8 +2725,8 @@ mocha@7.1.0: supports-color "6.0.0" which "1.3.1" wide-align "1.1.3" - yargs "13.3.0" - yargs-parser "13.1.1" + yargs "13.3.2" + yargs-parser "13.1.2" yargs-unparser "1.6.0" ms@2.0.0: @@ -2739,12 +2779,10 @@ node-preload@^0.2.0: dependencies: process-on-spawn "^1.0.0" -node-releases@^1.1.50: - version "1.1.50" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.50.tgz#803c40d2c45db172d0410e4efec83aa8c6ad0592" - integrity sha512-lgAmPv9eYZ0bGwUYAKlr8MG6K4CvWliWqnkcT2P8mMAgVrH3lqfBPorFlxiG1pHQnqmavJZ9vbMXUTNyMLbrgQ== - dependencies: - semver "^6.3.0" +node-releases@^1.1.53: + version "1.1.53" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" + integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== normalize-package-data@^2.3.2: version "2.5.0" @@ -3024,9 +3062,9 @@ pathval@^1.1.0: integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= picomatch@^2.0.4, picomatch@^2.0.5: - version "2.2.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a" - integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA== + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== pify@^2.0.0: version "2.3.0" @@ -3066,6 +3104,13 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -3130,10 +3175,10 @@ readdirp@~3.2.0: dependencies: picomatch "^2.0.4" -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== +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" @@ -3143,14 +3188,14 @@ regenerate@^1.4.0: integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== regenerator-runtime@^0.13.4: - version "0.13.4" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz#e96bf612a3362d12bb69f7e8f74ffeab25c7ac91" - integrity sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g== + version "0.13.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== regenerator-transform@^0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.2.tgz#949d9d87468ff88d5a7e4734ebb994a892de1ff2" - integrity sha512-V4+lGplCM/ikqi5/mkkpJ06e9Bujq1NFmNLvsCs56zg3ZbzrnUzAtizZ24TXxtRX/W2jcdScwQCnbL0CICTFkQ== + version "0.14.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== dependencies: "@babel/runtime" "^7.8.4" private "^0.1.8" @@ -3165,27 +3210,27 @@ regexpp@^3.0.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== -regexpu-core@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== +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.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.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.1.0" + unicode-match-property-value-ecmascript "^1.2.0" -regjsgen@^0.5.0: +regjsgen@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== -regjsparser@^0.6.0: - version "0.6.3" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.3.tgz#74192c5805d35e9f5ebe3c1fb5b40d40a8a38460" - integrity sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA== +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" @@ -3319,9 +3364,9 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== slice-ansi@^2.1.0: version "2.1.0" @@ -3428,21 +3473,39 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string.prototype.trimend@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz#ee497fd29768646d84be2c9b819e292439614373" + integrity sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimleft@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" - integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" string.prototype.trimright@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" - integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz#afe596a7ce9de905496919406c9734845f01a2f2" + integrity sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" @@ -3644,9 +3707,9 @@ typescript@^3.7.5, typescript@^3.8.3: integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== typescript@next: - version "3.9.0-dev.20200306" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.0-dev.20200306.tgz#b6ad2d66eed60fbf32176c6a2c7d5b175ddb377d" - integrity sha512-JkFUyTm70yUoyJ1uXnIQMp+PL/8D+oHOo9P9ByIknzGERSPNPP08yefNpu8DeleFKhbX3siyIvYLekKS/p2m7g== + version "3.9.0-dev.20200402" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.0-dev.20200402.tgz#f09c5a7d7ef1370ad7ef46b84e2732002276107c" + integrity sha512-CxOOy4lmaPnuyG34aP1kF2l++aou/IM+T0XsEeXZWb6xbIwx+3rt1DbLNS0pQIsLxi7NITq3x4M1qXhOQOAE6A== unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" @@ -3661,15 +3724,15 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== +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.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + 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== unique-string@^2.0.0: version "2.0.0" @@ -3802,10 +3865,10 @@ xdg-basedir@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== -yargs-parser@13.1.1, yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== +yargs-parser@13.1.2, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -3818,10 +3881,10 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" - integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== +yargs-parser@^18.1.1: + version "18.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1" + integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -3835,10 +3898,10 @@ yargs-unparser@1.6.0: lodash "^4.17.15" yargs "^13.3.0" -yargs@13.3.0, yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== +yargs@13.3.2, yargs@^13.3.0: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" find-up "^3.0.0" @@ -3849,7 +3912,7 @@ yargs@13.3.0, yargs@^13.3.0: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.1" + yargs-parser "^13.1.2" yargs@^12.0.5: version "12.0.5" @@ -3870,9 +3933,9 @@ yargs@^12.0.5: yargs-parser "^11.1.1" yargs@^15.0.2, yargs@^15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz#e111381f5830e863a89550bd4b136bb6a5f37219" - integrity sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg== + version "15.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== dependencies: cliui "^6.0.0" decamelize "^1.2.0" @@ -3884,4 +3947,4 @@ yargs@^15.0.2, yargs@^15.1.0: string-width "^4.2.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^16.1.0" + yargs-parser "^18.1.1" From 278bde0a5cd71008452b555065f19dcd1160270a Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 2 Apr 2020 17:43:20 +0300 Subject: [PATCH 07/63] v15.0.0 --- package.json | 2 +- src/version.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index ed62ae31e52..7ef13341feb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql", - "version": "15.0.0-rc.2", + "version": "15.0.0", "description": "A Query Language and Runtime which can target any service.", "license": "MIT", "private": true, diff --git a/src/version.js b/src/version.js index fa19a5f91ca..df61f772fcc 100644 --- a/src/version.js +++ b/src/version.js @@ -8,7 +8,7 @@ /** * A string containing the version of the GraphQL.js library */ -export const version = '15.0.0-rc.2'; +export const version = '15.0.0'; /** * An object containing the components of the GraphQL.js version string @@ -17,5 +17,5 @@ export const versionInfo = Object.freeze({ major: 15, minor: 0, patch: 0, - preReleaseTag: 'rc.2', + preReleaseTag: null, }); From fd3ee12e3738e7adf01a92a3ceb0d0580375668e Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Mon, 4 May 2020 18:52:05 +0300 Subject: [PATCH 08/63] Update deps (#2526) --- .eslintrc.yml | 10 +- .flowconfig | 2 +- package.json | 20 +- yarn.lock | 1255 +++++++++++++++++++++++++++++++++++-------------- 4 files changed, 921 insertions(+), 366 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index d0011cd01f9..4d59358b13a 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -442,7 +442,7 @@ overrides: flowtype/no-types-missing-file-annotation: off ########################################################################## - # `@typescript-eslint/eslint-plugin` rule list based on `v2.26.x` + # `@typescript-eslint/eslint-plugin` rule list based on `v2.30.x` ########################################################################## # Supported Rules @@ -460,6 +460,7 @@ overrides: '@typescript-eslint/explicit-member-accessibility': off # TODO consider '@typescript-eslint/explicit-module-boundary-types': off # TODO consider '@typescript-eslint/member-ordering': off # TODO consider + '@typescript-eslint/method-signature-style': off # TODO enable '@typescript-eslint/naming-convention': off # TODO consider '@typescript-eslint/no-base-to-string': error '@typescript-eslint/no-dynamic-delete': off @@ -478,6 +479,7 @@ overrides: '@typescript-eslint/no-non-null-asserted-optional-chain': error '@typescript-eslint/no-non-null-assertion': error '@typescript-eslint/no-parameter-properties': error + '@typescript-eslint/no-invalid-void-type': off # TODO enable '@typescript-eslint/no-require-imports': error '@typescript-eslint/no-this-alias': error '@typescript-eslint/no-throw-literal': error @@ -487,6 +489,7 @@ overrides: '@typescript-eslint/no-unnecessary-qualifier': error '@typescript-eslint/no-unnecessary-type-arguments': error '@typescript-eslint/no-unnecessary-type-assertion': error + '@typescript-eslint/no-unsafe-assignment': off # TODO consider '@typescript-eslint/no-unsafe-call': off # TODO consider '@typescript-eslint/no-unsafe-member-access': off # TODO consider '@typescript-eslint/no-unsafe-return': off # TODO consider @@ -501,7 +504,9 @@ overrides: '@typescript-eslint/prefer-optional-chain': error '@typescript-eslint/prefer-readonly': error '@typescript-eslint/prefer-readonly-parameter-types': off # TODO consider + '@typescript-eslint/prefer-reduce-type-parameter': error '@typescript-eslint/prefer-regexp-exec': error + '@typescript-eslint/prefer-ts-expect-error': error '@typescript-eslint/prefer-string-starts-ends-with': off # TODO switch to error after IE11 drop '@typescript-eslint/promise-function-async': off '@typescript-eslint/require-array-sort-compare': error @@ -540,6 +545,8 @@ overrides: '@typescript-eslint/return-await': error # Disable for JS, Flow and TS + '@typescript-eslint/dot-notation': off # TODO consider + '@typescript-eslint/init-declarations': off '@typescript-eslint/no-magic-numbers': off '@typescript-eslint/no-use-before-define': off @@ -550,6 +557,7 @@ overrides: '@typescript-eslint/comma-spacing': off '@typescript-eslint/func-call-spacing': off '@typescript-eslint/indent': off + '@typescript-eslint/keyword-spacing': off '@typescript-eslint/member-delimiter-style': off '@typescript-eslint/no-extra-parens': off '@typescript-eslint/no-extra-semi': off diff --git a/.flowconfig b/.flowconfig index 76267e7deb2..fb17ed2aba0 100644 --- a/.flowconfig +++ b/.flowconfig @@ -40,4 +40,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)?)\\) suppress_comment=\\(.\\|\n\\)*\\$DisableFlowOnNegativeTest [version] -^0.121.0 +^0.123.0 diff --git a/package.json b/package.json index 7ef13341feb..c8d92aa4028 100644 --- a/package.json +++ b/package.json @@ -44,24 +44,24 @@ }, "dependencies": {}, "devDependencies": { - "@babel/core": "7.9.0", + "@babel/core": "7.9.6", "@babel/plugin-transform-flow-strip-types": "7.9.0", - "@babel/preset-env": "7.9.0", + "@babel/preset-env": "7.9.6", "@babel/register": "7.9.0", - "@typescript-eslint/eslint-plugin": "2.26.0", - "@typescript-eslint/parser": "2.26.0", + "@typescript-eslint/eslint-plugin": "2.30.0", + "@typescript-eslint/parser": "2.30.0", "babel-eslint": "10.1.0", "chai": "4.2.0", - "cspell": "4.0.55", - "dtslint": "3.4.1", + "cspell": "4.0.57", + "dtslint": "3.5.1", "eslint": "6.8.0", "eslint-plugin-flowtype": "4.7.0", "eslint-plugin-graphql-internal": "link:./resources/eslint-rules", "eslint-plugin-import": "2.20.2", - "flow-bin": "0.121.0", - "mocha": "7.1.1", - "nyc": "15.0.0", - "prettier": "2.0.2", + "flow-bin": "0.123.0", + "mocha": "7.1.2", + "nyc": "15.0.1", + "prettier": "2.0.5", "typescript": "^3.8.3" } } diff --git a/yarn.lock b/yarn.lock index 94ff6b19b7c..151c7f011d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,28 +9,28 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" - integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== +"@babel/compat-data@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.6.tgz#3f604c40e420131affe6f2c8052e9a275ae2049b" + integrity sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g== dependencies: - browserslist "^4.9.1" + browserslist "^4.11.1" invariant "^2.2.4" semver "^5.5.0" -"@babel/core@7.9.0", "@babel/core@^7.7.5": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== +"@babel/core@7.9.6", "@babel/core@^7.7.5": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376" + integrity sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" + "@babel/generator" "^7.9.6" "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" + "@babel/helpers" "^7.9.6" + "@babel/parser" "^7.9.6" "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -40,12 +40,12 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" - integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== +"@babel/generator@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43" + integrity sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ== dependencies: - "@babel/types" "^7.9.0" + "@babel/types" "^7.9.6" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" @@ -65,13 +65,13 @@ "@babel/helper-explode-assignable-expression" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-compilation-targets@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" - integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== +"@babel/helper-compilation-targets@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz#1e05b7ccc9d38d2f8b40b458b380a04dcfadd38a" + integrity sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw== dependencies: - "@babel/compat-data" "^7.8.6" - browserslist "^4.9.1" + "@babel/compat-data" "^7.9.6" + browserslist "^4.11.1" invariant "^2.2.4" levenary "^1.1.1" semver "^5.5.0" @@ -102,14 +102,14 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== +"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" + integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== dependencies: "@babel/helper-get-function-arity" "^7.8.3" "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/types" "^7.9.5" "@babel/helper-get-function-arity@^7.8.3": version "7.8.3" @@ -183,14 +183,14 @@ "@babel/types" "^7.8.3" "@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444" + integrity sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA== dependencies: "@babel/helper-member-expression-to-functions" "^7.8.3" "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" "@babel/helper-simple-access@^7.8.3": version "7.8.3" @@ -207,10 +207,10 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-validator-identifier@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" - integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== +"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" + integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== "@babel/helper-wrap-function@^7.8.3": version "7.8.3" @@ -222,14 +222,14 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== +"@babel/helpers@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580" + integrity sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw== dependencies: "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" "@babel/highlight@^7.8.3": version "7.9.0" @@ -240,10 +240,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.7.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== +"@babel/parser@^7.7.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" + integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q== "@babel/plugin-proposal-async-generator-functions@^7.8.3": version "7.8.3" @@ -286,13 +286,14 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-numeric-separator" "^7.8.3" -"@babel/plugin-proposal-object-rest-spread@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f" - integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow== +"@babel/plugin-proposal-object-rest-spread@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz#7a093586fcb18b08266eb1a7177da671ac575b63" + integrity sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.9.5" "@babel/plugin-proposal-optional-catch-binding@^7.8.3": version "7.8.3" @@ -419,14 +420,14 @@ "@babel/helper-plugin-utils" "^7.8.3" lodash "^4.17.13" -"@babel/plugin-transform-classes@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d" - integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ== +"@babel/plugin-transform-classes@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" + integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== dependencies: "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.8.3" + "@babel/helper-function-name" "^7.9.5" "@babel/helper-optimise-call-expression" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.6" @@ -440,10 +441,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-destructuring@^7.8.3": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz#fadb2bc8e90ccaf5658de6f8d4d22ff6272a2f4b" - integrity sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ== +"@babel/plugin-transform-destructuring@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50" + integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" @@ -507,34 +508,34 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-amd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" - integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== +"@babel/plugin-transform-modules-amd@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz#8539ec42c153d12ea3836e0e3ac30d5aae7b258e" + integrity sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw== dependencies: "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" - integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== +"@babel/plugin-transform-modules-commonjs@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz#64b7474a4279ee588cacd1906695ca721687c277" + integrity sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ== dependencies: "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-simple-access" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" - integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== +"@babel/plugin-transform-modules-systemjs@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz#207f1461c78a231d5337a92140e52422510d81a4" + integrity sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg== dependencies: "@babel/helper-hoist-variables" "^7.8.3" "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-umd@^7.9.0": version "7.9.0" @@ -566,10 +567,10 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.3" -"@babel/plugin-transform-parameters@^7.8.7": - version "7.9.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz#3028d0cc20ddc733166c6e9c8534559cee09f54a" - integrity sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg== +"@babel/plugin-transform-parameters@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" + integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== dependencies: "@babel/helper-get-function-arity" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -640,13 +641,13 @@ "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/preset-env@7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8" - integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ== +"@babel/preset-env@7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.6.tgz#df063b276c6455ec6fcfc6e53aacc38da9b0aea6" + integrity sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ== dependencies: - "@babel/compat-data" "^7.9.0" - "@babel/helper-compilation-targets" "^7.8.7" + "@babel/compat-data" "^7.9.6" + "@babel/helper-compilation-targets" "^7.9.6" "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-proposal-async-generator-functions" "^7.8.3" @@ -654,7 +655,7 @@ "@babel/plugin-proposal-json-strings" "^7.8.3" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-proposal-numeric-separator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.0" + "@babel/plugin-proposal-object-rest-spread" "^7.9.6" "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" "@babel/plugin-proposal-optional-chaining" "^7.9.0" "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" @@ -671,9 +672,9 @@ "@babel/plugin-transform-async-to-generator" "^7.8.3" "@babel/plugin-transform-block-scoped-functions" "^7.8.3" "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.9.0" + "@babel/plugin-transform-classes" "^7.9.5" "@babel/plugin-transform-computed-properties" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.9.5" "@babel/plugin-transform-dotall-regex" "^7.8.3" "@babel/plugin-transform-duplicate-keys" "^7.8.3" "@babel/plugin-transform-exponentiation-operator" "^7.8.3" @@ -681,14 +682,14 @@ "@babel/plugin-transform-function-name" "^7.8.3" "@babel/plugin-transform-literals" "^7.8.3" "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.9.0" - "@babel/plugin-transform-modules-commonjs" "^7.9.0" - "@babel/plugin-transform-modules-systemjs" "^7.9.0" + "@babel/plugin-transform-modules-amd" "^7.9.6" + "@babel/plugin-transform-modules-commonjs" "^7.9.6" + "@babel/plugin-transform-modules-systemjs" "^7.9.6" "@babel/plugin-transform-modules-umd" "^7.9.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" "@babel/plugin-transform-new-target" "^7.8.3" "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.8.7" + "@babel/plugin-transform-parameters" "^7.9.5" "@babel/plugin-transform-property-literals" "^7.8.3" "@babel/plugin-transform-regenerator" "^7.8.7" "@babel/plugin-transform-reserved-words" "^7.8.3" @@ -699,8 +700,8 @@ "@babel/plugin-transform-typeof-symbol" "^7.8.4" "@babel/plugin-transform-unicode-regex" "^7.8.3" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.9.0" - browserslist "^4.9.1" + "@babel/types" "^7.9.6" + browserslist "^4.11.1" core-js-compat "^3.6.2" invariant "^2.2.2" levenary "^1.1.1" @@ -729,9 +730,9 @@ source-map-support "^0.5.16" "@babel/runtime@^7.8.4": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" - integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" + integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== dependencies: regenerator-runtime "^0.13.4" @@ -744,30 +745,58 @@ "@babel/parser" "^7.8.6" "@babel/types" "^7.8.6" -"@babel/traverse@^7.7.0", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" - integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== +"@babel/traverse@^7.7.0", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" + integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-function-name" "^7.8.3" + "@babel/generator" "^7.9.6" + "@babel/helper-function-name" "^7.9.5" "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.0" + "@babel/parser" "^7.9.6" + "@babel/types" "^7.9.6" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" - integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== +"@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" + integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA== dependencies: - "@babel/helper-validator-identifier" "^7.9.0" + "@babel/helper-validator-identifier" "^7.9.5" lodash "^4.17.13" to-fast-properties "^2.0.0" +"@definitelytyped/header-parser@0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@definitelytyped/header-parser/-/header-parser-0.0.29.tgz#81e72279f16ffb7d2c5b2ae7a19982b40544b52d" + integrity sha512-d6FgX8LhSY75fa6cpjsTkLsbFuRKxT4k9EV2oc38wznndlkaWLjP9FW1GT24AMg5hkRuA9AJUbKRO1QhSqvSpA== + dependencies: + "@definitelytyped/typescript-versions" "^0.0.29" + "@types/parsimmon" "^1.10.1" + parsimmon "^1.13.0" + +"@definitelytyped/typescript-versions@0.0.29", "@definitelytyped/typescript-versions@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@definitelytyped/typescript-versions/-/typescript-versions-0.0.29.tgz#1f1a3bb35e2a8d31ce83763481f6e5530f0f92a0" + integrity sha512-jMWqu0U5MiEVuTBtAbLwxKoF1ZWzbrcFrmX6nuzPzwxNHzUJlACq9RnIH93//bU7JOxkW6UrZy/8V8W5jxmiFA== + +"@definitelytyped/utils@0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@definitelytyped/utils/-/utils-0.0.29.tgz#dfa642cbec49e6f44789083ff24c182e0da0fb0b" + integrity sha512-cqUjvXijj9PgEbVH+DwS5kLHjB700CmeQhFjfRlxn9CeRzSUoa5D0uOdz9b5Hl4XKDQfo1A1lY04nc6z486Nqw== + dependencies: + "@definitelytyped/typescript-versions" "^0.0.29" + "@types/node" "^12.12.29" + charm "^1.0.2" + fs-extra "^8.1.0" + fstream "^1.0.12" + npm-registry-client "^8.6.0" + tar "^2.2.2" + tar-stream "1.6.2" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" @@ -798,45 +827,50 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== -"@types/parsimmon@^1.3.0": +"@types/node@^12.12.29": + version "12.12.37" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.37.tgz#cb4782d847f801fa58316da5b4801ca3a59ae790" + integrity sha512-4mXKoDptrXAwZErQHrLzpe0FN/0Wmf5JRniSVIdwUrtDf9wnmEV1teCNLBo/TwuXhkK/bVegoEn/wmb+x0AuPg== + +"@types/parsimmon@^1.10.1": version "1.10.1" resolved "https://registry.yarnpkg.com/@types/parsimmon/-/parsimmon-1.10.1.tgz#d46015ad91128fce06a1a688ab39a2516507f740" integrity sha512-MoF2IC9oGSgArJwlxdst4XsvWuoYfNUWtBw0kpnCi6K05kV+Ecl7siEeJ40tgCbI9uqEMGQL/NlPMRv6KVkY5Q== -"@typescript-eslint/eslint-plugin@2.26.0": - version "2.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.26.0.tgz#04c96560c8981421e5a9caad8394192363cc423f" - integrity sha512-4yUnLv40bzfzsXcTAtZyTjbiGUXMrcIJcIMioI22tSOyAxpdXiZ4r7YQUU8Jj6XXrLz9d5aMHPQf5JFR7h27Nw== +"@typescript-eslint/eslint-plugin@2.30.0": + version "2.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.30.0.tgz#312a37e80542a764d96e8ad88a105316cdcd7b05" + integrity sha512-PGejii0qIZ9Q40RB2jIHyUpRWs1GJuHP1pkoCiaeicfwO9z7Fx03NQzupuyzAmv+q9/gFNHu7lo1ByMXe8PNyg== dependencies: - "@typescript-eslint/experimental-utils" "2.26.0" + "@typescript-eslint/experimental-utils" "2.30.0" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@2.26.0": - version "2.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.26.0.tgz#063390c404d9980767d76274df386c0aa675d91d" - integrity sha512-RELVoH5EYd+JlGprEyojUv9HeKcZqF7nZUGSblyAw1FwOGNnmQIU8kxJ69fttQvEwCsX5D6ECJT8GTozxrDKVQ== +"@typescript-eslint/experimental-utils@2.30.0": + version "2.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.30.0.tgz#9845e868c01f3aed66472c561d4b6bac44809dd0" + integrity sha512-L3/tS9t+hAHksy8xuorhOzhdefN0ERPDWmR9CclsIGOUqGKy6tqc/P+SoXeJRye5gazkuPO0cK9MQRnolykzkA== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.26.0" + "@typescript-eslint/typescript-estree" "2.30.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@2.26.0": - version "2.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.26.0.tgz#385463615818b33acb72a25b39c03579df93d76f" - integrity sha512-+Xj5fucDtdKEVGSh9353wcnseMRkPpEAOY96EEenN7kJVrLqy/EVwtIh3mxcUz8lsFXW1mT5nN5vvEam/a5HiQ== +"@typescript-eslint/parser@2.30.0": + version "2.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.30.0.tgz#7681c305a6f4341ae2579f5e3a75846c29eee9ce" + integrity sha512-9kDOxzp0K85UnpmPJqUzdWaCNorYYgk1yZmf4IKzpeTlSAclnFsrLjfwD9mQExctLoLoGAUXq1co+fbr+3HeFw== dependencies: "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.26.0" - "@typescript-eslint/typescript-estree" "2.26.0" + "@typescript-eslint/experimental-utils" "2.30.0" + "@typescript-eslint/typescript-estree" "2.30.0" eslint-visitor-keys "^1.1.0" -"@typescript-eslint/typescript-estree@2.26.0": - version "2.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.26.0.tgz#d8132cf1ee8a72234f996519a47d8a9118b57d56" - integrity sha512-3x4SyZCLB4zsKsjuhxDLeVJN6W29VwBnYpCsZ7vIdPel9ZqLfIZJgJXO47MNUkurGpQuIBALdPQKtsSnWpE1Yg== +"@typescript-eslint/typescript-estree@2.30.0": + version "2.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.30.0.tgz#1b8e848b55144270255ffbfe4c63291f8f766615" + integrity sha512-nI5WOechrA0qAhnr+DzqwmqHsx7Ulr/+0H7bWCcClDhhWkSyZR5BmTvnBEyONwJCTWHfc5PAQExX24VD26IAVw== dependencies: debug "^4.1.1" eslint-visitor-keys "^1.1.0" @@ -864,10 +898,10 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.10.0, ajv@^6.10.2: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: + version "6.12.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -941,11 +975,24 @@ append-transform@^2.0.0: dependencies: default-require-extensions "^3.0.0" +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -970,6 +1017,18 @@ array.prototype.flat@^1.2.1: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" @@ -980,6 +1039,21 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" + integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== + babel-code-frame@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -1001,10 +1075,10 @@ babel-eslint@10.1.0: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== +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" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: object.assign "^4.1.0" @@ -1013,11 +1087,33 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + binary-extensions@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== +bl@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" + integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= + dependencies: + inherits "~2.0.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1038,16 +1134,34 @@ browser-stdout@1.3.1: resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserslist@^4.8.3, browserslist@^4.9.1: - version "4.11.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b" - integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g== +browserslist@^4.11.1, browserslist@^4.8.5: + version "4.12.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" + integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== dependencies: - caniuse-lite "^1.0.30001038" - electron-to-chromium "^1.3.390" + caniuse-lite "^1.0.30001043" + electron-to-chromium "^1.3.413" node-releases "^1.1.53" pkg-up "^2.0.0" +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -1058,6 +1172,11 @@ builtin-modules@^1.1.1: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + caching-transform@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" @@ -1078,10 +1197,15 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001038: - version "1.0.30001038" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz#44da3cbca2ab6cb6aa83d1be5d324e17f141caff" - integrity sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ== +caniuse-lite@^1.0.30001043: + version "1.0.30001050" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001050.tgz#11218af4b6b85dc1089536f31e10e3181e849e71" + integrity sha512-OvGZqalCwmapci76ISq5q4kuAskb1ebqF3FEQBv1LE1kWht0pojlDDqzFlmk5jgYkuZN7MNZ1n+ULwe/7MaDNQ== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= chai@4.2.0: version "4.2.0" @@ -1128,6 +1252,13 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +charm@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/charm/-/charm-1.0.2.tgz#8add367153a6d9a581331052c4090991da995e35" + integrity sha1-it02cVOm2aWBMxBSxAkJkdqZXjU= + dependencies: + inherits "^2.0.1" + check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" @@ -1161,9 +1292,9 @@ cli-cursor@^3.1.0: restore-cursor "^3.1.0" cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== cliui@^4.0.0: version "4.1.0" @@ -1221,10 +1352,17 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + command-exists@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.8.tgz#715acefdd1223b9c9b37110a149c6392c2852291" - integrity sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw== + version "1.2.9" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== commander@^2.12.1, commander@^2.20.3: version "2.20.3" @@ -1248,6 +1386,16 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +concat-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + configstore@^5.0.0, configstore@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" @@ -1260,6 +1408,11 @@ configstore@^5.0.0, configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" @@ -1273,13 +1426,18 @@ convert-source-map@^1.7.0: safe-buffer "~5.1.1" core-js-compat@^3.6.2: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" - integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== + 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.3" + browserslist "^4.8.5" semver "7.0.0" +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -1292,9 +1450,9 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: which "^1.2.9" cross-spawn@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" - integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" + integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" @@ -1312,10 +1470,10 @@ cspell-dict-bash@^1.0.3: dependencies: configstore "^5.0.0" -cspell-dict-companies@^1.0.20: - version "1.0.21" - resolved "https://registry.yarnpkg.com/cspell-dict-companies/-/cspell-dict-companies-1.0.21.tgz#0544ce7ed29061201d2fca9ffe6fb11bf09ec709" - integrity sha512-vHW6pA0cLIT1qUfT6c+xV1IORrmSKuraHPJ7dwdRhWwuc6Ltc7QJWloapufxWgsYUCLllmFcv6E7kzzmue66gw== +cspell-dict-companies@^1.0.21: + version "1.0.22" + resolved "https://registry.yarnpkg.com/cspell-dict-companies/-/cspell-dict-companies-1.0.22.tgz#a30983605888ce530e5c7c2ad1b2b9e33c20fcae" + integrity sha512-P7ziSCteONYjlPHFFqZTnisSEJr9h9FXTJh0t9QQIoKcaNR4wij5GiZDv4p4YubCf0z3GeJ7Uao+99RGeHakRQ== dependencies: configstore "^5.0.0" @@ -1369,9 +1527,9 @@ cspell-dict-fonts@^1.0.5: configstore "^5.0.0" cspell-dict-fullstack@^1.0.22: - version "1.0.22" - resolved "https://registry.yarnpkg.com/cspell-dict-fullstack/-/cspell-dict-fullstack-1.0.22.tgz#54122342ff408082f904c6c20e3facb36df0762c" - integrity sha512-k8Op1ltkgKnMTTo/kgkywE0htwi+3EtYrPPWk+mD9o3IFgC6yLKA89Tkrd0kEEPR3qJvC4gQJmGJns6Y25v0Zg== + version "1.0.23" + resolved "https://registry.yarnpkg.com/cspell-dict-fullstack/-/cspell-dict-fullstack-1.0.23.tgz#c933e3987edf6e81e85bf58ca31e574ff79f9d0c" + integrity sha512-vc/aihpKVD/ML+SLVry6kDWFswW/sQfP9QHrr2ZhQLUwhj9pVMnZvx+u1cV8bhMYltWQZxrDhdAe4jrlBrxLHA== dependencies: configstore "^5.0.0" @@ -1459,44 +1617,44 @@ cspell-dict-scala@^1.0.11: dependencies: configstore "^5.0.0" -cspell-dict-software-terms@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/cspell-dict-software-terms/-/cspell-dict-software-terms-1.0.7.tgz#74f33a36b470c7344ab8bd0fb1bc4f82dcbf27c8" - integrity sha512-Fh8NmDqY+GZRrJJuFUNoIDbR9WoP9mte+nVVGK5u8vurNInOG/MgRL0O/dhDfTmrMlSyAMhlUWm+852sXietEA== +cspell-dict-software-terms@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/cspell-dict-software-terms/-/cspell-dict-software-terms-1.0.9.tgz#76d10575c6ef34bc040bad44fe95b68f862d6d96" + integrity sha512-SfnuDuT9Xae6cri/xfGqHQcgO7QBJ08LBeR+w0RIhGZSHoITiz6iCMnd3kdeQqst7c1FwkJ5s6m+zhlmQvDE9g== dependencies: configstore "^5.0.0" -cspell-dict-typescript@^1.0.3: +cspell-dict-typescript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/cspell-dict-typescript/-/cspell-dict-typescript-1.0.4.tgz#95ca26adf15c5e31cda2506e03ce7b7c18e9fbb0" integrity sha512-cniGSmTohYriEgGJ0PgcQP2GCGP+PH/0WZ2N7BTTemQr/mHTU6bKWy8DVK63YEtYPEmhZv+G2xPBgBD41QQypQ== dependencies: configstore "^5.0.0" -cspell-glob@^0.1.17: - version "0.1.17" - resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-0.1.17.tgz#e8dad6eedc23bc3e98175f2077df25e7e3212a8a" - integrity sha512-gAiKakWJbHay6cobcJnX1+XhNCFYqR7CJM5GPiEpRZ5RFXYR46fYbkVwTdg3sqbFLErJtghQj/0s5Xa0q9NJpQ== +cspell-glob@^0.1.18: + version "0.1.18" + resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-0.1.18.tgz#6762774f58d2fe176b6d9ed347a9e5862dc551a8" + integrity sha512-j7XDtSRUgHZNLcnFNI2ngTvkAlC7AI43LAuOYTCgU3+zKMdwzq6C7m/a1c9tWjnPYJiIPf+OEkE9bAhIufzk3Q== dependencies: micromatch "^4.0.2" -cspell-io@^4.0.20: - version "4.0.20" - resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-4.0.20.tgz#4aecc054852c712e96e075eb270dbbbc4482fca1" - integrity sha512-fomz1P308XgyyxaOEKdNbh82Ac4AKaz26p4JszV7YkJrGDsXMoByTQjVqdDloNN8FchogSEpLPeQoIg648exBA== +cspell-io@^4.0.21: + version "4.0.21" + resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-4.0.21.tgz#f3c051294b5229f67caa17e3b4946985ec8f39c4" + integrity sha512-dht81s3CMPQTqtYqcJ/imEbE7WoYgGR4F52Fotgvd7Kky+H8GgSBnJYLJNk/PuT2xJ/8ebhx7v464v9cD73Okw== dependencies: iconv-lite "^0.4.24" iterable-to-stream "^1.0.1" -cspell-lib@^4.1.21: - version "4.1.21" - resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-4.1.21.tgz#7321652e5bb8d5a1b0a1372d42d125dc275f4161" - integrity sha512-mcbYQRO9GeLjUU3fTrJEwD17pF/t4YlgYoEqVQkLgR0kCQ5exMFlj8II4UQHgNevx8GMJGpqQ9+fM6ZhCYKIzQ== +cspell-lib@^4.1.23: + version "4.1.23" + resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-4.1.23.tgz#8d74bcb14f604c9d8eb44ddc3d713d59c331ab42" + integrity sha512-UNLsOEq12xbL8o4SWGsDl1xAwyR8BUlGkwI3uv5Acc7noolObMXOJLp/TLE36PrMKWVmbg8s/9pnUKwrcwTC3w== dependencies: comment-json "^1.1.3" configstore "^5.0.1" cspell-dict-bash "^1.0.3" - cspell-dict-companies "^1.0.20" + cspell-dict-companies "^1.0.21" cspell-dict-cpp "^1.1.26" cspell-dict-django "^1.0.15" cspell-dict-dotnet "^1.0.14" @@ -1517,43 +1675,51 @@ cspell-lib@^4.1.21: cspell-dict-ruby "^1.0.3" cspell-dict-rust "^1.0.12" cspell-dict-scala "^1.0.11" - cspell-dict-software-terms "^1.0.6" - cspell-dict-typescript "^1.0.3" - cspell-io "^4.0.20" - cspell-trie-lib "^4.1.8" - cspell-util-bundle "^4.0.9" + cspell-dict-software-terms "^1.0.7" + cspell-dict-typescript "^1.0.4" + cspell-io "^4.0.21" + cspell-trie-lib "^4.1.9" + cspell-util-bundle "^4.0.11" fs-extra "^8.1.0" - gensequence "^3.0.3" + gensequence "^3.1.1" + minimatch "^3.0.4" vscode-uri "^2.1.1" -cspell-trie-lib@^4.1.8: - version "4.1.8" - resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-4.1.8.tgz#cc40c863c8c03920c61e5330c3acfcaf9871e40f" - integrity sha512-G0Jpybwxyl7rG3c4tzrROEVmiKAsyIjaDdnGxkzOFkl4tjcZeCh7GIVrqLyyk3VWslrWMVvmQi1/eLDccagepw== +cspell-trie-lib@^4.1.9: + version "4.1.9" + resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-4.1.9.tgz#ebf38b5affd9a35289e945c7482b112152e5102f" + integrity sha512-Qf/bnXwEwm6oRaZPvELuIva6iJfCr+4WDbcNaNZUd+J3snanMpzp+TsqHyH3p1dPxnvO8eAEnU9RWVUdbXXnfA== dependencies: - gensequence "^3.0.3" + gensequence "^3.1.1" -cspell-util-bundle@^4.0.9: - version "4.0.9" - resolved "https://registry.yarnpkg.com/cspell-util-bundle/-/cspell-util-bundle-4.0.9.tgz#9e6a7f3dcd4aef1b9c6743d33d09379cf94ecd08" - integrity sha512-+xhIGJAkPxD7aKl97S0E34B5dF+HSTSoEL6M2f6Y46tusFGc9VdhA/iIZQooZZx2RQy4WaHw/ABfsRfxtnFVLw== +cspell-util-bundle@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/cspell-util-bundle/-/cspell-util-bundle-4.0.11.tgz#838e493a33a063e2f28df0bd81bcf86c3cf15385" + integrity sha512-6AJRN0KbeTJB+IPpwKb11zFUVz2Q8Rgm4qmy/wsbhw6ICFfmgWG5Fr2OzJpZBCm8GJJg1Tjs/VZimSvCdnRj7g== -cspell@4.0.55: - version "4.0.55" - resolved "https://registry.yarnpkg.com/cspell/-/cspell-4.0.55.tgz#4295b88c9cb7b1bf7290027212913203be5f3f9d" - integrity sha512-LmBk2VNrBSXFPOpmhJalqYGdDF1x68H4wI3c7RDMRLfG/zOaFoZUEuJUYOC07tFXDosczXMu38Qt9cnEVZmrAA== +cspell@4.0.57: + version "4.0.57" + resolved "https://registry.yarnpkg.com/cspell/-/cspell-4.0.57.tgz#8323c9d198cbc6dc90bb3ce42f2e5a9585bc0f6d" + integrity sha512-iKQ6iWP4nhMiuu1PnbcVGfZ0tE/NXRqRjYA1Kq/UW35a90WLSecIq8YgJn2J48FtnfWujPzXl/U7Tj4WqleGXg== dependencies: chalk "^2.4.2" commander "^2.20.3" comment-json "^1.1.3" - cspell-glob "^0.1.17" - cspell-lib "^4.1.21" + cspell-glob "^0.1.18" + cspell-lib "^4.1.23" fs-extra "^8.1.0" - gensequence "^3.0.3" + gensequence "^3.1.1" get-stdin "^7.0.0" glob "^7.1.6" minimatch "^3.0.4" +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + debug@3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -1606,13 +1772,15 @@ define-properties@^1.1.2, define-properties@^1.1.3: dependencies: object-keys "^1.0.12" -definitelytyped-header-parser@3.9.0, definitelytyped-header-parser@^3.8.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/definitelytyped-header-parser/-/definitelytyped-header-parser-3.9.0.tgz#f992abb8e62f697ca25e1adbfd5f69ef11621644" - integrity sha512-slbwZ5h5lasB12t+9EAGYr060aCMqEXp6cwD7CoTriK40HNDYU56/XQ6S4sbjBK8ReGRMnB/uDx0elKkb4kuQA== - dependencies: - "@types/parsimmon" "^1.3.0" - parsimmon "^1.2.0" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= diff@3.5.0, diff@^3.2.0: version "3.5.0" @@ -1641,24 +1809,27 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" -dts-critic@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dts-critic/-/dts-critic-3.0.1.tgz#c4f18e08dda91456a14835b700b1f816a77ce299" - integrity sha512-3y34qsytqwEgfoUcYwxVm9Lv54Q+MPEXCOtZpwhl4TNM1SN/yjolWXz7Xw2U0BQv/rGhIdM2ONNTaAxRfQdJ6g== +dts-critic@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/dts-critic/-/dts-critic-3.1.0.tgz#bbbe707f1fb6efa08e85aeaf1ee9dd7a184dca98" + integrity sha512-cNn4SsrlnGqnqxXE0GdPORurDrr+Y8k6yy5eBpjM6lu0C80QgabU8ypq+uAQ+JYeJ/ykQVUNo9zdLQfZHvnSVQ== dependencies: + "@definitelytyped/header-parser" "0.0.29" command-exists "^1.2.8" - definitelytyped-header-parser "^3.8.2" + rimraf "^3.0.2" semver "^6.2.0" typescript "^3.7.5" yargs "^12.0.5" -dtslint@3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/dtslint/-/dtslint-3.4.1.tgz#b75c1bcd0d81f2029604f2a322aacb474cfc60ea" - integrity sha512-gIFYwlAO8vY17zGMqdJ7x2DA2swrQsKCwrtX0TUP4A36dlXjdFpj6NWMWc1HW5mYkWOkQFHwTWMOdkP6DLsrfA== +dtslint@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/dtslint/-/dtslint-3.5.1.tgz#886c1672f4654f04eee9fe359681965f39eca80c" + integrity sha512-BVR+7h/tgCKlaWjYPG8xt3iuPPOUTYCg1TBp7UK23XlS6HSeRQVHPpJRTXLmPGXBoE9zKbKesQVLtnNB5bRTCA== dependencies: - definitelytyped-header-parser "3.9.0" - dts-critic "^3.0.0" + "@definitelytyped/header-parser" "0.0.29" + "@definitelytyped/typescript-versions" "0.0.29" + "@definitelytyped/utils" "0.0.29" + dts-critic "^3.1.0" fs-extra "^6.0.1" json-stable-stringify "^1.0.1" strip-json-comments "^2.0.1" @@ -1666,10 +1837,18 @@ dtslint@3.4.1: typescript next yargs "^15.1.0" -electron-to-chromium@^1.3.390: - version "1.3.393" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.393.tgz#d13fa4cbf5065e18451c84465d22aef6aca9a911" - integrity sha512-Ko3/VdhZAaMaJBLBFqEJ+M1qMiBI8sJfPY/hSJvDrkB3Do8LJsL9tmXy4w7o9nPXif/jFaZGSlXTQWU8XVsYtg== +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +electron-to-chromium@^1.3.413: + version "1.3.427" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.427.tgz#ea43d02908a8c71f47ebb46e09de5a3cf8236f04" + integrity sha512-/rG5G7Opcw68/Yrb4qYkz07h3bESVRJjUl4X/FrKLXzoUJleKm6D7K7rTTz8V5LUWnd+BbTOyxJX2XprRqHD8A== emoji-regex@^7.0.1: version "7.0.3" @@ -1681,7 +1860,7 @@ 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== -end-of-stream@^1.1.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -1866,11 +2045,11 @@ esprima@^4.0.0: integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.2.0.tgz#a010a519c0288f2530b3404124bfb5f02e9797fe" - integrity sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q== + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== dependencies: - estraverse "^5.0.0" + estraverse "^5.1.0" esrecurse@^4.1.0: version "4.2.1" @@ -1884,10 +2063,10 @@ estraverse@^4.1.0, estraverse@^4.1.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.0.0.tgz#ac81750b482c11cca26e4b07e83ed8f75fbcdc22" - integrity sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A== +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== esutils@^2.0.2: version "2.0.3" @@ -1907,6 +2086,11 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -1916,6 +2100,16 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + fast-deep-equal@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" @@ -2013,10 +2207,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.121.0: - version "0.121.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.121.0.tgz#e206bdc3d510277f9a847920540f72c49e87c130" - integrity sha512-QYRMs+AoMLj/OTaSo9+8c3kzM/u8YgvfrInp0qzhtzC02Sc2jb3BV/QZWZGjPo+XK3twyyqXrcI3s8MuL1UQRg== +flow-bin@0.123.0: + version "0.123.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.123.0.tgz#7ba61a0b8775928cf4943ccf78eed2b1b05f7b3a" + integrity sha512-Ylcf8YDIM/KrqtxkPuq+f8O+6sdYA2Nuz5f+sWHlp539DatZz3YMcsO1EiXaf1C11HJgpT/3YGYe7xZ9/UZmvQ== foreground-child@^2.0.0: version "2.0.0" @@ -2026,11 +2220,30 @@ foreground-child@^2.0.0: cross-spawn "^7.0.0" signal-exit "^3.0.2" +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + fromentries@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.2.0.tgz#e6aa06f240d6267f913cea422075ef88b63e7897" integrity sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ== +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" @@ -2055,9 +2268,19 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" - integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +fstream@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" function-bind@^1.1.1: version "1.1.1" @@ -2069,10 +2292,24 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gensequence@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-3.0.3.tgz#5e76326bb893147e80d6f2ae495c7e9a2795f7cc" - integrity sha512-KM4L8AfWAfjIvdnBhl7erj35iBNf75pP0+8Ww3BKssVEBv95Dqu40cG62kAyVXtuLplb96wh/GUr+GhM6YG9gQ== +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gensequence@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-3.1.1.tgz#95c1afc7c0680f92942c17f2d6f83f3d26ea97af" + integrity sha512-ys3h0hiteRwmY6BsvSttPmkhC0vEQHPJduANBRtH/dlDPZ0UBIb/dXy80IcckXyuQ6LKg+PloRqvGER9IS7F7g== gensync@^1.0.0-beta.1: version "1.0.0-beta.1" @@ -2106,6 +2343,13 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + glob-parent@^5.0.0, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" @@ -2150,15 +2394,28 @@ globals@^12.1.0: type-fest "^0.8.1" graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== growl@1.10.5: version "1.10.5" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -2181,6 +2438,11 @@ has-symbols@^1.0.0, has-symbols@^1.0.1: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -2201,7 +2463,7 @@ he@1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hosted-git-info@^2.1.4: +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: version "2.8.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== @@ -2211,6 +2473,15 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -2249,7 +2520,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2351,11 +2622,6 @@ is-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - is-regex@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" @@ -2385,7 +2651,7 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" -is-typedarray@^1.0.0: +is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -2395,7 +2661,7 @@ 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== -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= @@ -2405,6 +2671,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" @@ -2461,10 +2732,10 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.1.tgz#1343217244ad637e0c3b18e7f6b746941a9b5e9a" - integrity sha512-Vm9xwCiQ8t2cNNnckyeAV0UdxKpcQUz4nMxsBvIu8n2kmPSiyb5uaF/8LpmKr+yqL/MdOXaX2Nmdo4Qyxium9Q== +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -2492,6 +2763,11 @@ js-yaml@3.13.1, js-yaml@^3.13.1, js-yaml@^3.7.0: argparse "^1.0.7" esprima "^4.0.0" +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -2514,6 +2790,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -2526,10 +2807,15 @@ json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + json5@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" - integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== + 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" @@ -2545,6 +2831,16 @@ jsonify@~0.0.0: resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" @@ -2638,9 +2934,9 @@ make-dir@^2.0.0, make-dir@^2.1.0: semver "^5.6.0" make-dir@^3.0.0, make-dir@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" - integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== + 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== dependencies: semver "^6.0.0" @@ -2668,6 +2964,18 @@ micromatch@^4.0.2: braces "^3.0.1" picomatch "^2.0.5" +mime-db@1.44.0: + 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.19: + 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" + 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" @@ -2685,24 +2993,17 @@ minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -mkdirp@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.3.tgz#5a514b7179259287952881e94410ec5465659f8c" - integrity sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg== - dependencies: - minimist "^1.2.5" - -mkdirp@^0.5.1: - version "0.5.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" - integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== +mkdirp@0.5.5, "mkdirp@>=0.5 0", mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -mocha@7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.1.1.tgz#89fbb30d09429845b1bb893a830bf5771049a441" - integrity sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA== +mocha@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.1.2.tgz#8e40d198acf91a52ace122cd7599c9ab857b29e6" + integrity sha512-o96kdRKMKI3E8U0bjnfqW4QMk12MwZ4mhdBTf+B5a1q9+aq2HRnj+3ZdJu0B/ZhJeK78MgYuv6L8d/rA5AeBJA== dependencies: ansi-colors "3.2.3" browser-stdout "1.3.1" @@ -2717,7 +3018,7 @@ mocha@7.1.1: js-yaml "3.13.1" log-symbols "3.0.0" minimatch "3.0.4" - mkdirp "0.5.3" + mkdirp "0.5.5" ms "2.1.1" node-environment-flags "1.0.6" object.assign "4.1.0" @@ -2772,7 +3073,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-preload@^0.2.0: +node-preload@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== @@ -2784,7 +3085,7 @@ node-releases@^1.1.53: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== -normalize-package-data@^2.3.2: +normalize-package-data@^2.3.2, "normalize-package-data@~1.0.1 || ^2.0.0": version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -2799,6 +3100,35 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0": + version "6.1.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" + integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== + dependencies: + hosted-git-info "^2.7.1" + osenv "^0.1.5" + semver "^5.6.0" + validate-npm-package-name "^3.0.0" + +npm-registry-client@^8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz#7f1529f91450732e89f8518e0f21459deea3e4c4" + integrity sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg== + dependencies: + concat-stream "^1.5.2" + graceful-fs "^4.1.6" + normalize-package-data "~1.0.1 || ^2.0.0" + npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + once "^1.3.3" + request "^2.74.0" + retry "^0.10.0" + safe-buffer "^5.1.1" + semver "2 >=2.2.1 || 3.x || 4 || 5" + slide "^1.1.3" + ssri "^5.2.4" + optionalDependencies: + npmlog "2 || ^3.1.0 || ^4.0.0" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -2806,15 +3136,25 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +"npmlog@2 || ^3.1.0 || ^4.0.0": + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -nyc@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.0.0.tgz#eb32db2c0f29242c2414fe46357f230121cfc162" - integrity sha512-qcLBlNCKMDVuKb7d1fpxjPR8sHeMVX0CHarXAVzrVWoFrigCkYR8xcrjfXSPi5HXM7EU78L6ywO7w1c5rZNCNg== +nyc@15.0.1: + version "15.0.1" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.0.1.tgz#bd4d5c2b17f2ec04370365a5ca1fc0ed26f9f93d" + integrity sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg== dependencies: "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" @@ -2831,10 +3171,9 @@ nyc@15.0.0: istanbul-lib-processinfo "^2.0.2" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.0" - js-yaml "^3.13.1" + istanbul-reports "^3.0.2" make-dir "^3.0.0" - node-preload "^0.2.0" + node-preload "^0.2.1" p-map "^3.0.0" process-on-spawn "^1.0.0" resolve-from "^5.0.0" @@ -2842,9 +3181,18 @@ nyc@15.0.0: signal-exit "^3.0.2" spawn-wrap "^2.0.0" test-exclude "^6.0.0" - uuid "^3.3.3" yargs "^15.0.2" +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + object-inspect@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" @@ -2883,7 +3231,7 @@ object.values@^1.1.0: function-bind "^1.1.1" has "^1.0.3" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -2909,6 +3257,11 @@ optionator@^0.8.3: type-check "~0.3.2" 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= + os-locale@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -2918,11 +3271,19 @@ os-locale@^3.0.0: lcid "^2.0.0" mem "^4.0.0" -os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= +osenv@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + 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" @@ -2946,9 +3307,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0, p-limit@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" @@ -3014,7 +3375,7 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" -parsimmon@^1.2.0: +parsimmon@^1.13.0: version "1.13.0" resolved "https://registry.yarnpkg.com/parsimmon/-/parsimmon-1.13.0.tgz#6e4ef3dbd45ed6ea6808be600ac4b9c8a44228cf" integrity sha512-5UIrOCW+gjbILkjKPgTgmq8LKf8TT3Iy7kN2VD7OtQ81facKn8B4gG1X94jWqXYZsxG2KbJhrv/Yq/5H6BQn7A== @@ -3061,6 +3422,11 @@ pathval@^1.1.0: resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + picomatch@^2.0.4, picomatch@^2.0.5: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" @@ -3116,16 +3482,21 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.2.tgz#1ba8f3eb92231e769b7fcd7cb73ae1b6b74ade08" - integrity sha512-5xJQIPT8BraI7ZnaDwSbu5zLrB6vvi8hVV58yHQ+QK64qrY40dULy0HSRlQ2/2IdzeBpjhDkqdcFBnFeDEMVdg== +prettier@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" + integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== +process-nextick-args@~2.0.0: + version "2.0.1" + 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-on-spawn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.0.0.tgz#95b05a23073d30a17acfdc92a440efd2baefdc93" @@ -3138,6 +3509,11 @@ progress@^2.0.0: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -3146,11 +3522,16 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0: +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== +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" @@ -3168,6 +3549,19 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" +readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5: + 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== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readdirp@~3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" @@ -3206,9 +3600,9 @@ regexpp@^2.0.1: integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== regexpp@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" - integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== + 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" @@ -3241,6 +3635,32 @@ release-zalgo@^1.0.0: dependencies: es6-error "^4.0.1" +request@^2.74.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -3267,9 +3687,9 @@ resolve-from@^5.0.0: integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" @@ -3281,6 +3701,18 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + +rimraf@2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -3288,7 +3720,7 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^3.0.0: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -3296,30 +3728,33 @@ rimraf@^3.0.0: glob "^7.1.3" run-async@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" - integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== - dependencies: - is-promise "^2.1.0" + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== rxjs@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" - integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== + version "6.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" + integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== dependencies: tslib "^1.9.0" -safe-buffer@~5.1.1: +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, 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== -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: +"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -3334,7 +3769,7 @@ semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -set-blocking@^2.0.0: +set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -3377,10 +3812,15 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" +slide@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + 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== + 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== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -3416,9 +3856,9 @@ spdx-correct@^3.0.0: spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: version "3.0.0" @@ -3438,6 +3878,28 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== + dependencies: + safe-buffer "^5.1.1" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -3474,9 +3936,9 @@ string-width@^4.1.0, string-width@^4.2.0: strip-ansi "^6.0.0" string.prototype.trimend@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz#ee497fd29768646d84be2c9b819e292439614373" - integrity sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA== + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== dependencies: define-properties "^1.1.3" es-abstract "^1.17.5" @@ -3500,13 +3962,20 @@ string.prototype.trimright@^2.1.1: string.prototype.trimend "^1.0.0" string.prototype.trimstart@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz#afe596a7ce9de905496919406c9734845f01a2f2" - integrity sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w== + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== dependencies: define-properties "^1.1.3" es-abstract "^1.17.5" +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -3556,9 +4025,9 @@ strip-json-comments@2.0.1, strip-json-comments@^2.0.1: integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= strip-json-comments@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" + integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== supports-color@6.0.0: version "6.0.0" @@ -3596,6 +4065,28 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" +tar-stream@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +tar@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" + integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== + dependencies: + block-stream "*" + fstream "^1.0.12" + inherits "2" + test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -3622,6 +4113,11 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + 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" @@ -3634,6 +4130,14 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" @@ -3672,6 +4176,18 @@ tsutils@^3.17.1: dependencies: tslib "^1.8.1" +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -3701,15 +4217,20 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + typescript@^3.7.5, typescript@^3.8.3: version "3.8.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== typescript@next: - version "3.9.0-dev.20200402" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.0-dev.20200402.tgz#f09c5a7d7ef1370ad7ef46b84e2732002276107c" - integrity sha512-CxOOy4lmaPnuyG34aP1kF2l++aou/IM+T0XsEeXZWb6xbIwx+3rt1DbLNS0pQIsLxi7NITq3x4M1qXhOQOAE6A== + version "4.0.0-dev.20200504" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.0-dev.20200504.tgz#2834ad3c388d6ae43e0854fe685e6cca0e61d107" + integrity sha512-K1SWra3OBG3IMflXWznncRLWsaR7D6iWcSk4/O45r/SlXmi35bH/b5Dprl5swYtJQGh7hjplmtvGXnlDaTeQeQ== unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" @@ -3753,7 +4274,12 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -uuid@^3.3.3: +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +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== @@ -3771,6 +4297,22 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + vscode-uri@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.1.tgz#5aa1803391b6ebdd17d047f51365cf62c38f6e90" @@ -3795,7 +4337,7 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -wide-align@1.1.3: +wide-align@1.1.3, wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== @@ -3860,6 +4402,11 @@ xdg-basedir@^4.0.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + "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" @@ -3882,9 +4429,9 @@ yargs-parser@^11.1.1: decamelize "^1.2.0" yargs-parser@^18.1.1: - version "18.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1" - integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ== + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" From 685548f447b798c6b20af7a0fd940a850b0bf290 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Mon, 4 May 2020 18:57:36 +0300 Subject: [PATCH 09/63] Enable '@typescript-eslint/method-signature-style' lint rule (#2527) --- .eslintrc.yml | 2 +- src/type/definition.d.ts | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 4d59358b13a..26acef35dcc 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -460,7 +460,7 @@ overrides: '@typescript-eslint/explicit-member-accessibility': off # TODO consider '@typescript-eslint/explicit-module-boundary-types': off # TODO consider '@typescript-eslint/member-ordering': off # TODO consider - '@typescript-eslint/method-signature-style': off # TODO enable + '@typescript-eslint/method-signature-style': error '@typescript-eslint/naming-convention': off # TODO consider '@typescript-eslint/no-base-to-string': error '@typescript-eslint/no-dynamic-delete': off diff --git a/src/type/definition.d.ts b/src/type/definition.d.ts index 530a01a7e70..c870a1d1834 100644 --- a/src/type/definition.d.ts +++ b/src/type/definition.d.ts @@ -172,9 +172,9 @@ export function assertAbstractType(type: any): GraphQLAbstractType; */ interface GraphQLList { readonly ofType: T; - toString(): string; - toJSON(): string; - inspect(): string; + toString: () => string; + toJSON: () => string; + inspect: () => string; } interface _GraphQLList { @@ -206,9 +206,9 @@ export const GraphQLList: _GraphQLList; */ interface GraphQLNonNull { readonly ofType: T; - toString(): string; - toJSON(): string; - inspect(): string; + toString: () => string; + toJSON: () => string; + inspect: () => string; } interface _GraphQLNonNull { From 6dc399dbdd63aa7841da95a20a8e9da905b60e43 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Tue, 5 May 2020 01:06:00 +0300 Subject: [PATCH 10/63] Enable '@typescript-eslint/no-invalid-void-type' lint rule (#2528) --- .eslintrc.yml | 2 +- src/type/definition.d.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 26acef35dcc..92903b34367 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -479,7 +479,7 @@ overrides: '@typescript-eslint/no-non-null-asserted-optional-chain': error '@typescript-eslint/no-non-null-assertion': error '@typescript-eslint/no-parameter-properties': error - '@typescript-eslint/no-invalid-void-type': off # TODO enable + '@typescript-eslint/no-invalid-void-type': error '@typescript-eslint/no-require-imports': error '@typescript-eslint/no-this-alias': error '@typescript-eslint/no-throw-literal': error diff --git a/src/type/definition.d.ts b/src/type/definition.d.ts index c870a1d1834..87e6c897021 100644 --- a/src/type/definition.d.ts +++ b/src/type/definition.d.ts @@ -240,7 +240,7 @@ export function isNullableType(type: any): type is GraphQLNullableType; export function assertNullableType(type: any): GraphQLNullableType; -export function getNullableType(type: void): undefined; +export function getNullableType(type: undefined): undefined; export function getNullableType(type: T): T; export function getNullableType( // eslint-disable-next-line @typescript-eslint/unified-signatures @@ -262,7 +262,7 @@ export function isNamedType(type: any): type is GraphQLNamedType; export function assertNamedType(type: any): GraphQLNamedType; -export function getNamedType(type: void): undefined; +export function getNamedType(type: undefined): undefined; export function getNamedType(type: GraphQLType): GraphQLNamedType; /** From e2c58be2305e829caa894f6f3b291480682971cb Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Tue, 5 May 2020 01:32:44 +0300 Subject: [PATCH 11/63] Add node v14 to the test matrix (#2529) --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 45d6be80c9c..44716b9a12b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ cache: yarn # https://github.com/nodejs/Release node_js: + - '14' - '13' - '12' - '10' From ab282fe5aeaf9048e694fb191e2c3d99249e0f71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20De=20Boey?= Date: Tue, 5 May 2020 13:55:32 +0200 Subject: [PATCH 12/63] Don't deploy on forks (#2530) --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 44716b9a12b..3c6e9a3a430 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ script: | jobs: include: - stage: deploy - if: type = push AND branch = master + if: type = push AND branch = master AND fork = false script: npm run gitpublish skip_cleanup: true node_js: '12' From 6cd7f9478f0cfce9416f378be4feb33df7752939 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20De=20Boey?= Date: Wed, 6 May 2020 13:23:22 +0200 Subject: [PATCH 13/63] Remove single quotes from Node.js versions (#2531) --- .travis.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3c6e9a3a430..7b74d55c3e1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,10 +5,10 @@ cache: yarn # https://github.com/nodejs/Release node_js: - - '14' - - '13' - - '12' - - '10' + - 10 + - 12 + - 13 + - 14 script: | if [[ "$(node -pe process.version)" == v12.* ]]; then # Is latest LTS? @@ -24,7 +24,7 @@ jobs: if: type = push AND branch = master AND fork = false script: npm run gitpublish skip_cleanup: true - node_js: '12' + node_js: 12 notifications: irc: From 122b3051b4a8166f1f7bf06cfc4697d89f888806 Mon Sep 17 00:00:00 2001 From: Joseph Cheung Date: Thu, 7 May 2020 20:20:33 +0800 Subject: [PATCH 14/63] Fix #2504 access field astNode's type by optional chaining (#2513) --- src/type/validate.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/type/validate.js b/src/type/validate.js index d297005b49b..dd08a365a00 100644 --- a/src/type/validate.js +++ b/src/type/validate.js @@ -355,7 +355,7 @@ function validateTypeImplementsInterface( `Interface field ${iface.name}.${fieldName} expects type ` + `${inspect(ifaceField.type)} but ${type.name}.${fieldName} ` + `is type ${inspect(typeField.type)}.`, - [ifaceField.astNode.type, typeField.astNode.type], + [ifaceField.astNode?.type, typeField.astNode?.type], ); } @@ -382,7 +382,7 @@ function validateTypeImplementsInterface( `expects type ${inspect(ifaceArg.type)} but ` + `${type.name}.${fieldName}(${argName}:) is type ` + `${inspect(typeArg.type)}.`, - [ifaceArg.astNode.type, typeArg.astNode.type], + [ifaceArg.astNode?.type, typeArg.astNode?.type], ); } From 9d4b433dc2fb151f4b00b5e7c789d75a9fe9841e Mon Sep 17 00:00:00 2001 From: Matt Farmer Date: Thu, 7 May 2020 08:37:53 -0700 Subject: [PATCH 15/63] Add `@specifiedBy` directive (#2276) Co-Authored-By: christopher butcher --- docs/APIReference-TypeSystem.md | 1 + src/type/__tests__/definition-test.js | 23 ++++++++++ src/type/__tests__/introspection-test.js | 43 +++++++++++++++++++ src/type/definition.d.ts | 3 ++ src/type/definition.js | 12 ++++++ src/type/directives.d.ts | 5 +++ src/type/directives.js | 16 +++++++ src/type/introspection.js | 7 ++- .../__tests__/buildASTSchema-test.js | 36 +++++++++++++--- .../__tests__/buildClientSchema-test.js | 17 +++++++- src/utilities/__tests__/extendSchema-test.js | 25 +++++++++++ .../__tests__/findBreakingChanges-test.js | 7 ++- .../__tests__/getIntrospectionQuery-test.js | 12 ++++++ src/utilities/__tests__/schemaPrinter-test.js | 31 ++++++++++++- src/utilities/buildASTSchema.js | 5 +++ src/utilities/buildClientSchema.js | 1 + src/utilities/extendSchema.js | 20 +++++++++ src/utilities/getIntrospectionQuery.d.ts | 5 +++ src/utilities/getIntrospectionQuery.js | 10 +++++ src/utilities/printSchema.js | 19 +++++++- 20 files changed, 287 insertions(+), 11 deletions(-) diff --git a/docs/APIReference-TypeSystem.md b/docs/APIReference-TypeSystem.md index b777db1ad15..8efd840eb63 100644 --- a/docs/APIReference-TypeSystem.md +++ b/docs/APIReference-TypeSystem.md @@ -206,6 +206,7 @@ class GraphQLScalarType { type GraphQLScalarTypeConfig = { name: string; description?: ?string; + specifiedByUrl?: string; serialize: (value: mixed) => ?InternalType; parseValue?: (value: mixed) => ?InternalType; parseLiteral?: (valueAST: Value) => ?InternalType; diff --git a/src/type/__tests__/definition-test.js b/src/type/__tests__/definition-test.js index 25803830a20..bc26f58cb25 100644 --- a/src/type/__tests__/definition-test.js +++ b/src/type/__tests__/definition-test.js @@ -49,6 +49,16 @@ describe('Type System: Scalars', () => { expect(() => new GraphQLScalarType({ name: 'SomeScalar' })).to.not.throw(); }); + it('accepts a Scalar type defining specifiedByUrl', () => { + expect( + () => + new GraphQLScalarType({ + name: 'SomeScalar', + specifiedByUrl: 'https://example.com/foo_spec', + }), + ).not.to.throw(); + }); + it('accepts a Scalar type defining parseValue and parseLiteral', () => { expect( () => @@ -128,6 +138,19 @@ describe('Type System: Scalars', () => { 'SomeScalar must provide both "parseValue" and "parseLiteral" functions.', ); }); + + it('rejects a Scalar type defining specifiedByUrl with an incorrect type', () => { + expect( + () => + new GraphQLScalarType({ + name: 'SomeScalar', + // $DisableFlowOnNegativeTest + specifiedByUrl: {}, + }), + ).to.throw( + 'SomeScalar must provide "specifiedByUrl" as a string, but got: {}.', + ); + }); }); describe('Type System: Objects', () => { diff --git a/src/type/__tests__/introspection-test.js b/src/type/__tests__/introspection-test.js index 5c60e8a071a..1da64836c2b 100644 --- a/src/type/__tests__/introspection-test.js +++ b/src/type/__tests__/introspection-test.js @@ -30,6 +30,7 @@ describe('Introspection', () => { }); const source = getIntrospectionQuery({ descriptions: false, + specifiedByUrl: true, directiveIsRepeatable: true, }); @@ -46,6 +47,7 @@ describe('Introspection', () => { { kind: 'OBJECT', name: 'QueryRoot', + specifiedByUrl: null, fields: [ { name: 'onlyField', @@ -67,6 +69,7 @@ describe('Introspection', () => { { kind: 'SCALAR', name: 'String', + specifiedByUrl: null, fields: null, inputFields: null, interfaces: null, @@ -76,6 +79,7 @@ describe('Introspection', () => { { kind: 'SCALAR', name: 'Boolean', + specifiedByUrl: null, fields: null, inputFields: null, interfaces: null, @@ -85,6 +89,7 @@ describe('Introspection', () => { { kind: 'OBJECT', name: '__Schema', + specifiedByUrl: null, fields: [ { name: 'description', @@ -189,6 +194,7 @@ describe('Introspection', () => { { kind: 'OBJECT', name: '__Type', + specifiedByUrl: null, fields: [ { name: 'kind', @@ -227,6 +233,17 @@ describe('Introspection', () => { isDeprecated: false, deprecationReason: null, }, + { + name: 'specifiedByUrl', + args: [], + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + isDeprecated: false, + deprecationReason: null, + }, { name: 'fields', args: [ @@ -362,6 +379,7 @@ describe('Introspection', () => { { kind: 'ENUM', name: '__TypeKind', + specifiedByUrl: null, fields: null, inputFields: null, interfaces: null, @@ -412,6 +430,7 @@ describe('Introspection', () => { { kind: 'OBJECT', name: '__Field', + specifiedByUrl: null, fields: [ { name: 'name', @@ -512,6 +531,7 @@ describe('Introspection', () => { { kind: 'OBJECT', name: '__InputValue', + specifiedByUrl: null, fields: [ { name: 'name', @@ -574,6 +594,7 @@ describe('Introspection', () => { { kind: 'OBJECT', name: '__EnumValue', + specifiedByUrl: null, fields: [ { name: 'name', @@ -636,6 +657,7 @@ describe('Introspection', () => { { kind: 'OBJECT', name: '__Directive', + specifiedByUrl: null, fields: [ { name: 'name', @@ -733,6 +755,7 @@ describe('Introspection', () => { { kind: 'ENUM', name: '__DirectiveLocation', + specifiedByUrl: null, fields: null, inputFields: null, interfaces: null, @@ -893,6 +916,26 @@ describe('Introspection', () => { }, ], }, + { + name: 'specifiedBy', + isRepeatable: false, + locations: ['SCALAR'], + args: [ + { + defaultValue: null, + name: 'url', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + }, + }, + ], + }, ], }, }, diff --git a/src/type/definition.d.ts b/src/type/definition.d.ts index 87e6c897021..1af67e3f4d4 100644 --- a/src/type/definition.d.ts +++ b/src/type/definition.d.ts @@ -291,6 +291,7 @@ export type Thunk = (() => T) | T; export class GraphQLScalarType { name: string; description: Maybe; + specifiedByUrl: Maybe; serialize: GraphQLScalarSerializer; parseValue: GraphQLScalarValueParser; parseLiteral: GraphQLScalarLiteralParser; @@ -301,6 +302,7 @@ export class GraphQLScalarType { constructor(config: Readonly>); toConfig(): GraphQLScalarTypeConfig & { + specifiedByUrl: Maybe; serialize: GraphQLScalarSerializer; parseValue: GraphQLScalarValueParser; parseLiteral: GraphQLScalarLiteralParser; @@ -327,6 +329,7 @@ export type GraphQLScalarLiteralParser = ( export interface GraphQLScalarTypeConfig { name: string; description?: Maybe; + specifiedByUrl?: Maybe; // Serializes an internal value to include in a response. serialize: GraphQLScalarSerializer; // Parses an externally provided value to use as an input. diff --git a/src/type/definition.js b/src/type/definition.js index 16cd2de08ec..4cec43717c4 100644 --- a/src/type/definition.js +++ b/src/type/definition.js @@ -568,6 +568,7 @@ function undefineIfEmpty(arr: ?$ReadOnlyArray): ?$ReadOnlyArray { export class GraphQLScalarType { name: string; description: ?string; + specifiedByUrl: ?string; serialize: GraphQLScalarSerializer; parseValue: GraphQLScalarValueParser; parseLiteral: GraphQLScalarLiteralParser; @@ -579,6 +580,7 @@ export class GraphQLScalarType { const parseValue = config.parseValue ?? identityFunc; this.name = config.name; this.description = config.description; + this.specifiedByUrl = config.specifiedByUrl; this.serialize = config.serialize ?? identityFunc; this.parseValue = parseValue; this.parseLiteral = @@ -588,6 +590,14 @@ export class GraphQLScalarType { this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes); devAssert(typeof config.name === 'string', 'Must provide name.'); + + devAssert( + config.specifiedByUrl == null || + typeof config.specifiedByUrl === 'string', + `${this.name} must provide "specifiedByUrl" as a string, ` + + `but got: ${inspect(config.specifiedByUrl)}.`, + ); + devAssert( config.serialize == null || typeof config.serialize === 'function', `${this.name} must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.`, @@ -613,6 +623,7 @@ export class GraphQLScalarType { return { name: this.name, description: this.description, + specifiedByUrl: this.specifiedByUrl, serialize: this.serialize, parseValue: this.parseValue, parseLiteral: this.parseLiteral, @@ -650,6 +661,7 @@ export type GraphQLScalarLiteralParser = ( export type GraphQLScalarTypeConfig = {| name: string, description?: ?string, + specifiedByUrl?: ?string, // Serializes an internal value to include in a response. serialize?: GraphQLScalarSerializer, // Parses an externally provided value to use as an input. diff --git a/src/type/directives.d.ts b/src/type/directives.d.ts index 8865cdcc6be..4c6801485d5 100644 --- a/src/type/directives.d.ts +++ b/src/type/directives.d.ts @@ -59,6 +59,11 @@ export const GraphQLIncludeDirective: GraphQLDirective; */ export const GraphQLSkipDirective: GraphQLDirective; +/** + * Used to provide a URL for specifying the behavior of custom scalar definitions. + */ +export const GraphQLSpecifiedByDirective: GraphQLDirective; + /** * Constant string used for default reason for a deprecation. */ diff --git a/src/type/directives.js b/src/type/directives.js index d3ed6fdae99..70b9a3ca6bc 100644 --- a/src/type/directives.js +++ b/src/type/directives.js @@ -192,6 +192,21 @@ export const GraphQLDeprecatedDirective = new GraphQLDirective({ }, }); +/** + * Used to provide a URL for specifying the behaviour of custom scalar definitions. + */ +export const GraphQLSpecifiedByDirective = new GraphQLDirective({ + name: 'specifiedBy', + description: 'Exposes a URL that specifies the behaviour of this scalar.', + locations: [DirectiveLocation.SCALAR], + args: { + url: { + type: GraphQLNonNull(GraphQLString), + description: 'The URL that specifies the behaviour of this scalar.', + }, + }, +}); + /** * The full list of specified directives. */ @@ -199,6 +214,7 @@ export const specifiedDirectives = Object.freeze([ GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective, + GraphQLSpecifiedByDirective, ]); export function isSpecifiedDirective( diff --git a/src/type/introspection.js b/src/type/introspection.js index 62f53325c5a..6ef4b0137c4 100644 --- a/src/type/introspection.js +++ b/src/type/introspection.js @@ -195,7 +195,7 @@ export const __DirectiveLocation = new GraphQLEnumType({ export const __Type = new GraphQLObjectType({ name: '__Type', description: - 'The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.', + 'The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByUrl`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.', fields: () => ({ kind: { @@ -239,6 +239,11 @@ export const __Type = new GraphQLObjectType({ resolve: (type) => type.description !== undefined ? type.description : undefined, }, + specifiedByUrl: { + type: GraphQLString, + resolve: (obj) => + obj.specifiedByUrl !== undefined ? obj.specifiedByUrl : undefined, + }, fields: { type: GraphQLList(GraphQLNonNull(__Field)), args: { diff --git a/src/utilities/__tests__/buildASTSchema-test.js b/src/utilities/__tests__/buildASTSchema-test.js index 2238294e141..753ff73ead9 100644 --- a/src/utilities/__tests__/buildASTSchema-test.js +++ b/src/utilities/__tests__/buildASTSchema-test.js @@ -17,6 +17,7 @@ import { GraphQLSkipDirective, GraphQLIncludeDirective, GraphQLDeprecatedDirective, + GraphQLSpecifiedByDirective, } from '../../type/directives'; import { GraphQLID, @@ -215,15 +216,18 @@ describe('Schema Builder', () => { expect(cycleSDL(sdl, { commentDescriptions: true })).to.equal(sdl); }); - it('Maintains @skip & @include', () => { + it('Maintains @include, @skip & @specifiedBy', () => { const schema = buildSchema('type Query'); - expect(schema.getDirectives()).to.have.lengthOf(3); + expect(schema.getDirectives()).to.have.lengthOf(4); expect(schema.getDirective('skip')).to.equal(GraphQLSkipDirective); expect(schema.getDirective('include')).to.equal(GraphQLIncludeDirective); expect(schema.getDirective('deprecated')).to.equal( GraphQLDeprecatedDirective, ); + expect(schema.getDirective('specifiedBy')).to.equal( + GraphQLSpecifiedByDirective, + ); }); it('Overriding directives excludes specified', () => { @@ -231,9 +235,10 @@ describe('Schema Builder', () => { directive @skip on FIELD directive @include on FIELD directive @deprecated on FIELD_DEFINITION + directive @specifiedBy on FIELD_DEFINITION `); - expect(schema.getDirectives()).to.have.lengthOf(3); + expect(schema.getDirectives()).to.have.lengthOf(4); expect(schema.getDirective('skip')).to.not.equal(GraphQLSkipDirective); expect(schema.getDirective('include')).to.not.equal( GraphQLIncludeDirective, @@ -241,17 +246,21 @@ describe('Schema Builder', () => { expect(schema.getDirective('deprecated')).to.not.equal( GraphQLDeprecatedDirective, ); + expect(schema.getDirective('specifiedBy')).to.not.equal( + GraphQLSpecifiedByDirective, + ); }); - it('Adding directives maintains @skip & @include', () => { + it('Adding directives maintains @include, @skip & @specifiedBy', () => { const schema = buildSchema(` directive @foo(arg: Int) on FIELD `); - expect(schema.getDirectives()).to.have.lengthOf(4); + expect(schema.getDirectives()).to.have.lengthOf(5); expect(schema.getDirective('skip')).to.not.equal(undefined); expect(schema.getDirective('include')).to.not.equal(undefined); expect(schema.getDirective('deprecated')).to.not.equal(undefined); + expect(schema.getDirective('specifiedBy')).to.not.equal(undefined); }); it('Type modifiers', () => { @@ -770,6 +779,23 @@ describe('Schema Builder', () => { }); }); + it('Supports @specifiedBy', () => { + const sdl = dedent` + scalar Foo @specifiedBy(url: "https://example.com/foo_spec") + + type Query { + foo: Foo @deprecated + } + `; + expect(cycleSDL(sdl)).to.equal(sdl); + + const schema = buildSchema(sdl); + + expect(schema.getType('Foo')).to.include({ + specifiedByUrl: 'https://example.com/foo_spec', + }); + }); + it('Correctly extend scalar type', () => { const scalarSDL = dedent` scalar SomeScalar diff --git a/src/utilities/__tests__/buildClientSchema-test.js b/src/utilities/__tests__/buildClientSchema-test.js index 3cc63ebfe9e..85a7b1ca66f 100644 --- a/src/utilities/__tests__/buildClientSchema-test.js +++ b/src/utilities/__tests__/buildClientSchema-test.js @@ -33,7 +33,10 @@ import { introspectionFromSchema } from '../introspectionFromSchema'; * returns that schema printed as SDL. */ function cycleIntrospection(sdlString: string): string { - const options = { directiveIsRepeatable: true }; + const options = { + specifiedByUrl: true, + directiveIsRepeatable: true, + }; const serverSchema = buildSchema(sdlString); const initialIntrospection = introspectionFromSchema(serverSchema, options); @@ -533,6 +536,18 @@ describe('Type System: build schema from introspection', () => { expect(cycleIntrospection(sdl)).to.equal(sdl); }); + it('builds a schema with specifiedBy url', () => { + const sdl = dedent` + scalar Foo @specifiedBy(url: "https://example.com/foo_spec") + + type Query { + foo: Foo + } + `; + + expect(cycleIntrospection(sdl)).to.equal(sdl); + }); + it('can use client schema for limited execution', () => { const schema = buildSchema(` scalar CustomScalar diff --git a/src/utilities/__tests__/extendSchema-test.js b/src/utilities/__tests__/extendSchema-test.js index 5f52ec5bdac..527c2a67e27 100644 --- a/src/utilities/__tests__/extendSchema-test.js +++ b/src/utilities/__tests__/extendSchema-test.js @@ -359,6 +359,31 @@ describe('extendSchema', () => { expect(printExtensionNodes(someScalar)).to.deep.equal(extensionSDL); }); + it('extends scalars by adding specifiedBy directive', () => { + const schema = buildSchema(` + type Query { + foo: Foo + } + + scalar Foo + + directive @foo on SCALAR + `); + const extensionSDL = dedent` + extend scalar Foo @foo + + extend scalar Foo @specifiedBy(url: "https://example.com/foo_spec") + `; + + const extendedSchema = extendSchema(schema, parse(extensionSDL)); + const foo = assertScalarType(extendedSchema.getType('Foo')); + + expect(foo.specifiedByUrl).to.equal('https://example.com/foo_spec'); + + expect(validateSchema(extendedSchema)).to.deep.equal([]); + expect(printExtensionNodes(foo)).to.deep.equal(extensionSDL); + }); + it('correctly assign AST nodes to new and extended types', () => { const schema = buildSchema(` type Query diff --git a/src/utilities/__tests__/findBreakingChanges-test.js b/src/utilities/__tests__/findBreakingChanges-test.js index 7246f8b413f..1c5aad92a2e 100644 --- a/src/utilities/__tests__/findBreakingChanges-test.js +++ b/src/utilities/__tests__/findBreakingChanges-test.js @@ -7,6 +7,7 @@ import { GraphQLSchema } from '../../type/schema'; import { GraphQLSkipDirective, GraphQLIncludeDirective, + GraphQLSpecifiedByDirective, GraphQLDeprecatedDirective, } from '../../type/directives'; @@ -799,7 +800,11 @@ describe('findBreakingChanges', () => { const oldSchema = new GraphQLSchema({}); const newSchema = new GraphQLSchema({ - directives: [GraphQLSkipDirective, GraphQLIncludeDirective], + directives: [ + GraphQLSkipDirective, + GraphQLIncludeDirective, + GraphQLSpecifiedByDirective, + ], }); expect(findBreakingChanges(oldSchema, newSchema)).to.deep.equal([ diff --git a/src/utilities/__tests__/getIntrospectionQuery-test.js b/src/utilities/__tests__/getIntrospectionQuery-test.js index e25a906e190..462d683acfa 100644 --- a/src/utilities/__tests__/getIntrospectionQuery-test.js +++ b/src/utilities/__tests__/getIntrospectionQuery-test.js @@ -51,4 +51,16 @@ describe('getIntrospectionQuery', () => { getIntrospectionQuery({ descriptions: false, schemaDescription: true }), ).to.not.match(/\bdescription\b/); }); + + it('include "specifiedByUrl" field', () => { + expect(getIntrospectionQuery()).to.not.match(/\bspecifiedByUrl\b/); + + expect(getIntrospectionQuery({ specifiedByUrl: true })).to.match( + /\bspecifiedByUrl\b/, + ); + + expect(getIntrospectionQuery({ specifiedByUrl: false })).to.not.match( + /\bspecifiedByUrl\b/, + ); + }); }); diff --git a/src/utilities/__tests__/schemaPrinter-test.js b/src/utilities/__tests__/schemaPrinter-test.js index ebfe7f7ff95..db1efddff5f 100644 --- a/src/utilities/__tests__/schemaPrinter-test.js +++ b/src/utilities/__tests__/schemaPrinter-test.js @@ -505,6 +505,19 @@ describe('Type System Printer', () => { `); }); + it('Custom Scalar with specifiedByUrl', () => { + const FooType = new GraphQLScalarType({ + name: 'Foo', + specifiedByUrl: 'https://example.com/foo_spec', + }); + + const Schema = new GraphQLSchema({ types: [FooType] }); + const output = printForTest(Schema); + expect(output).to.equal(dedent` + scalar Foo @specifiedBy(url: "https://example.com/foo_spec") + `); + }); + it('Enum', () => { const RGBType = new GraphQLEnumType({ name: 'RGB', @@ -639,6 +652,12 @@ describe('Type System Printer', () => { reason: String = "No longer supported" ) on FIELD_DEFINITION | ENUM_VALUE + """Exposes a URL that specifies the behaviour of this scalar.""" + directive @specifiedBy( + """The URL that specifies the behaviour of this scalar.""" + url: String! + ) on SCALAR + """ A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations. """ @@ -668,12 +687,13 @@ describe('Type System Printer', () => { """ The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the \`__TypeKind\` enum. - Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional \`specifiedByUrl\`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. """ type __Type { kind: __TypeKind! name: String description: String + specifiedByUrl: String fields(includeDeprecated: Boolean = false): [__Field!] interfaces: [__Type!] possibleTypes: [__Type!] @@ -853,6 +873,12 @@ describe('Type System Printer', () => { reason: String = "No longer supported" ) on FIELD_DEFINITION | ENUM_VALUE + # Exposes a URL that specifies the behaviour of this scalar. + directive @specifiedBy( + # The URL that specifies the behaviour of this scalar. + url: String! + ) on SCALAR + # A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations. type __Schema { description: String @@ -875,11 +901,12 @@ describe('Type System Printer', () => { # The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the \`__TypeKind\` enum. # - # Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + # Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional \`specifiedByUrl\`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. type __Type { kind: __TypeKind! name: String description: String + specifiedByUrl: String fields(includeDeprecated: Boolean = false): [__Field!] interfaces: [__Type!] possibleTypes: [__Type!] diff --git a/src/utilities/buildASTSchema.js b/src/utilities/buildASTSchema.js index 7893071779b..5299fc53a38 100644 --- a/src/utilities/buildASTSchema.js +++ b/src/utilities/buildASTSchema.js @@ -17,6 +17,7 @@ import { GraphQLSkipDirective, GraphQLIncludeDirective, GraphQLDeprecatedDirective, + GraphQLSpecifiedByDirective, } from '../type/directives'; import { extendSchemaImpl } from './extendSchema'; @@ -106,6 +107,10 @@ export function buildASTSchema( directives.push(GraphQLDeprecatedDirective); } + if (!directives.some((directive) => directive.name === 'specifiedBy')) { + directives.push(GraphQLSpecifiedByDirective); + } + return new GraphQLSchema(config); } diff --git a/src/utilities/buildClientSchema.js b/src/utilities/buildClientSchema.js index f1b52c80f01..0424567e6ef 100644 --- a/src/utilities/buildClientSchema.js +++ b/src/utilities/buildClientSchema.js @@ -200,6 +200,7 @@ export function buildClientSchema( return new GraphQLScalarType({ name: scalarIntrospection.name, description: scalarIntrospection.description, + specifiedByUrl: scalarIntrospection.specifiedByUrl, }); } diff --git a/src/utilities/extendSchema.js b/src/utilities/extendSchema.js index f10195854b4..82659733870 100644 --- a/src/utilities/extendSchema.js +++ b/src/utilities/extendSchema.js @@ -39,6 +39,8 @@ import { type EnumTypeExtensionNode, type EnumValueDefinitionNode, type DirectiveDefinitionNode, + type ScalarTypeDefinitionNode, + type ScalarTypeExtensionNode, } from '../language/ast'; import { assertValidSDLExtension } from '../validation/validate'; @@ -50,6 +52,7 @@ import { introspectionTypes, isIntrospectionType } from '../type/introspection'; import { GraphQLDirective, GraphQLDeprecatedDirective, + GraphQLSpecifiedByDirective, } from '../type/directives'; import { type GraphQLSchemaValidationOptions, @@ -324,8 +327,14 @@ export function extendSchemaImpl( const config = type.toConfig(); const extensions = typeExtensionsMap[config.name] ?? []; + let specifiedByUrl = config.specifiedByUrl; + for (const extensionNode of extensions) { + specifiedByUrl = getSpecifiedByUrl(extensionNode) ?? specifiedByUrl; + } + return new GraphQLScalarType({ ...config, + specifiedByUrl, extensionASTNodes: config.extensionASTNodes.concat(extensions), }); } @@ -658,6 +667,7 @@ export function extendSchemaImpl( return new GraphQLScalarType({ name, description, + specifiedByUrl: getSpecifiedByUrl(astNode), astNode, extensionASTNodes, }); @@ -700,6 +710,16 @@ function getDeprecationReason( return (deprecated?.reason: any); } +/** + * Given a scalar node, returns the string value for the specifiedByUrl. + */ +function getSpecifiedByUrl( + node: ScalarTypeDefinitionNode | ScalarTypeExtensionNode, +): ?string { + const specifiedBy = getDirectiveValues(GraphQLSpecifiedByDirective, node); + return (specifiedBy?.url: any); +} + /** * Given an ast node, returns its string description. * @deprecated: provided to ease adoption and will be removed in v16. diff --git a/src/utilities/getIntrospectionQuery.d.ts b/src/utilities/getIntrospectionQuery.d.ts index ece6b71db4f..b1d5ecc1744 100644 --- a/src/utilities/getIntrospectionQuery.d.ts +++ b/src/utilities/getIntrospectionQuery.d.ts @@ -6,6 +6,10 @@ export interface IntrospectionOptions { // Default: true descriptions: boolean; + // Whether to include `specifiedByUrl` in the introspection result. + // Default: false + specifiedByUrl?: boolean; + // Whether to include `isRepeatable` flag on directives. // Default: false directiveIsRepeatable?: boolean; @@ -53,6 +57,7 @@ export interface IntrospectionScalarType { readonly kind: 'SCALAR'; readonly name: string; readonly description?: Maybe; + readonly specifiedByUrl?: Maybe; } export interface IntrospectionObjectType { diff --git a/src/utilities/getIntrospectionQuery.js b/src/utilities/getIntrospectionQuery.js index 8f79aace3b1..51e94cd9a18 100644 --- a/src/utilities/getIntrospectionQuery.js +++ b/src/utilities/getIntrospectionQuery.js @@ -7,6 +7,10 @@ export type IntrospectionOptions = {| // Default: true descriptions?: boolean, + // Whether to include `specifiedByUrl` in the introspection result. + // Default: false + specifiedByUrl?: boolean, + // Whether to include `isRepeatable` field on directives. // Default: false directiveIsRepeatable?: boolean, @@ -19,12 +23,16 @@ export type IntrospectionOptions = {| export function getIntrospectionQuery(options?: IntrospectionOptions): string { const optionsWithDefault = { descriptions: true, + specifiedByUrl: false, directiveIsRepeatable: false, schemaDescription: false, ...options, }; const descriptions = optionsWithDefault.descriptions ? 'description' : ''; + const specifiedByUrl = optionsWithDefault.specifiedByUrl + ? 'specifiedByUrl' + : ''; const directiveIsRepeatable = optionsWithDefault.directiveIsRepeatable ? 'isRepeatable' : ''; @@ -58,6 +66,7 @@ export function getIntrospectionQuery(options?: IntrospectionOptions): string { kind name ${descriptions} + ${specifiedByUrl} fields(includeDeprecated: true) { name ${descriptions} @@ -166,6 +175,7 @@ export type IntrospectionScalarType = {| +kind: 'SCALAR', +name: string, +description?: ?string, + +specifiedByUrl: ?string, |}; export type IntrospectionObjectType = {| diff --git a/src/utilities/printSchema.js b/src/utilities/printSchema.js index fba396fb8df..e856abfea59 100644 --- a/src/utilities/printSchema.js +++ b/src/utilities/printSchema.js @@ -181,7 +181,11 @@ export function printType(type: GraphQLNamedType, options?: Options): string { } function printScalar(type: GraphQLScalarType, options): string { - return printDescription(options, type) + `scalar ${type.name}`; + return ( + printDescription(options, type) + + `scalar ${type.name}` + + printSpecifiedByUrl(type) + ); } function printImplementedInterfaces( @@ -321,6 +325,19 @@ function printDeprecated(fieldOrEnumVal) { return ' @deprecated'; } +function printSpecifiedByUrl(scalar: GraphQLScalarType) { + if (scalar.specifiedByUrl == null) { + return ''; + } + const url = scalar.specifiedByUrl; + const urlAST = astFromValue(url, GraphQLString); + invariant( + urlAST, + 'Unexpected null value returned from `astFromValue` for specifiedByUrl', + ); + return ' @specifiedBy(url: ' + print(urlAST) + ')'; +} + function printDescription( options, def, From 02d59dcb1bc5ab69077615433e4e278766e6eea1 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sat, 9 May 2020 18:54:41 +0300 Subject: [PATCH 16/63] Simplify 'getOperationTypeNode' function (#2534) --- src/type/validate.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/type/validate.js b/src/type/validate.js index dd08a365a00..7126aa96405 100644 --- a/src/type/validate.js +++ b/src/type/validate.js @@ -9,7 +9,11 @@ import inspect from '../jsutils/inspect'; import { GraphQLError } from '../error/GraphQLError'; import { locatedError } from '../error/locatedError'; -import { type ASTNode, type NamedTypeNode } from '../language/ast'; +import { + type ASTNode, + type NamedTypeNode, + type OperationTypeNode, +} from '../language/ast'; import { isValidNameError } from '../utilities/assertValidName'; import { isEqualType, isTypeSubTypeOf } from '../utilities/typeComparators'; @@ -113,7 +117,7 @@ function validateRootTypes(context) { `Query root type must be Object type, it cannot be ${inspect( queryType, )}.`, - getOperationTypeNode(schema, queryType, 'query'), + getOperationTypeNode(schema, 'query') ?? queryType.astNode, ); } @@ -122,7 +126,7 @@ function validateRootTypes(context) { context.reportError( 'Mutation root type must be Object type if provided, it cannot be ' + `${inspect(mutationType)}.`, - getOperationTypeNode(schema, mutationType, 'mutation'), + getOperationTypeNode(schema, 'mutation') ?? mutationType.astNode, ); } @@ -131,15 +135,14 @@ function validateRootTypes(context) { context.reportError( 'Subscription root type must be Object type if provided, it cannot be ' + `${inspect(subscriptionType)}.`, - getOperationTypeNode(schema, subscriptionType, 'subscription'), + getOperationTypeNode(schema, 'subscription') ?? subscriptionType.astNode, ); } } function getOperationTypeNode( schema: GraphQLSchema, - type: GraphQLObjectType, - operation: string, + operation: OperationTypeNode, ): ?ASTNode { const operationNodes = getAllSubNodes(schema, (node) => node.operationTypes); for (const node of operationNodes) { @@ -147,8 +150,7 @@ function getOperationTypeNode( return node.type; } } - - return type.astNode; + return undefined; } function validateDirectives(context: SchemaValidationContext): void { From 13ab792895c7056186fddee552d0db9776c735a3 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sun, 10 May 2020 00:35:20 +0300 Subject: [PATCH 17/63] Make 'toJSON' definition explicit (#2535) --- .eslintrc.yml | 2 +- src/jsutils/__tests__/inspect-test.js | 1 + .../{defineToJSON.js => defineInspect.js} | 11 ++-- src/language/ast.d.ts | 9 +++ src/language/ast.js | 37 +++++++----- src/type/definition.js | 58 ++++++++++++++++--- src/type/directives.js | 9 ++- 7 files changed, 96 insertions(+), 31 deletions(-) rename src/jsutils/{defineToJSON.js => defineInspect.js} (58%) diff --git a/.eslintrc.yml b/.eslintrc.yml index 92903b34367..178c98adbf7 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -201,7 +201,7 @@ rules: no-implicit-coercion: error no-implicit-globals: off no-implied-eval: error - no-invalid-this: off + no-invalid-this: error no-iterator: error no-labels: error no-lone-blocks: error diff --git a/src/jsutils/__tests__/inspect-test.js b/src/jsutils/__tests__/inspect-test.js index f85cfb47b90..e72b5ffb255 100644 --- a/src/jsutils/__tests__/inspect-test.js +++ b/src/jsutils/__tests__/inspect-test.js @@ -186,6 +186,7 @@ describe('inspect', () => { expect(inspect([[new Foo()]])).to.equal('[[[Bar]]]'); const objectWithoutClassName = new (function () { + // eslint-disable-next-line no-invalid-this this.foo = 1; })(); expect(inspect([[objectWithoutClassName]])).to.equal('[[[Object]]]'); diff --git a/src/jsutils/defineToJSON.js b/src/jsutils/defineInspect.js similarity index 58% rename from src/jsutils/defineToJSON.js rename to src/jsutils/defineInspect.js index 76d6f75ccca..5e2a11c3cbc 100644 --- a/src/jsutils/defineToJSON.js +++ b/src/jsutils/defineInspect.js @@ -1,16 +1,17 @@ // @flow strict +import invariant from './invariant'; import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol'; /** - * The `defineToJSON()` function defines toJSON() and inspect() prototype - * methods, if no function provided they become aliases for toString(). + * The `defineInspect()` function defines `inspect()` prototype method as alias of `toJSON` */ -export default function defineToJSON( +export default function defineInspect( classObject: Class | ((...args: Array) => mixed), - fn?: () => mixed = classObject.prototype.toString, ): void { - classObject.prototype.toJSON = fn; + const fn = classObject.prototype.toJSON; + invariant(typeof fn === 'function'); + classObject.prototype.inspect = fn; /* istanbul ignore else (See: https://github.com/graphql/graphql-js/issues/2317) */ diff --git a/src/language/ast.d.ts b/src/language/ast.d.ts index 576db47b6ca..889ff101b5b 100644 --- a/src/language/ast.d.ts +++ b/src/language/ast.d.ts @@ -32,6 +32,8 @@ export class Location { readonly source: Source; constructor(startToken: Token, endToken: Token, source: Source); + + toJSON(): { start: number; end: number }; } /** @@ -86,6 +88,13 @@ export class Token { prev: Token | null, value?: string, ); + + toJSON(): { + kind: TokenKindEnum; + value: string | undefined; + line: number; + column: number; + }; } /** diff --git a/src/language/ast.js b/src/language/ast.js index 8592996b474..773778ef7c5 100644 --- a/src/language/ast.js +++ b/src/language/ast.js @@ -1,6 +1,6 @@ // @flow strict -import defineToJSON from '../jsutils/defineToJSON'; +import defineInspect from '../jsutils/defineInspect'; import { type Source } from './source'; import { type TokenKindEnum } from './tokenKind'; @@ -42,12 +42,14 @@ export class Location { this.endToken = endToken; this.source = source; } + + toJSON(): {| start: number, end: number |} { + return { start: this.start, end: this.end }; + } } -// Print a simplified form when appearing in JSON/util.inspect. -defineToJSON(Location, function () { - return { start: this.start, end: this.end }; -}); +// Print a simplified form when appearing in `inspect` and `util.inspect`. +defineInspect(Location); /** * Represents a range of characters represented by a lexical token @@ -110,17 +112,24 @@ export class Token { this.prev = prev; this.next = null; } + + toJSON(): {| + kind: TokenKindEnum, + value: string | void, + line: number, + column: number, + |} { + return { + kind: this.kind, + value: this.value, + line: this.line, + column: this.column, + }; + } } -// Print a simplified form when appearing in JSON/util.inspect. -defineToJSON(Token, function () { - return { - kind: this.kind, - value: this.value, - line: this.line, - column: this.column, - }; -}); +// Print a simplified form when appearing in `inspect` and `util.inspect`. +defineInspect(Token); /** * @internal diff --git a/src/type/definition.js b/src/type/definition.js index 4cec43717c4..8c5211b08bc 100644 --- a/src/type/definition.js +++ b/src/type/definition.js @@ -17,7 +17,7 @@ import instanceOf from '../jsutils/instanceOf'; import didYouMean from '../jsutils/didYouMean'; import isObjectLike from '../jsutils/isObjectLike'; import identityFunc from '../jsutils/identityFunc'; -import defineToJSON from '../jsutils/defineToJSON'; +import defineInspect from '../jsutils/defineInspect'; import suggestionList from '../jsutils/suggestionList'; import { type PromiseOrValue } from '../jsutils/PromiseOrValue'; import { @@ -373,13 +373,18 @@ export function GraphQLList(ofType) { return '[' + String(this.ofType) + ']'; }; +(GraphQLList.prototype: any).toJSON = function toJSON() { + return this.toString(); +}; + Object.defineProperty(GraphQLList.prototype, SYMBOL_TO_STRING_TAG, { get() { return 'GraphQLList'; }, }); -defineToJSON(GraphQLList); +// Print a simplified form when appearing in `inspect` and `util.inspect`. +defineInspect(GraphQLList); /** * Non-Null Type Wrapper @@ -424,13 +429,18 @@ export function GraphQLNonNull(ofType) { return String(this.ofType) + '!'; }; +(GraphQLNonNull.prototype: any).toJSON = function toJSON() { + return this.toString(); +}; + Object.defineProperty(GraphQLNonNull.prototype, SYMBOL_TO_STRING_TAG, { get() { return 'GraphQLNonNull'; }, }); -defineToJSON(GraphQLNonNull); +// Print a simplified form when appearing in `inspect` and `util.inspect`. +defineInspect(GraphQLNonNull); /** * These types wrap and modify other types @@ -637,13 +647,18 @@ export class GraphQLScalarType { return this.name; } + toJSON(): string { + return this.toString(); + } + // $FlowFixMe Flow doesn't support computed properties yet get [SYMBOL_TO_STRING_TAG]() { return 'GraphQLScalarType'; } } -defineToJSON(GraphQLScalarType); +// Print a simplified form when appearing in `inspect` and `util.inspect`. +defineInspect(GraphQLScalarType); export type GraphQLScalarSerializer = ( outputValue: mixed, @@ -776,13 +791,18 @@ export class GraphQLObjectType { return this.name; } + toJSON(): string { + return this.toString(); + } + // $FlowFixMe Flow doesn't support computed properties yet get [SYMBOL_TO_STRING_TAG]() { return 'GraphQLObjectType'; } } -defineToJSON(GraphQLObjectType); +// Print a simplified form when appearing in `inspect` and `util.inspect`. +defineInspect(GraphQLObjectType); function defineInterfaces( config: $ReadOnly< @@ -1086,13 +1106,18 @@ export class GraphQLInterfaceType { return this.name; } + toJSON(): string { + return this.toString(); + } + // $FlowFixMe Flow doesn't support computed properties yet get [SYMBOL_TO_STRING_TAG]() { return 'GraphQLInterfaceType'; } } -defineToJSON(GraphQLInterfaceType); +// Print a simplified form when appearing in `inspect` and `util.inspect`. +defineInspect(GraphQLInterfaceType); export type GraphQLInterfaceTypeConfig = {| name: string, @@ -1188,13 +1213,18 @@ export class GraphQLUnionType { return this.name; } + toJSON(): string { + return this.toString(); + } + // $FlowFixMe Flow doesn't support computed properties yet get [SYMBOL_TO_STRING_TAG]() { return 'GraphQLUnionType'; } } -defineToJSON(GraphQLUnionType); +// Print a simplified form when appearing in `inspect` and `util.inspect`. +defineInspect(GraphQLUnionType); function defineTypes( config: $ReadOnly>, @@ -1361,13 +1391,18 @@ export class GraphQLEnumType /* */ { return this.name; } + toJSON(): string { + return this.toString(); + } + // $FlowFixMe Flow doesn't support computed properties yet get [SYMBOL_TO_STRING_TAG]() { return 'GraphQLEnumType'; } } -defineToJSON(GraphQLEnumType); +// Print a simplified form when appearing in `inspect` and `util.inspect`. +defineInspect(GraphQLEnumType); function didYouMeanEnumValue( enumType: GraphQLEnumType, @@ -1513,13 +1548,18 @@ export class GraphQLInputObjectType { return this.name; } + toJSON(): string { + return this.toString(); + } + // $FlowFixMe Flow doesn't support computed properties yet get [SYMBOL_TO_STRING_TAG]() { return 'GraphQLInputObjectType'; } } -defineToJSON(GraphQLInputObjectType); +// Print a simplified form when appearing in `inspect` and `util.inspect`. +defineInspect(GraphQLInputObjectType); function defineInputFieldMap( config: $ReadOnly, diff --git a/src/type/directives.js b/src/type/directives.js index 70b9a3ca6bc..4b52be39ba2 100644 --- a/src/type/directives.js +++ b/src/type/directives.js @@ -7,8 +7,8 @@ import inspect from '../jsutils/inspect'; import toObjMap from '../jsutils/toObjMap'; import devAssert from '../jsutils/devAssert'; import instanceOf from '../jsutils/instanceOf'; -import defineToJSON from '../jsutils/defineToJSON'; import isObjectLike from '../jsutils/isObjectLike'; +import defineInspect from '../jsutils/defineInspect'; import { type ReadOnlyObjMap, type ReadOnlyObjMapLike, @@ -112,13 +112,18 @@ export class GraphQLDirective { return '@' + this.name; } + toJSON(): string { + return this.toString(); + } + // $FlowFixMe Flow doesn't support computed properties yet get [SYMBOL_TO_STRING_TAG]() { return 'GraphQLDirective'; } } -defineToJSON(GraphQLDirective); +// Print a simplified form when appearing in `inspect` and `util.inspect`. +defineInspect(GraphQLDirective); export type GraphQLDirectiveConfig = {| name: string, From 4da21fa21c800ad91ab4a37fb07425c305610f9b Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sun, 10 May 2020 00:43:22 +0300 Subject: [PATCH 18/63] Update deps (#2536) --- .eslintrc.yml | 9 +- .flowconfig | 2 +- package.json | 12 +- .../__tests__/mapAsyncIterator-test.js | 3 - src/subscription/__tests__/subscribe-test.js | 3 - yarn.lock | 212 +++++++++--------- 6 files changed, 120 insertions(+), 121 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 178c98adbf7..f4c241e034f 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -123,7 +123,7 @@ rules: import/dynamic-import-chunkname: off ############################################################################## - # ESLint builtin rules list based on `v6.8.x` + # ESLint builtin rules list based on `v7.0.x` ############################################################################## # Possible Errors @@ -162,6 +162,7 @@ rules: no-unreachable: error no-unsafe-finally: error no-unsafe-negation: error + no-useless-backreference: error require-atomic-updates: error use-isnan: error valid-typeof: error @@ -177,6 +178,7 @@ rules: consistent-return: off curly: error default-case: off + default-case-last: error default-param-last: error dot-notation: off eqeqeq: [error, smart] @@ -344,6 +346,7 @@ rules: no-dupe-class-members: error no-duplicate-imports: error no-new-symbol: error + no-restricted-exports: off no-restricted-imports: off no-this-before-super: error no-useless-computed-key: error @@ -442,7 +445,7 @@ overrides: flowtype/no-types-missing-file-annotation: off ########################################################################## - # `@typescript-eslint/eslint-plugin` rule list based on `v2.30.x` + # `@typescript-eslint/eslint-plugin` rule list based on `v2.31.x` ########################################################################## # Supported Rules @@ -528,6 +531,7 @@ overrides: no-array-constructor: off no-dupe-class-members: off no-empty-function: off + no-invalid-this: off no-unused-expressions: off no-unused-vars: off no-useless-constructor: off @@ -537,6 +541,7 @@ overrides: '@typescript-eslint/no-dupe-class-members': error '@typescript-eslint/no-array-constructor': error '@typescript-eslint/no-empty-function': error + '@typescript-eslint/no-invalid-this': error '@typescript-eslint/no-unused-expressions': error '@typescript-eslint/no-unused-vars': [error, { vars: all, args: all, argsIgnorePattern: '^_' }] diff --git a/.flowconfig b/.flowconfig index fb17ed2aba0..93786201265 100644 --- a/.flowconfig +++ b/.flowconfig @@ -40,4 +40,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)?)\\) suppress_comment=\\(.\\|\n\\)*\\$DisableFlowOnNegativeTest [version] -^0.123.0 +^0.124.0 diff --git a/package.json b/package.json index c8d92aa4028..c371492463b 100644 --- a/package.json +++ b/package.json @@ -48,17 +48,17 @@ "@babel/plugin-transform-flow-strip-types": "7.9.0", "@babel/preset-env": "7.9.6", "@babel/register": "7.9.0", - "@typescript-eslint/eslint-plugin": "2.30.0", - "@typescript-eslint/parser": "2.30.0", + "@typescript-eslint/eslint-plugin": "2.31.0", + "@typescript-eslint/parser": "2.31.0", "babel-eslint": "10.1.0", "chai": "4.2.0", - "cspell": "4.0.57", - "dtslint": "3.5.1", - "eslint": "6.8.0", + "cspell": "4.0.61", + "dtslint": "3.5.2", + "eslint": "7.0.0", "eslint-plugin-flowtype": "4.7.0", "eslint-plugin-graphql-internal": "link:./resources/eslint-rules", "eslint-plugin-import": "2.20.2", - "flow-bin": "0.123.0", + "flow-bin": "0.124.0", "mocha": "7.1.2", "nyc": "15.0.1", "prettier": "2.0.5", diff --git a/src/subscription/__tests__/mapAsyncIterator-test.js b/src/subscription/__tests__/mapAsyncIterator-test.js index a4b8b7f2acd..30fdf396ad0 100644 --- a/src/subscription/__tests__/mapAsyncIterator-test.js +++ b/src/subscription/__tests__/mapAsyncIterator-test.js @@ -1,8 +1,5 @@ // @flow strict -// FIXME temporary hack until https://github.com/eslint/eslint/pull/12484 is merged -/* eslint-disable require-await */ - import { expect } from 'chai'; import { describe, it } from 'mocha'; diff --git a/src/subscription/__tests__/subscribe-test.js b/src/subscription/__tests__/subscribe-test.js index cff3ef6ef9d..08bf3bdcdc5 100644 --- a/src/subscription/__tests__/subscribe-test.js +++ b/src/subscription/__tests__/subscribe-test.js @@ -1,8 +1,5 @@ // @flow strict -// FIXME temporary hack until https://github.com/eslint/eslint/pull/12484 is merged -/* eslint-disable require-await */ - import EventEmitter from 'events'; import { expect } from 'chai'; diff --git a/yarn.lock b/yarn.lock index 151c7f011d2..a907a0d9dce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -837,40 +837,40 @@ resolved "https://registry.yarnpkg.com/@types/parsimmon/-/parsimmon-1.10.1.tgz#d46015ad91128fce06a1a688ab39a2516507f740" integrity sha512-MoF2IC9oGSgArJwlxdst4XsvWuoYfNUWtBw0kpnCi6K05kV+Ecl7siEeJ40tgCbI9uqEMGQL/NlPMRv6KVkY5Q== -"@typescript-eslint/eslint-plugin@2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.30.0.tgz#312a37e80542a764d96e8ad88a105316cdcd7b05" - integrity sha512-PGejii0qIZ9Q40RB2jIHyUpRWs1GJuHP1pkoCiaeicfwO9z7Fx03NQzupuyzAmv+q9/gFNHu7lo1ByMXe8PNyg== +"@typescript-eslint/eslint-plugin@2.31.0": + version "2.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.31.0.tgz#942c921fec5e200b79593c71fafb1e3f57aa2e36" + integrity sha512-iIC0Pb8qDaoit+m80Ln/aaeu9zKQdOLF4SHcGLarSeY1gurW6aU4JsOPMjKQwXlw70MvWKZQc6S2NamA8SJ/gg== dependencies: - "@typescript-eslint/experimental-utils" "2.30.0" + "@typescript-eslint/experimental-utils" "2.31.0" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.30.0.tgz#9845e868c01f3aed66472c561d4b6bac44809dd0" - integrity sha512-L3/tS9t+hAHksy8xuorhOzhdefN0ERPDWmR9CclsIGOUqGKy6tqc/P+SoXeJRye5gazkuPO0cK9MQRnolykzkA== +"@typescript-eslint/experimental-utils@2.31.0": + version "2.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.31.0.tgz#a9ec514bf7fd5e5e82bc10dcb6a86d58baae9508" + integrity sha512-MI6IWkutLYQYTQgZ48IVnRXmLR/0Q6oAyJgiOror74arUMh7EWjJkADfirZhRsUMHeLJ85U2iySDwHTSnNi9vA== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.30.0" + "@typescript-eslint/typescript-estree" "2.31.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.30.0.tgz#7681c305a6f4341ae2579f5e3a75846c29eee9ce" - integrity sha512-9kDOxzp0K85UnpmPJqUzdWaCNorYYgk1yZmf4IKzpeTlSAclnFsrLjfwD9mQExctLoLoGAUXq1co+fbr+3HeFw== +"@typescript-eslint/parser@2.31.0": + version "2.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.31.0.tgz#beddd4e8efe64995108b229b2862cd5752d40d6f" + integrity sha512-uph+w6xUOlyV2DLSC6o+fBDzZ5i7+3/TxAsH4h3eC64tlga57oMb96vVlXoMwjR/nN+xyWlsnxtbDkB46M2EPQ== dependencies: "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.30.0" - "@typescript-eslint/typescript-estree" "2.30.0" + "@typescript-eslint/experimental-utils" "2.31.0" + "@typescript-eslint/typescript-estree" "2.31.0" eslint-visitor-keys "^1.1.0" -"@typescript-eslint/typescript-estree@2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.30.0.tgz#1b8e848b55144270255ffbfe4c63291f8f766615" - integrity sha512-nI5WOechrA0qAhnr+DzqwmqHsx7Ulr/+0H7bWCcClDhhWkSyZR5BmTvnBEyONwJCTWHfc5PAQExX24VD26IAVw== +"@typescript-eslint/typescript-estree@2.31.0": + version "2.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.31.0.tgz#ac536c2d46672aa1f27ba0ec2140d53670635cfd" + integrity sha512-vxW149bXFXXuBrAak0eKHOzbcu9cvi6iNcJDzEtOkRwGHxJG15chiAQAwhLOsk+86p9GTr/TziYvw+H9kMaIgA== dependencies: debug "^4.1.1" eslint-visitor-keys "^1.1.0" @@ -1230,7 +1230,7 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1247,6 +1247,14 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" + integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -1438,7 +1446,7 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -1449,7 +1457,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0: +cross-spawn@^7.0.0, cross-spawn@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== @@ -1646,10 +1654,10 @@ cspell-io@^4.0.21: iconv-lite "^0.4.24" iterable-to-stream "^1.0.1" -cspell-lib@^4.1.23: - version "4.1.23" - resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-4.1.23.tgz#8d74bcb14f604c9d8eb44ddc3d713d59c331ab42" - integrity sha512-UNLsOEq12xbL8o4SWGsDl1xAwyR8BUlGkwI3uv5Acc7noolObMXOJLp/TLE36PrMKWVmbg8s/9pnUKwrcwTC3w== +cspell-lib@^4.1.27: + version "4.1.27" + resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-4.1.27.tgz#dc49e3d77da350d457ec693b606840fb8b55286e" + integrity sha512-elczs/1V4rL9R4/Sfb5Xg2wkzpd/qDvelk70SChY+6pMzFhqu7nQbs5bmrhHB+Z1ELnmvrUtJBmkeo1uYvN0AQ== dependencies: comment-json "^1.1.3" configstore "^5.0.1" @@ -1697,16 +1705,16 @@ cspell-util-bundle@^4.0.11: resolved "https://registry.yarnpkg.com/cspell-util-bundle/-/cspell-util-bundle-4.0.11.tgz#838e493a33a063e2f28df0bd81bcf86c3cf15385" integrity sha512-6AJRN0KbeTJB+IPpwKb11zFUVz2Q8Rgm4qmy/wsbhw6ICFfmgWG5Fr2OzJpZBCm8GJJg1Tjs/VZimSvCdnRj7g== -cspell@4.0.57: - version "4.0.57" - resolved "https://registry.yarnpkg.com/cspell/-/cspell-4.0.57.tgz#8323c9d198cbc6dc90bb3ce42f2e5a9585bc0f6d" - integrity sha512-iKQ6iWP4nhMiuu1PnbcVGfZ0tE/NXRqRjYA1Kq/UW35a90WLSecIq8YgJn2J48FtnfWujPzXl/U7Tj4WqleGXg== +cspell@4.0.61: + version "4.0.61" + resolved "https://registry.yarnpkg.com/cspell/-/cspell-4.0.61.tgz#8572d1e21c54db09689e5f55b808df5e6fd478a4" + integrity sha512-aRDKzACufP8aYZm7cQHUBlvEIyWFO7gaaVUm75oxFGpWmc4zqnoOcCnciMHadS1W1r0mqMNfBQ4w55OORCQWnA== dependencies: chalk "^2.4.2" commander "^2.20.3" comment-json "^1.1.3" cspell-glob "^0.1.18" - cspell-lib "^4.1.23" + cspell-lib "^4.1.27" fs-extra "^8.1.0" gensequence "^3.1.1" get-stdin "^7.0.0" @@ -1753,7 +1761,7 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -1809,7 +1817,7 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" -dts-critic@^3.1.0: +dts-critic@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/dts-critic/-/dts-critic-3.1.0.tgz#bbbe707f1fb6efa08e85aeaf1ee9dd7a184dca98" integrity sha512-cNn4SsrlnGqnqxXE0GdPORurDrr+Y8k6yy5eBpjM6lu0C80QgabU8ypq+uAQ+JYeJ/ykQVUNo9zdLQfZHvnSVQ== @@ -1821,15 +1829,15 @@ dts-critic@^3.1.0: typescript "^3.7.5" yargs "^12.0.5" -dtslint@3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/dtslint/-/dtslint-3.5.1.tgz#886c1672f4654f04eee9fe359681965f39eca80c" - integrity sha512-BVR+7h/tgCKlaWjYPG8xt3iuPPOUTYCg1TBp7UK23XlS6HSeRQVHPpJRTXLmPGXBoE9zKbKesQVLtnNB5bRTCA== +dtslint@3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/dtslint/-/dtslint-3.5.2.tgz#56d70b47415e70a3b689c242d19e20d15be7c7e7" + integrity sha512-i76Ai9Oo8uD8IQhGcb8X0AHNs/fo7RUnVSOk+a/OYkO9WXkM7l8oHGnZGZSMu2TbSRE1JQD/hWK56R94e+uXrQ== dependencies: "@definitelytyped/header-parser" "0.0.29" "@definitelytyped/typescript-versions" "0.0.29" "@definitelytyped/utils" "0.0.29" - dts-critic "^3.1.0" + dts-critic "^3.0.2" fs-extra "^6.0.1" json-stable-stringify "^1.0.1" strip-json-comments "^2.0.1" @@ -1963,13 +1971,6 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== - dependencies: - eslint-visitor-keys "^1.1.0" - eslint-utils@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" @@ -1982,22 +1983,22 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== +eslint@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.0.0.tgz#c35dfd04a4372110bd78c69a8d79864273919a08" + integrity sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" eslint-scope "^5.0.0" - eslint-utils "^1.4.3" + eslint-utils "^2.0.0" eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + espree "^7.0.0" + esquery "^1.2.0" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" @@ -2010,25 +2011,24 @@ eslint@6.8.0: is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" + levn "^0.4.1" lodash "^4.17.14" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" table "^5.2.3" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== +espree@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.0.0.tgz#8a7a60f218e69f120a842dc24c5a88aa7748a74e" + integrity sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw== dependencies: acorn "^7.1.1" acorn-jsx "^5.2.0" @@ -2044,7 +2044,7 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1: +esquery@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== @@ -2120,7 +2120,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -2207,10 +2207,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.123.0: - version "0.123.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.123.0.tgz#7ba61a0b8775928cf4943ccf78eed2b1b05f7b3a" - integrity sha512-Ylcf8YDIM/KrqtxkPuq+f8O+6sdYA2Nuz5f+sWHlp539DatZz3YMcsO1EiXaf1C11HJgpT/3YGYe7xZ9/UZmvQ== +flow-bin@0.124.0: + version "0.124.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.124.0.tgz#24b2e55874e1e2041f9247f42473b3db2ef32758" + integrity sha512-KEtDJ7CFUjcuhw6N52FTZshDd1krf1fxpp4APSIrwhVm+IrlcKJ+EMXpeXKM1kKNSZ347dYGh8wEvXQl4pHZEA== foreground-child@^2.0.0: version "2.0.0" @@ -2860,13 +2860,13 @@ levenary@^1.1.1: dependencies: leven "^3.1.0" -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" + prelude-ls "^1.2.1" + type-check "~0.4.0" load-json-file@^2.0.0: version "2.0.0" @@ -3245,17 +3245,17 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" os-homedir@^1.0.0: version "1.0.2" @@ -3477,10 +3477,10 @@ pkg-up@^2.0.0: dependencies: find-up "^2.1.0" -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@2.0.5: version "2.0.5" @@ -3594,12 +3594,7 @@ regenerator-transform@^0.14.2: "@babel/runtime" "^7.8.4" private "^0.1.8" -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpp@^3.0.0: +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== @@ -3764,11 +3759,16 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.2.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.2.1: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -4024,7 +4024,7 @@ strip-json-comments@2.0.1, strip-json-comments@^2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-json-comments@^3.0.1: +strip-json-comments@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== @@ -4188,12 +4188,12 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - prelude-ls "~1.1.2" + prelude-ls "^1.2.1" type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" @@ -4344,7 +4344,7 @@ wide-align@1.1.3, wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== From 21fecc3647214822a95f8b88791ddbb1a4003df5 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sun, 10 May 2020 17:44:03 +0300 Subject: [PATCH 19/63] extendSchema-test: improve test coverage (#2537) --- src/utilities/__tests__/extendSchema-test.js | 27 +++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/utilities/__tests__/extendSchema-test.js b/src/utilities/__tests__/extendSchema-test.js index 527c2a67e27..711f9358f45 100644 --- a/src/utilities/__tests__/extendSchema-test.js +++ b/src/utilities/__tests__/extendSchema-test.js @@ -850,12 +850,15 @@ describe('extendSchema', () => { it('extends different types multiple times', () => { const schema = buildSchema(` type Query { + someScalar: SomeScalar someObject(someInput: SomeInput): SomeObject someInterface: SomeInterface someEnum: SomeEnum someUnion: SomeUnion } + scalar SomeScalar + type SomeObject implements SomeInterface { oldField: String } @@ -875,8 +878,12 @@ describe('extendSchema', () => { } `); const newTypesSDL = dedent` - interface AnotherNewInterface { - anotherNewField: String + scalar NewScalar + + scalar AnotherNewScalar + + type NewObject { + foo: String } type AnotherNewObject { @@ -887,11 +894,17 @@ describe('extendSchema', () => { newField: String } - type NewObject { - foo: String + interface AnotherNewInterface { + anotherNewField: String }`; + const schemaWithNewTypes = extendSchema(schema, parse(newTypesSDL)); + expect(printSchemaChanges(schema, schemaWithNewTypes)).to.equal( + newTypesSDL + '\n', + ); + const extendAST = parse(` - ${newTypesSDL} + extend scalar SomeScalar @specifiedBy(url: "http://example.com/foo_spec") + extend type SomeObject implements NewInterface { newField: String } @@ -920,10 +933,12 @@ describe('extendSchema', () => { anotherNewField: String } `); - const extendedSchema = extendSchema(schema, extendAST); + const extendedSchema = extendSchema(schemaWithNewTypes, extendAST); expect(validateSchema(extendedSchema)).to.deep.equal([]); expect(printSchemaChanges(schema, extendedSchema)).to.equal(dedent` + scalar SomeScalar @specifiedBy(url: "http://example.com/foo_spec") + type SomeObject implements SomeInterface & NewInterface & AnotherNewInterface { oldField: String newField: String From 9f800d236b08c8344fe453d28b2bd3add38ce812 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Mon, 11 May 2020 17:51:46 +0300 Subject: [PATCH 20/63] Switch to SDL for validation tests (#2540) --- .../__tests__/FieldsOnCorrectTypeRule-test.js | 26 + .../__tests__/ValuesOfCorrectTypeRule-test.js | 87 ++- src/validation/__tests__/harness.js | 518 +++++------------- src/validation/__tests__/validation-test.js | 11 +- 4 files changed, 224 insertions(+), 418 deletions(-) diff --git a/src/validation/__tests__/FieldsOnCorrectTypeRule-test.js b/src/validation/__tests__/FieldsOnCorrectTypeRule-test.js index e06233c75c2..b53d129d624 100644 --- a/src/validation/__tests__/FieldsOnCorrectTypeRule-test.js +++ b/src/validation/__tests__/FieldsOnCorrectTypeRule-test.js @@ -331,6 +331,32 @@ describe('Validate: Fields on correct type', () => { ); }); + it('Sort type suggestions based on inheritance order', () => { + const schema = buildSchema(` + interface T { bar: String } + type Query { t: T } + + interface Z implements T { + foo: String + bar: String + } + + interface Y implements Z & T { + foo: String + bar: String + } + + type X implements Y & Z & T { + foo: String + bar: String + } + `); + + expectErrorMessage(schema, '{ t { foo } }').to.equal( + 'Cannot query field "foo" on type "T". Did you mean to use an inline fragment on "Z", "Y", or "X"?', + ); + }); + it('Limits lots of type suggestions', () => { const schema = buildSchema(` union T = A | B | C | D | E | F diff --git a/src/validation/__tests__/ValuesOfCorrectTypeRule-test.js b/src/validation/__tests__/ValuesOfCorrectTypeRule-test.js index 14f095f63f1..723208a872f 100644 --- a/src/validation/__tests__/ValuesOfCorrectTypeRule-test.js +++ b/src/validation/__tests__/ValuesOfCorrectTypeRule-test.js @@ -2,6 +2,8 @@ import { describe, it } from 'mocha'; +import inspect from '../../jsutils/inspect'; + import { GraphQLSchema } from '../../type/schema'; import { GraphQLString } from '../../type/scalars'; import { GraphQLScalarType, GraphQLObjectType } from '../../type/definition'; @@ -29,6 +31,10 @@ function expectValid(queryStr) { expectErrors(queryStr).to.deep.equal([]); } +function expectValidWithSchema(schema, queryStr) { + expectErrorsWithSchema(schema, queryStr).to.deep.equal([]); +} + describe('Validate: Values of correct type', () => { describe('Valid values', () => { it('Good int value', () => { @@ -937,17 +943,37 @@ describe('Validate: Values of correct type', () => { }); it('reports original error for custom scalar which throws', () => { - const expectedErrors = expectErrors(` - { - invalidArg(arg: 123) - } - `); + const customScalar = new GraphQLScalarType({ + name: 'Invalid', + parseValue(value) { + throw new Error( + `Invalid scalar is always invalid: ${inspect(value)}`, + ); + }, + }); + + const schema = new GraphQLSchema({ + query: new GraphQLObjectType({ + name: 'Query', + fields: { + invalidArg: { + type: GraphQLString, + args: { arg: { type: customScalar } }, + }, + }, + }), + }); + + const expectedErrors = expectErrorsWithSchema( + schema, + '{ invalidArg(arg: 123) }', + ); expectedErrors.to.deep.equal([ { message: 'Expected value of type "Invalid", found 123; Invalid scalar is always invalid: 123', - locations: [{ line: 3, column: 27 }], + locations: [{ line: 1, column: 19 }], }, ]); @@ -971,40 +997,45 @@ describe('Validate: Values of correct type', () => { fields: { invalidArg: { type: GraphQLString, - args: { - arg: { type: customScalar }, - }, + args: { arg: { type: customScalar } }, }, }, }), }); - const expectedErrors = expectErrorsWithSchema( - schema, - ` - { - invalidArg(arg: 123) - } - `, - ); - - expectedErrors.to.deep.equal([ + expectErrorsWithSchema(schema, '{ invalidArg(arg: 123) }').to.deep.equal([ { message: 'Expected value of type "CustomScalar", found 123.', - locations: [{ line: 3, column: 27 }], + locations: [{ line: 1, column: 19 }], }, ]); }); it('allows custom scalar to accept complex literals', () => { - expectValid(` - { - test1: anyArg(arg: 123) - test2: anyArg(arg: "abc") - test3: anyArg(arg: [123, "abc"]) - test4: anyArg(arg: {deep: [123, "abc"]}) - } - `); + const customScalar = new GraphQLScalarType({ name: 'Any' }); + const schema = new GraphQLSchema({ + query: new GraphQLObjectType({ + name: 'Query', + fields: { + anyArg: { + type: GraphQLString, + args: { arg: { type: customScalar } }, + }, + }, + }), + }); + + expectValidWithSchema( + schema, + ` + { + test1: anyArg(arg: 123) + test2: anyArg(arg: "abc") + test3: anyArg(arg: [123, "abc"]) + test4: anyArg(arg: {deep: [123, "abc"]}) + } + `, + ); }); }); diff --git a/src/validation/__tests__/harness.js b/src/validation/__tests__/harness.js index d84d7520e54..a9490e31702 100644 --- a/src/validation/__tests__/harness.js +++ b/src/validation/__tests__/harness.js @@ -2,33 +2,11 @@ import { expect } from 'chai'; -import inspect from '../../jsutils/inspect'; - import { parse } from '../../language/parser'; import { GraphQLSchema } from '../../type/schema'; -import { - GraphQLDirective, - GraphQLIncludeDirective, - GraphQLSkipDirective, -} from '../../type/directives'; -import { - GraphQLInt, - GraphQLFloat, - GraphQLString, - GraphQLBoolean, - GraphQLID, -} from '../../type/scalars'; -import { - GraphQLScalarType, - GraphQLObjectType, - GraphQLInterfaceType, - GraphQLUnionType, - GraphQLEnumType, - GraphQLInputObjectType, - GraphQLList, - GraphQLNonNull, -} from '../../type/definition'; + +import { buildSchema } from '../../utilities/buildASTSchema'; import { validate, validateSDL } from '../validate'; import { @@ -36,366 +14,138 @@ import { type SDLValidationRule, } from '../ValidationContext'; -const Being = new GraphQLInterfaceType({ - name: 'Being', - fields: () => ({ - name: { - type: GraphQLString, - args: { surname: { type: GraphQLBoolean } }, - }, - }), -}); - -const Mammal = new GraphQLInterfaceType({ - name: 'Mammal', - interfaces: [], - fields: () => ({ - mother: { - type: Mammal, - }, - father: { - type: Mammal, - }, - }), -}); - -const Pet = new GraphQLInterfaceType({ - name: 'Pet', - interfaces: [Being], - fields: () => ({ - name: { - type: GraphQLString, - args: { surname: { type: GraphQLBoolean } }, - }, - }), -}); - -const Canine = new GraphQLInterfaceType({ - name: 'Canine', - interfaces: [Mammal, Being], - fields: () => ({ - name: { - type: GraphQLString, - args: { surname: { type: GraphQLBoolean } }, - }, - mother: { - type: Canine, - }, - father: { - type: Canine, - }, - }), -}); - -const DogCommand = new GraphQLEnumType({ - name: 'DogCommand', - values: { - SIT: { value: 0 }, - HEEL: { value: 1 }, - DOWN: { value: 2 }, - }, -}); - -const Dog = new GraphQLObjectType({ - name: 'Dog', - interfaces: [Being, Pet, Mammal, Canine], - fields: () => ({ - name: { - type: GraphQLString, - args: { surname: { type: GraphQLBoolean } }, - }, - nickname: { type: GraphQLString }, - barkVolume: { type: GraphQLInt }, - barks: { type: GraphQLBoolean }, - doesKnowCommand: { - type: GraphQLBoolean, - args: { - dogCommand: { type: DogCommand }, - }, - }, - isHouseTrained: { - type: GraphQLBoolean, - args: { - atOtherHomes: { - type: GraphQLBoolean, - defaultValue: true, - }, - }, - }, - isAtLocation: { - type: GraphQLBoolean, - args: { x: { type: GraphQLInt }, y: { type: GraphQLInt } }, - }, - mother: { - type: Dog, - }, - father: { - type: Dog, - }, - }), -}); - -const Cat = new GraphQLObjectType({ - name: 'Cat', - fields: () => ({ - name: { - type: GraphQLString, - args: { surname: { type: GraphQLBoolean } }, - }, - nickname: { type: GraphQLString }, - meows: { type: GraphQLBoolean }, - meowVolume: { type: GraphQLInt }, - furColor: { type: FurColor }, - }), - interfaces: [Being, Pet], -}); - -const CatOrDog = new GraphQLUnionType({ - name: 'CatOrDog', - types: [Dog, Cat], -}); - -const Intelligent = new GraphQLInterfaceType({ - name: 'Intelligent', - fields: { - iq: { type: GraphQLInt }, - }, -}); - -const Human = new GraphQLObjectType({ - name: 'Human', - interfaces: [Being, Intelligent], - fields: () => ({ - name: { - type: GraphQLString, - args: { surname: { type: GraphQLBoolean } }, - }, - pets: { type: GraphQLList(Pet) }, - relatives: { type: GraphQLList(Human) }, - iq: { type: GraphQLInt }, - }), -}); - -const Alien = new GraphQLObjectType({ - name: 'Alien', - interfaces: [Being, Intelligent], - fields: { - iq: { type: GraphQLInt }, - name: { - type: GraphQLString, - args: { surname: { type: GraphQLBoolean } }, - }, - numEyes: { type: GraphQLInt }, - }, -}); - -const DogOrHuman = new GraphQLUnionType({ - name: 'DogOrHuman', - types: [Dog, Human], -}); - -const HumanOrAlien = new GraphQLUnionType({ - name: 'HumanOrAlien', - types: [Human, Alien], -}); - -const FurColor = new GraphQLEnumType({ - name: 'FurColor', - values: { - BROWN: { value: 0 }, - BLACK: { value: 1 }, - TAN: { value: 2 }, - SPOTTED: { value: 3 }, - NO_FUR: { value: null }, - UNKNOWN: { value: undefined }, - }, -}); - -const ComplexInput = new GraphQLInputObjectType({ - name: 'ComplexInput', - fields: { - requiredField: { type: GraphQLNonNull(GraphQLBoolean) }, - nonNullField: { type: GraphQLNonNull(GraphQLBoolean), defaultValue: false }, - intField: { type: GraphQLInt }, - stringField: { type: GraphQLString }, - booleanField: { type: GraphQLBoolean }, - stringListField: { type: GraphQLList(GraphQLString) }, - }, -}); - -const ComplicatedArgs = new GraphQLObjectType({ - name: 'ComplicatedArgs', - // TODO List - // TODO Coercion - // TODO NotNulls - fields: () => ({ - intArgField: { - type: GraphQLString, - args: { intArg: { type: GraphQLInt } }, - }, - nonNullIntArgField: { - type: GraphQLString, - args: { nonNullIntArg: { type: GraphQLNonNull(GraphQLInt) } }, - }, - stringArgField: { - type: GraphQLString, - args: { stringArg: { type: GraphQLString } }, - }, - booleanArgField: { - type: GraphQLString, - args: { booleanArg: { type: GraphQLBoolean } }, - }, - enumArgField: { - type: GraphQLString, - args: { enumArg: { type: FurColor } }, - }, - floatArgField: { - type: GraphQLString, - args: { floatArg: { type: GraphQLFloat } }, - }, - idArgField: { - type: GraphQLString, - args: { idArg: { type: GraphQLID } }, - }, - stringListArgField: { - type: GraphQLString, - args: { stringListArg: { type: GraphQLList(GraphQLString) } }, - }, - stringListNonNullArgField: { - type: GraphQLString, - args: { - stringListNonNullArg: { - type: GraphQLList(GraphQLNonNull(GraphQLString)), - }, - }, - }, - complexArgField: { - type: GraphQLString, - args: { complexArg: { type: ComplexInput } }, - }, - multipleReqs: { - type: GraphQLString, - args: { - req1: { type: GraphQLNonNull(GraphQLInt) }, - req2: { type: GraphQLNonNull(GraphQLInt) }, - }, - }, - nonNullFieldWithDefault: { - type: GraphQLString, - args: { - arg: { type: GraphQLNonNull(GraphQLInt), defaultValue: 0 }, - }, - }, - multipleOpts: { - type: GraphQLString, - args: { - opt1: { - type: GraphQLInt, - defaultValue: 0, - }, - opt2: { - type: GraphQLInt, - defaultValue: 0, - }, - }, - }, - multipleOptAndReq: { - type: GraphQLString, - args: { - req1: { type: GraphQLNonNull(GraphQLInt) }, - req2: { type: GraphQLNonNull(GraphQLInt) }, - opt1: { - type: GraphQLInt, - defaultValue: 0, - }, - opt2: { - type: GraphQLInt, - defaultValue: 0, - }, - }, - }, - }), -}); - -const InvalidScalar = new GraphQLScalarType({ - name: 'Invalid', - parseValue(value) { - throw new Error(`Invalid scalar is always invalid: ${inspect(value)}`); - }, -}); - -const AnyScalar = new GraphQLScalarType({ name: 'Any' }); - -const QueryRoot = new GraphQLObjectType({ - name: 'QueryRoot', - fields: () => ({ - human: { - args: { id: { type: GraphQLID } }, - type: Human, - }, - alien: { type: Alien }, - dog: { type: Dog }, - cat: { type: Cat }, - pet: { type: Pet }, - catOrDog: { type: CatOrDog }, - dogOrHuman: { type: DogOrHuman }, - humanOrAlien: { type: HumanOrAlien }, - complicatedArgs: { type: ComplicatedArgs }, - invalidArg: { - args: { - arg: { type: InvalidScalar }, - }, - type: GraphQLString, - }, - anyArg: { - args: { - arg: { type: AnyScalar }, - }, - type: GraphQLString, - }, - }), -}); - -export const testSchema = new GraphQLSchema({ - query: QueryRoot, - types: [Cat, Dog, Human, Alien], - directives: [ - GraphQLIncludeDirective, - GraphQLSkipDirective, - new GraphQLDirective({ - name: 'onQuery', - locations: ['QUERY'], - }), - new GraphQLDirective({ - name: 'onMutation', - locations: ['MUTATION'], - }), - new GraphQLDirective({ - name: 'onSubscription', - locations: ['SUBSCRIPTION'], - }), - new GraphQLDirective({ - name: 'onField', - locations: ['FIELD'], - }), - new GraphQLDirective({ - name: 'onFragmentDefinition', - locations: ['FRAGMENT_DEFINITION'], - }), - new GraphQLDirective({ - name: 'onFragmentSpread', - locations: ['FRAGMENT_SPREAD'], - }), - new GraphQLDirective({ - name: 'onInlineFragment', - locations: ['INLINE_FRAGMENT'], - }), - new GraphQLDirective({ - name: 'onVariableDefinition', - locations: ['VARIABLE_DEFINITION'], - }), - ], -}); +export const testSchema = buildSchema(` + interface Being { + name(surname: Boolean): String + } + + interface Mammal { + mother: Mammal + father: Mammal + } + + interface Pet implements Being { + name(surname: Boolean): String + } + + interface Canine implements Mammal & Being { + name(surname: Boolean): String + mother: Canine + father: Canine + } + + enum DogCommand { + SIT + HEEL + DOWN + } + + type Dog implements Being & Pet & Mammal & Canine { + name(surname: Boolean): String + nickname: String + barkVolume: Int + barks: Boolean + doesKnowCommand(dogCommand: DogCommand): Boolean + isHouseTrained(atOtherHomes: Boolean = true): Boolean + isAtLocation(x: Int, y: Int): Boolean + mother: Dog + father: Dog + } + + type Cat implements Being & Pet { + name(surname: Boolean): String + nickname: String + meows: Boolean + meowsVolume: Int + furColor: FurColor + } + + union CatOrDog = Cat | Dog + + interface Intelligent { + iq: Int + } + + type Human implements Being & Intelligent { + name(surname: Boolean): String + pets: [Pet] + relatives: [Human] + iq: Int + } + + type Alien implements Being & Intelligent { + name(surname: Boolean): String + numEyes: Int + iq: Int + } + + union DogOrHuman = Dog | Human + + union HumanOrAlien = Human | Alien + + enum FurColor { + BROWN + BLACK + TAN + SPOTTED + NO_FUR + UNKNOWN + } + + input ComplexInput { + requiredField: Boolean! + nonNullField: Boolean! = false + intField: Int + stringField: String + booleanField: Boolean + stringListField: [String] + } + + type ComplicatedArgs { + # TODO List + # TODO Coercion + # TODO NotNulls + intArgField(intArg: Int): String + nonNullIntArgField(nonNullIntArg: Int!): String + stringArgField(stringArg: String): String + booleanArgField(booleanArg: Boolean): String + enumArgField(enumArg: FurColor): String + floatArgField(floatArg: Float): String + idArgField(idArg: ID): String + stringListArgField(stringListArg: [String]): String + stringListNonNullArgField(stringListNonNullArg: [String!]): String + complexArgField(complexArg: ComplexInput): String + multipleReqs(req1: Int!, req2: Int!): String + nonNullFieldWithDefault(arg: Int! = 0): String + multipleOpts(opt1: Int = 0, opt2: Int = 0): String + multipleOptAndReq(req1: Int!, req2: Int!, opt1: Int = 0, opt2: Int = 0): String + } + + type QueryRoot { + human(id: ID): Human + alien: Alien + dog: Dog + cat: Cat + pet: Pet + catOrDog: CatOrDog + dogOrHuman: DogOrHuman + humanOrAlien: HumanOrAlien + complicatedArgs: ComplicatedArgs + } + + schema { + query: QueryRoot + } + + directive @onQuery on QUERY + directive @onMutation on MUTATION + directive @onSubscription on SUBSCRIPTION + directive @onField on FIELD + directive @onFragmentDefinition on FRAGMENT_DEFINITION + directive @onFragmentSpread on FRAGMENT_SPREAD + directive @onInlineFragment on INLINE_FRAGMENT + directive @onVariableDefinition on VARIABLE_DEFINITION +`); export function expectValidationErrorsWithSchema( schema: GraphQLSchema, diff --git a/src/validation/__tests__/validation-test.js b/src/validation/__tests__/validation-test.js index 4c4e6cbb254..4ddb16d4f10 100644 --- a/src/validation/__tests__/validation-test.js +++ b/src/validation/__tests__/validation-test.js @@ -38,19 +38,18 @@ describe('Validate: Supports full validation', () => { expect(errors).to.deep.equal([]); }); - it('detects bad scalar parse', () => { + it('detects unknown fields', () => { const doc = parse(` - query { - invalidArg(arg: "bad value") + { + unknown } `); const errors = validate(testSchema, doc); expect(errors).to.deep.equal([ { - locations: [{ line: 3, column: 25 }], - message: - 'Expected value of type "Invalid", found "bad value"; Invalid scalar is always invalid: "bad value"', + locations: [{ line: 3, column: 9 }], + message: 'Cannot query field "unknown" on type "QueryRoot".', }, ]); }); From ea089e016f1526fb5b5137b5f8a8739ec17b322c Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Wed, 13 May 2020 16:10:42 +0300 Subject: [PATCH 21/63] printSchema-test: cleanup and simplify (#2543) --- ...emaPrinter-test.js => printSchema-test.js} | 218 ++++++++---------- 1 file changed, 98 insertions(+), 120 deletions(-) rename src/utilities/__tests__/{schemaPrinter-test.js => printSchema-test.js} (84%) diff --git a/src/utilities/__tests__/schemaPrinter-test.js b/src/utilities/__tests__/printSchema-test.js similarity index 84% rename from src/utilities/__tests__/schemaPrinter-test.js rename to src/utilities/__tests__/printSchema-test.js index db1efddff5f..e075183840a 100644 --- a/src/utilities/__tests__/schemaPrinter-test.js +++ b/src/utilities/__tests__/printSchema-test.js @@ -11,7 +11,6 @@ import { GraphQLSchema } from '../../type/schema'; import { GraphQLDirective } from '../../type/directives'; import { GraphQLInt, GraphQLString, GraphQLBoolean } from '../../type/scalars'; import { - assertObjectType, GraphQLList, GraphQLNonNull, GraphQLScalarType, @@ -25,35 +24,25 @@ import { import { buildSchema } from '../buildASTSchema'; import { printSchema, printIntrospectionSchema } from '../printSchema'; -function printForTest(schema) { +function expectPrintedSchema(schema) { const schemaText = printSchema(schema); // keep printSchema and buildSchema in sync expect(printSchema(buildSchema(schemaText))).to.equal(schemaText); - return schemaText; + return expect(schemaText); } -function printSingleFieldSchema(fieldConfig) { +function buildSingleFieldSchema(fieldConfig) { const Query = new GraphQLObjectType({ name: 'Query', fields: { singleField: fieldConfig }, }); - return printForTest(new GraphQLSchema({ query: Query })); -} - -function listOf(type) { - return GraphQLList(type); -} - -function nonNull(type) { - return GraphQLNonNull(type); + return new GraphQLSchema({ query: Query }); } describe('Type System Printer', () => { it('Prints String Field', () => { - const output = printSingleFieldSchema({ - type: GraphQLString, - }); - expect(output).to.equal(dedent` + const schema = buildSingleFieldSchema({ type: GraphQLString }); + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField: String } @@ -61,10 +50,8 @@ describe('Type System Printer', () => { }); it('Prints [String] Field', () => { - const output = printSingleFieldSchema({ - type: listOf(GraphQLString), - }); - expect(output).to.equal(dedent` + const schema = buildSingleFieldSchema({ type: GraphQLList(GraphQLString) }); + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField: [String] } @@ -72,10 +59,11 @@ describe('Type System Printer', () => { }); it('Prints String! Field', () => { - const output = printSingleFieldSchema({ - type: nonNull(GraphQLString), + const schema = buildSingleFieldSchema({ + type: GraphQLNonNull(GraphQLString), }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField: String! } @@ -83,10 +71,11 @@ describe('Type System Printer', () => { }); it('Prints [String]! Field', () => { - const output = printSingleFieldSchema({ - type: nonNull(listOf(GraphQLString)), + const schema = buildSingleFieldSchema({ + type: GraphQLNonNull(GraphQLList(GraphQLString)), }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField: [String]! } @@ -94,10 +83,11 @@ describe('Type System Printer', () => { }); it('Prints [String!] Field', () => { - const output = printSingleFieldSchema({ - type: listOf(nonNull(GraphQLString)), + const schema = buildSingleFieldSchema({ + type: GraphQLList(GraphQLNonNull(GraphQLString)), }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField: [String!] } @@ -105,10 +95,11 @@ describe('Type System Printer', () => { }); it('Prints [String!]! Field', () => { - const output = printSingleFieldSchema({ - type: nonNull(listOf(nonNull(GraphQLString))), + const schema = buildSingleFieldSchema({ + type: GraphQLNonNull(GraphQLList(GraphQLNonNull(GraphQLString))), }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField: [String!]! } @@ -120,10 +111,9 @@ describe('Type System Printer', () => { name: 'Foo', fields: { str: { type: GraphQLString } }, }); + const schema = new GraphQLSchema({ types: [FooType] }); - const Schema = new GraphQLSchema({ types: [FooType] }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + expectPrintedSchema(schema).to.equal(dedent` type Foo { str: String } @@ -131,11 +121,12 @@ describe('Type System Printer', () => { }); it('Prints String Field With Int Arg', () => { - const output = printSingleFieldSchema({ + const schema = buildSingleFieldSchema({ type: GraphQLString, args: { argOne: { type: GraphQLInt } }, }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField(argOne: Int): String } @@ -143,11 +134,12 @@ describe('Type System Printer', () => { }); it('Prints String Field With Int Arg With Default', () => { - const output = printSingleFieldSchema({ + const schema = buildSingleFieldSchema({ type: GraphQLString, args: { argOne: { type: GraphQLInt, defaultValue: 2 } }, }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField(argOne: Int = 2): String } @@ -155,11 +147,12 @@ describe('Type System Printer', () => { }); it('Prints String Field With String Arg With Default', () => { - const output = printSingleFieldSchema({ + const schema = buildSingleFieldSchema({ type: GraphQLString, args: { argOne: { type: GraphQLString, defaultValue: 'tes\t de\fault' } }, }); - expect(output).to.equal( + + expectPrintedSchema(schema).to.equal( // $FlowFixMe dedent(String.raw` type Query { @@ -170,11 +163,12 @@ describe('Type System Printer', () => { }); it('Prints String Field With Int Arg With Default Null', () => { - const output = printSingleFieldSchema({ + const schema = buildSingleFieldSchema({ type: GraphQLString, args: { argOne: { type: GraphQLInt, defaultValue: null } }, }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField(argOne: Int = null): String } @@ -182,11 +176,12 @@ describe('Type System Printer', () => { }); it('Prints String Field With Int! Arg', () => { - const output = printSingleFieldSchema({ + const schema = buildSingleFieldSchema({ type: GraphQLString, - args: { argOne: { type: nonNull(GraphQLInt) } }, + args: { argOne: { type: GraphQLNonNull(GraphQLInt) } }, }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField(argOne: Int!): String } @@ -194,14 +189,15 @@ describe('Type System Printer', () => { }); it('Prints String Field With Multiple Args', () => { - const output = printSingleFieldSchema({ + const schema = buildSingleFieldSchema({ type: GraphQLString, args: { argOne: { type: GraphQLInt }, argTwo: { type: GraphQLString }, }, }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField(argOne: Int, argTwo: String): String } @@ -209,7 +205,7 @@ describe('Type System Printer', () => { }); it('Prints String Field With Multiple Args, First is Default', () => { - const output = printSingleFieldSchema({ + const schema = buildSingleFieldSchema({ type: GraphQLString, args: { argOne: { type: GraphQLInt, defaultValue: 1 }, @@ -217,7 +213,8 @@ describe('Type System Printer', () => { argThree: { type: GraphQLBoolean }, }, }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField(argOne: Int = 1, argTwo: String, argThree: Boolean): String } @@ -225,7 +222,7 @@ describe('Type System Printer', () => { }); it('Prints String Field With Multiple Args, Second is Default', () => { - const output = printSingleFieldSchema({ + const schema = buildSingleFieldSchema({ type: GraphQLString, args: { argOne: { type: GraphQLInt }, @@ -233,7 +230,8 @@ describe('Type System Printer', () => { argThree: { type: GraphQLBoolean }, }, }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField(argOne: Int, argTwo: String = "foo", argThree: Boolean): String } @@ -241,7 +239,7 @@ describe('Type System Printer', () => { }); it('Prints String Field With Multiple Args, Last is Default', () => { - const output = printSingleFieldSchema({ + const schema = buildSingleFieldSchema({ type: GraphQLString, args: { argOne: { type: GraphQLInt }, @@ -249,7 +247,8 @@ describe('Type System Printer', () => { argThree: { type: GraphQLBoolean, defaultValue: false }, }, }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { singleField(argOne: Int, argTwo: String, argThree: Boolean = false): String } @@ -257,13 +256,12 @@ describe('Type System Printer', () => { }); it('Prints schema with description', () => { - const Schema = new GraphQLSchema({ + const schema = new GraphQLSchema({ description: 'Schema description.', query: new GraphQLObjectType({ name: 'Query', fields: {} }), }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + expectPrintedSchema(schema).to.equal(dedent` """Schema description.""" schema { query: Query @@ -274,12 +272,11 @@ describe('Type System Printer', () => { }); it('Prints custom query root types', () => { - const Schema = new GraphQLSchema({ + const schema = new GraphQLSchema({ query: new GraphQLObjectType({ name: 'CustomType', fields: {} }), }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + expectPrintedSchema(schema).to.equal(dedent` schema { query: CustomType } @@ -289,12 +286,11 @@ describe('Type System Printer', () => { }); it('Prints custom mutation root types', () => { - const Schema = new GraphQLSchema({ + const schema = new GraphQLSchema({ mutation: new GraphQLObjectType({ name: 'CustomType', fields: {} }), }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + expectPrintedSchema(schema).to.equal(dedent` schema { mutation: CustomType } @@ -304,12 +300,11 @@ describe('Type System Printer', () => { }); it('Prints custom subscription root types', () => { - const Schema = new GraphQLSchema({ + const schema = new GraphQLSchema({ subscription: new GraphQLObjectType({ name: 'CustomType', fields: {} }), }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + expectPrintedSchema(schema).to.equal(dedent` schema { subscription: CustomType } @@ -330,9 +325,8 @@ describe('Type System Printer', () => { interfaces: [FooType], }); - const Schema = new GraphQLSchema({ types: [BarType] }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + const schema = new GraphQLSchema({ types: [BarType] }); + expectPrintedSchema(schema).to.equal(dedent` type Bar implements Foo { str: String } @@ -363,9 +357,8 @@ describe('Type System Printer', () => { interfaces: [FooType, BazType], }); - const Schema = new GraphQLSchema({ types: [BarType] }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + const schema = new GraphQLSchema({ types: [BarType] }); + expectPrintedSchema(schema).to.equal(dedent` type Bar implements Foo & Baz { str: String int: Int @@ -410,12 +403,8 @@ describe('Type System Printer', () => { fields: { bar: { type: BarType } }, }); - const Schema = new GraphQLSchema({ - query: Query, - types: [BarType], - }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + const schema = new GraphQLSchema({ query: Query, types: [BarType] }); + expectPrintedSchema(schema).to.equal(dedent` type Bar implements Foo & Baz { str: String int: Int @@ -461,9 +450,8 @@ describe('Type System Printer', () => { types: [FooType, BarType], }); - const Schema = new GraphQLSchema({ types: [SingleUnion, MultipleUnion] }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + const schema = new GraphQLSchema({ types: [SingleUnion, MultipleUnion] }); + expectPrintedSchema(schema).to.equal(dedent` union SingleUnion = Foo type Foo { @@ -486,9 +474,8 @@ describe('Type System Printer', () => { }, }); - const Schema = new GraphQLSchema({ types: [InputType] }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + const schema = new GraphQLSchema({ types: [InputType] }); + expectPrintedSchema(schema).to.equal(dedent` input InputType { int: Int } @@ -498,9 +485,8 @@ describe('Type System Printer', () => { it('Custom Scalar', () => { const OddType = new GraphQLScalarType({ name: 'Odd' }); - const Schema = new GraphQLSchema({ types: [OddType] }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + const schema = new GraphQLSchema({ types: [OddType] }); + expectPrintedSchema(schema).to.equal(dedent` scalar Odd `); }); @@ -511,9 +497,8 @@ describe('Type System Printer', () => { specifiedByUrl: 'https://example.com/foo_spec', }); - const Schema = new GraphQLSchema({ types: [FooType] }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + const schema = new GraphQLSchema({ types: [FooType] }); + expectPrintedSchema(schema).to.equal(dedent` scalar Foo @specifiedBy(url: "https://example.com/foo_spec") `); }); @@ -528,9 +513,8 @@ describe('Type System Printer', () => { }, }); - const Schema = new GraphQLSchema({ types: [RGBType] }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + const schema = new GraphQLSchema({ types: [RGBType] }); + expectPrintedSchema(schema).to.equal(dedent` enum RGB { RED GREEN @@ -540,7 +524,7 @@ describe('Type System Printer', () => { }); it('Prints empty types', () => { - const Schema = new GraphQLSchema({ + const schema = new GraphQLSchema({ types: [ new GraphQLEnumType({ name: 'SomeEnum', values: {} }), new GraphQLInputObjectType({ name: 'SomeInputObject', fields: {} }), @@ -550,8 +534,7 @@ describe('Type System Printer', () => { ], }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + expectPrintedSchema(schema).to.equal(dedent` enum SomeEnum input SomeInputObject @@ -580,11 +563,10 @@ describe('Type System Printer', () => { locations: [DirectiveLocation.FIELD, DirectiveLocation.QUERY], }); - const Schema = new GraphQLSchema({ + const schema = new GraphQLSchema({ directives: [SimpleDirective, ComplexDirective], }); - const output = printForTest(Schema); - expect(output).to.equal(dedent` + expectPrintedSchema(schema).to.equal(dedent` directive @simpleDirective on FIELD """Complex Directive""" @@ -593,12 +575,12 @@ describe('Type System Printer', () => { }); it('Prints an empty description', () => { - const output = printSingleFieldSchema({ + const schema = buildSingleFieldSchema({ type: GraphQLString, description: '', }); - expect(output).to.equal(dedent` + expectPrintedSchema(schema).to.equal(dedent` type Query { """""" singleField: String @@ -607,27 +589,24 @@ describe('Type System Printer', () => { }); it('One-line prints a short description', () => { - const description = 'This field is awesome'; - const output = printSingleFieldSchema({ + const schema = buildSingleFieldSchema({ type: GraphQLString, - description, + description: 'This field is awesome', }); - expect(output).to.equal(dedent` + + expectPrintedSchema(schema).to.equal(dedent` type Query { """This field is awesome""" singleField: String } `); - const schema = buildSchema(output); - const recreatedRoot = assertObjectType(schema.getTypeMap().Query); - const recreatedField = recreatedRoot.getFields().singleField; - expect(recreatedField).to.include({ description }); }); it('Print Introspection Schema', () => { - const Schema = new GraphQLSchema({}); - const output = printIntrospectionSchema(Schema); - const introspectionSchema = dedent` + const schema = new GraphQLSchema({}); + const output = printIntrospectionSchema(schema); + + expect(output).to.equal(dedent` """ Directs the executor to include this field or fragment only when the \`if\` argument is true. """ @@ -845,16 +824,16 @@ describe('Type System Printer', () => { """Location adjacent to an input object field definition.""" INPUT_FIELD_DEFINITION } - `; - expect(output).to.equal(introspectionSchema); + `); }); it('Print Introspection Schema with comment descriptions', () => { - const Schema = new GraphQLSchema({}); - const output = printIntrospectionSchema(Schema, { + const schema = new GraphQLSchema({}); + const output = printIntrospectionSchema(schema, { commentDescriptions: true, }); - const introspectionSchema = dedent` + + expect(output).to.equal(dedent` # Directs the executor to include this field or fragment only when the \`if\` argument is true. directive @include( # Included when true. @@ -1040,7 +1019,6 @@ describe('Type System Printer', () => { # Location adjacent to an input object field definition. INPUT_FIELD_DEFINITION } - `; - expect(output).to.equal(introspectionSchema); + `); }); }); From 9032eb1f401dbe8f2ac0f83b0eccf12d838b8ae9 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Wed, 13 May 2020 22:53:15 +0300 Subject: [PATCH 22/63] Update deps (#2544) --- .eslintrc.yml | 7 ++- package.json | 6 +-- yarn.lock | 133 ++++++++++++++++++++++++-------------------------- 3 files changed, 73 insertions(+), 73 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index f4c241e034f..77da77ceabc 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -445,7 +445,7 @@ overrides: flowtype/no-types-missing-file-annotation: off ########################################################################## - # `@typescript-eslint/eslint-plugin` rule list based on `v2.31.x` + # `@typescript-eslint/eslint-plugin` rule list based on `v2.33.x` ########################################################################## # Supported Rules @@ -528,6 +528,7 @@ overrides: # Disable conflicting ESLint rules and enable TS-compatible ones default-param-last: off + lines-between-class-members: off no-array-constructor: off no-dupe-class-members: off no-empty-function: off @@ -538,8 +539,10 @@ overrides: require-await: off no-return-await: off '@typescript-eslint/default-param-last': error - '@typescript-eslint/no-dupe-class-members': error + '@typescript-eslint/lines-between-class-members': + [error, always, { exceptAfterSingleLine: true }] '@typescript-eslint/no-array-constructor': error + '@typescript-eslint/no-dupe-class-members': error '@typescript-eslint/no-empty-function': error '@typescript-eslint/no-invalid-this': error '@typescript-eslint/no-unused-expressions': error diff --git a/package.json b/package.json index c371492463b..9636a056aa0 100644 --- a/package.json +++ b/package.json @@ -48,8 +48,8 @@ "@babel/plugin-transform-flow-strip-types": "7.9.0", "@babel/preset-env": "7.9.6", "@babel/register": "7.9.0", - "@typescript-eslint/eslint-plugin": "2.31.0", - "@typescript-eslint/parser": "2.31.0", + "@typescript-eslint/eslint-plugin": "2.33.0", + "@typescript-eslint/parser": "2.33.0", "babel-eslint": "10.1.0", "chai": "4.2.0", "cspell": "4.0.61", @@ -62,6 +62,6 @@ "mocha": "7.1.2", "nyc": "15.0.1", "prettier": "2.0.5", - "typescript": "^3.8.3" + "typescript": "^3.9.2" } } diff --git a/yarn.lock b/yarn.lock index a907a0d9dce..d989d6db305 100644 --- a/yarn.lock +++ b/yarn.lock @@ -240,7 +240,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.7.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": +"@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q== @@ -736,7 +736,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": +"@babel/template@^7.8.3", "@babel/template@^7.8.6": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== @@ -745,7 +745,7 @@ "@babel/parser" "^7.8.6" "@babel/types" "^7.8.6" -"@babel/traverse@^7.7.0", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6": +"@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg== @@ -828,56 +828,56 @@ integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== "@types/node@^12.12.29": - version "12.12.37" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.37.tgz#cb4782d847f801fa58316da5b4801ca3a59ae790" - integrity sha512-4mXKoDptrXAwZErQHrLzpe0FN/0Wmf5JRniSVIdwUrtDf9wnmEV1teCNLBo/TwuXhkK/bVegoEn/wmb+x0AuPg== + version "12.12.39" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.39.tgz#532d25c1e639d89dd6f3aa1d7b3962e3e7fa943d" + integrity sha512-pADGfwnDkr6zagDwEiCVE4yQrv7XDkoeVa4OfA9Ju/zRTk6YNDLGtQbkdL4/56mCQQCs4AhNrBIag6jrp7ZuOg== "@types/parsimmon@^1.10.1": version "1.10.1" resolved "https://registry.yarnpkg.com/@types/parsimmon/-/parsimmon-1.10.1.tgz#d46015ad91128fce06a1a688ab39a2516507f740" integrity sha512-MoF2IC9oGSgArJwlxdst4XsvWuoYfNUWtBw0kpnCi6K05kV+Ecl7siEeJ40tgCbI9uqEMGQL/NlPMRv6KVkY5Q== -"@typescript-eslint/eslint-plugin@2.31.0": - version "2.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.31.0.tgz#942c921fec5e200b79593c71fafb1e3f57aa2e36" - integrity sha512-iIC0Pb8qDaoit+m80Ln/aaeu9zKQdOLF4SHcGLarSeY1gurW6aU4JsOPMjKQwXlw70MvWKZQc6S2NamA8SJ/gg== +"@typescript-eslint/eslint-plugin@2.33.0": + version "2.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz#d6c8319d5011b4783bb3d2dadf105d8bdd499bd5" + integrity sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ== dependencies: - "@typescript-eslint/experimental-utils" "2.31.0" + "@typescript-eslint/experimental-utils" "2.33.0" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@2.31.0": - version "2.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.31.0.tgz#a9ec514bf7fd5e5e82bc10dcb6a86d58baae9508" - integrity sha512-MI6IWkutLYQYTQgZ48IVnRXmLR/0Q6oAyJgiOror74arUMh7EWjJkADfirZhRsUMHeLJ85U2iySDwHTSnNi9vA== +"@typescript-eslint/experimental-utils@2.33.0": + version "2.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.33.0.tgz#000f1e5f344fbea1323dc91cc174805d75f99a03" + integrity sha512-qzPM2AuxtMrRq78LwyZa8Qn6gcY8obkIrBs1ehqmQADwkYzTE1Pb4y2W+U3rE/iFkSWcWHG2LS6MJfj6SmHApg== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.31.0" + "@typescript-eslint/typescript-estree" "2.33.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@2.31.0": - version "2.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.31.0.tgz#beddd4e8efe64995108b229b2862cd5752d40d6f" - integrity sha512-uph+w6xUOlyV2DLSC6o+fBDzZ5i7+3/TxAsH4h3eC64tlga57oMb96vVlXoMwjR/nN+xyWlsnxtbDkB46M2EPQ== +"@typescript-eslint/parser@2.33.0": + version "2.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.33.0.tgz#395c0ef229ebef883608f8632a34f0acf02b9bdd" + integrity sha512-AUtmwUUhJoH6yrtxZMHbRUEMsC2G6z5NSxg9KsROOGqNXasM71I8P2NihtumlWTUCRld70vqIZ6Pm4E5PAziEA== dependencies: "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.31.0" - "@typescript-eslint/typescript-estree" "2.31.0" + "@typescript-eslint/experimental-utils" "2.33.0" + "@typescript-eslint/typescript-estree" "2.33.0" eslint-visitor-keys "^1.1.0" -"@typescript-eslint/typescript-estree@2.31.0": - version "2.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.31.0.tgz#ac536c2d46672aa1f27ba0ec2140d53670635cfd" - integrity sha512-vxW149bXFXXuBrAak0eKHOzbcu9cvi6iNcJDzEtOkRwGHxJG15chiAQAwhLOsk+86p9GTr/TziYvw+H9kMaIgA== +"@typescript-eslint/typescript-estree@2.33.0": + version "2.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.33.0.tgz#33504c050ccafd38f397a645d4e9534d2eccbb5c" + integrity sha512-d8rY6/yUxb0+mEwTShCQF2zYQdLlqihukNfG9IUlLYz5y1CH6G/9XYbrxQLq3Z14RNvkCC6oe+OcFlyUpwUbkg== dependencies: debug "^4.1.1" eslint-visitor-keys "^1.1.0" glob "^7.1.6" is-glob "^4.0.1" lodash "^4.17.15" - semver "^6.3.0" + semver "^7.3.2" tsutils "^3.17.1" acorn-jsx@^5.2.0: @@ -886,9 +886,9 @@ acorn-jsx@^5.2.0: integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== acorn@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" - integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" + integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ== aggregate-error@^3.0.0: version "3.0.1" @@ -1198,9 +1198,9 @@ camelcase@^5.0.0, camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-lite@^1.0.30001043: - version "1.0.30001050" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001050.tgz#11218af4b6b85dc1089536f31e10e3181e849e71" - integrity sha512-OvGZqalCwmapci76ISq5q4kuAskb1ebqF3FEQBv1LE1kWht0pojlDDqzFlmk5jgYkuZN7MNZ1n+ULwe/7MaDNQ== + version "1.0.30001055" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001055.tgz#7b52c3537f7a8c0408aca867e83d2b04268b54cd" + integrity sha512-MbwsBmKrBSKIWldfdIagO5OJWZclpJtS4h0Jrk/4HFrXJxTdVdH23Fd+xCiHriVGvYcWyW8mR/CPsYajlH8Iuw== caseless@~0.12.0: version "0.12.0" @@ -1521,9 +1521,9 @@ cspell-dict-en-gb@^1.1.16: configstore "^5.0.0" cspell-dict-en_us@^1.2.25: - version "1.2.25" - resolved "https://registry.yarnpkg.com/cspell-dict-en_us/-/cspell-dict-en_us-1.2.25.tgz#68803f4e12ba928b2d13e009e9a425458c8f33f9" - integrity sha512-owr04YQAO86wMR0nSup8d7Ogkm23vIOoQsPtIMFou1OA2XLUu13Xhla/Cs+qFzopakpcblvRuMSel0RomkAo7g== + version "1.2.26" + resolved "https://registry.yarnpkg.com/cspell-dict-en_us/-/cspell-dict-en_us-1.2.26.tgz#7e9b9bcbc1b9d3cd7d0442d6264cefdc3cbf8fe1" + integrity sha512-v/9yHpi4J8KAThUa1mtGfhUsv8GXB5lZnKae7ZDN4pzjx5O+KgzZ6GGEUvRlMVzBOl0vEmNInTSIKTG1Y3h4lg== dependencies: configstore "^5.0.0" @@ -1626,16 +1626,16 @@ cspell-dict-scala@^1.0.11: configstore "^5.0.0" cspell-dict-software-terms@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/cspell-dict-software-terms/-/cspell-dict-software-terms-1.0.9.tgz#76d10575c6ef34bc040bad44fe95b68f862d6d96" - integrity sha512-SfnuDuT9Xae6cri/xfGqHQcgO7QBJ08LBeR+w0RIhGZSHoITiz6iCMnd3kdeQqst7c1FwkJ5s6m+zhlmQvDE9g== + version "1.0.10" + resolved "https://registry.yarnpkg.com/cspell-dict-software-terms/-/cspell-dict-software-terms-1.0.10.tgz#8aa6fe2c6979810675e1dadee035404f71538a1e" + integrity sha512-buww9OWunaLwRBiJ+gHW7DLoqMtSbHR6sP3DkvjSZBeke3KxAyS2HmsXPTPVrHFrbqm6qCDmGBs442HZcUz3Iw== dependencies: configstore "^5.0.0" cspell-dict-typescript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cspell-dict-typescript/-/cspell-dict-typescript-1.0.4.tgz#95ca26adf15c5e31cda2506e03ce7b7c18e9fbb0" - integrity sha512-cniGSmTohYriEgGJ0PgcQP2GCGP+PH/0WZ2N7BTTemQr/mHTU6bKWy8DVK63YEtYPEmhZv+G2xPBgBD41QQypQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/cspell-dict-typescript/-/cspell-dict-typescript-1.0.5.tgz#7e375a6f694b9a925647e5a5696cc992e5411339" + integrity sha512-bp4rf3/N02Q6JJhJyDcmCtzn9L00nRBQaar3uxRR7lHz3JfIPujUpTXpJN+iuhhcBv8jL1bKTd5wCpfRyHSi1g== dependencies: configstore "^5.0.0" @@ -1854,9 +1854,9 @@ ecc-jsbn@~0.1.1: safer-buffer "^2.1.0" electron-to-chromium@^1.3.413: - version "1.3.427" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.427.tgz#ea43d02908a8c71f47ebb46e09de5a3cf8236f04" - integrity sha512-/rG5G7Opcw68/Yrb4qYkz07h3bESVRJjUl4X/FrKLXzoUJleKm6D7K7rTTz8V5LUWnd+BbTOyxJX2XprRqHD8A== + version "1.3.435" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.435.tgz#22a7008e8f5a317a6d2d80802bddacebb19ae025" + integrity sha512-BVXnq+NCefidU7GOFPx4CPBfPcccLCRBKZYSbvBJMSn2kwGD7ML+eUA9tqfHAumRqy3oX5zaeTI1Bpt7qVat0Q== emoji-regex@^7.0.1: version "7.0.3" @@ -2689,14 +2689,11 @@ istanbul-lib-hook@^3.0.0: append-transform "^2.0.0" istanbul-lib-instrument@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" - integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== dependencies: "@babel/core" "^7.7.5" - "@babel/parser" "^7.7.5" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" "@istanbuljs/schema" "^0.1.2" istanbul-lib-coverage "^3.0.0" semver "^6.3.0" @@ -3081,9 +3078,9 @@ node-preload@^0.2.1: process-on-spawn "^1.0.0" node-releases@^1.1.53: - version "1.1.53" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" - integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== + version "1.1.55" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.55.tgz#8af23b7c561d8e2e6e36a46637bab84633b07cee" + integrity sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w== normalize-package-data@^2.3.2, "normalize-package-data@~1.0.1 || ^2.0.0": version "2.5.0" @@ -3735,9 +3732,9 @@ rxjs@^6.5.3: tslib "^1.9.0" safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + 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-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" @@ -3764,7 +3761,7 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1: +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== @@ -4139,9 +4136,9 @@ tough-cookie@~2.5.0: punycode "^2.1.1" tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + version "1.12.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.12.0.tgz#d1fc9cacd06a1456c62f2902b361573e83d66473" + integrity sha512-5rxCQkP0kytf4H1T4xz1imjxaUUPMvc5aWp0rJ/VMIN7ClRiH1FwFvBt8wOeMasp/epeUnmSW6CixSIePtiLqA== tslint@5.14.0: version "5.14.0" @@ -4222,15 +4219,15 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^3.7.5, typescript@^3.8.3: - version "3.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" - integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== +typescript@^3.7.5, typescript@^3.9.2: + version "3.9.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.2.tgz#64e9c8e9be6ea583c54607677dd4680a1cf35db9" + integrity sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw== typescript@next: - version "4.0.0-dev.20200504" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.0-dev.20200504.tgz#2834ad3c388d6ae43e0854fe685e6cca0e61d107" - integrity sha512-K1SWra3OBG3IMflXWznncRLWsaR7D6iWcSk4/O45r/SlXmi35bH/b5Dprl5swYtJQGh7hjplmtvGXnlDaTeQeQ== + version "4.0.0-dev.20200512" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.0-dev.20200512.tgz#6a3c666a9f6c1b99be81e13920d94b6980b4c4b1" + integrity sha512-ZsVvhdxpQaA6KpjlT8wNNtweORzNsMtwgCo8viKWQmOvaU+BlMsd3MjD2LONQjFSiETCaw4uq0nNdyfKrCjjIw== unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" From da023bbeb835a28c850d5e61f50bad543f4bd71d Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 14 May 2020 15:26:16 +0300 Subject: [PATCH 23/63] ESLint: replace deprecated rules with `eslint-plugin-node` (#2545) --- .eslintrc.yml | 79 ++++++++++++++++++++++++++++++++++++---------- package.json | 1 + resources/build.js | 18 +++++++---- yarn.lock | 29 +++++++++++++++-- 4 files changed, 101 insertions(+), 26 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 77da77ceabc..3b3a30a6b88 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -8,6 +8,7 @@ reportUnusedDisableDirectives: true plugins: - graphql-internal - flowtype + - node - import rules: @@ -66,6 +67,58 @@ rules: flowtype/space-before-type-colon: off flowtype/union-intersection-spacing: off + ############################################################################## + # `eslint-plugin-node` rule list based on `v11.1.x` + ############################################################################## + + # Possible Errors + # https://github.com/mysticatea/eslint-plugin-node#possible-errors + + node/handle-callback-err: [error, error] + node/no-callback-literal: error + node/no-exports-assign: error + node/no-extraneous-import: error + node/no-extraneous-require: error + node/no-missing-import: error + node/no-missing-require: error + node/no-new-require: error + node/no-path-concat: error + node/no-process-exit: off + node/no-unpublished-bin: error + node/no-unpublished-import: error + node/no-unpublished-require: error + node/no-unsupported-features/es-builtins: error + node/no-unsupported-features/es-syntax: off # TODO enable + node/no-unsupported-features/node-builtins: off # TODO enable + node/process-exit-as-throw: error + node/shebang: error + + # Best Practices + # https://github.com/mysticatea/eslint-plugin-node#best-practices + node/no-deprecated-api: error + + # Stylistic Issues + # https://github.com/mysticatea/eslint-plugin-node#stylistic-issues + + node/callback-return: error + node/exports-style: off # TODO consider + node/file-extension-in-import: off # TODO consider + node/global-require: error + node/no-mixed-requires: error + node/no-process-env: off + node/no-restricted-import: off + node/no-restricted-require: off + node/no-sync: error + node/prefer-global/buffer: error + node/prefer-global/console: error + node/prefer-global/process: error + node/prefer-global/text-decoder: error + node/prefer-global/text-encoder: error + node/prefer-global/url-search-params: error + node/prefer-global/url: error + node/prefer-promises/dns: off + node/prefer-promises/fs: off + ############################################################################## # `eslint-plugin-import` rule list based on `v2.20.x` ############################################################################## @@ -266,21 +319,6 @@ rules: no-unused-vars: [error, { vars: all, args: all, argsIgnorePattern: '^_' }] no-use-before-define: off - # Node.js and CommonJS - # https://eslint.org/docs/rules/#nodejs-and-commonjs - - callback-return: error - global-require: error - handle-callback-err: [error, error] - no-buffer-constructor: error - no-mixed-requires: error - no-new-require: error - no-path-concat: error - no-process-env: off - no-process-exit: off - no-restricted-modules: off - no-sync: error - # Stylistic Issues # https://eslint.org/docs/rules/#stylistic-issues @@ -440,6 +478,9 @@ overrides: - '@typescript-eslint' extends: - plugin:import/typescript + settings: + node: + tryExtensions: ['.js', '.json', '.node', '.ts', '.d.ts'] rules: flowtype/require-valid-file-annotation: off flowtype/no-types-missing-file-annotation: off @@ -574,6 +615,8 @@ overrides: '@typescript-eslint/type-annotation-spacing': off - files: '**/__*__/**' rules: + node/no-unpublished-import: off + node/no-unpublished-require: off import/no-extraneous-dependencies: off import/no-nodejs-modules: off no-restricted-syntax: off @@ -581,6 +624,10 @@ overrides: parserOptions: sourceType: script rules: + node/no-unpublished-import: off + node/no-unpublished-require: off + node/no-sync: off + node/global-require: off import/no-dynamic-require: off import/no-extraneous-dependencies: off import/no-nodejs-modules: off @@ -588,5 +635,3 @@ overrides: no-await-in-loop: off no-restricted-syntax: off no-console: off - no-sync: off - global-require: off diff --git a/package.json b/package.json index 9636a056aa0..13b31e81a1e 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "eslint-plugin-flowtype": "4.7.0", "eslint-plugin-graphql-internal": "link:./resources/eslint-rules", "eslint-plugin-import": "2.20.2", + "eslint-plugin-node": "^11.1.0", "flow-bin": "0.124.0", "mocha": "7.1.2", "nyc": "15.0.1", diff --git a/resources/build.js b/resources/build.js index f21020f9941..52baba66437 100644 --- a/resources/build.js +++ b/resources/build.js @@ -21,6 +21,17 @@ if (require.main === module) { rmdirRecursive('./dist'); mkdirRecursive('./dist'); + const packageJSON = buildPackageJSON(); + const versionJS = fs.readFileSync('src/version.js', 'utf-8'); + + // TODO: move this assert to integration tests + assert( + versionJS.includes(packageJSON.version), + 'Version in package.json and version.js should match', + ); + + writeFile('./dist/package.json', JSON.stringify(packageJSON, null, 2)); + copyFile('./LICENSE', './dist/LICENSE'); copyFile('./README.md', './dist/README.md'); @@ -36,13 +47,6 @@ if (require.main === module) { } } - const packageJSON = buildPackageJSON(); - assert( - packageJSON.version === require('../dist/version').version, - 'Version in package.json and version.js should match', - ); - - writeFile('./dist/package.json', JSON.stringify(packageJSON, null, 2)); showStats(); } diff --git a/yarn.lock b/yarn.lock index d989d6db305..46bb589026c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1934,6 +1934,14 @@ eslint-module-utils@^2.4.1: debug "^2.6.9" pkg-dir "^2.0.0" +eslint-plugin-es@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.0.tgz#98cb1bc8ab0aa807977855e11ad9d1c9422d014b" + integrity sha512-6/Jb/J/ZvSebydwbBJO1R9E5ky7YeElfK56Veh7e4QGFHCXoIXGH9HhVz+ibJLM3XJ1XjP+T7rKBLUa/Y7eIng== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + eslint-plugin-flowtype@4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.7.0.tgz#903a6ea3eb5cbf4c7ba7fa73cc43fc39ab7e4a70" @@ -1963,6 +1971,18 @@ eslint-plugin-import@2.20.2: read-pkg-up "^2.0.0" resolve "^1.12.0" +eslint-plugin-node@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== + dependencies: + eslint-plugin-es "^3.0.0" + eslint-utils "^2.0.0" + ignore "^5.1.1" + minimatch "^3.0.4" + resolve "^1.10.1" + semver "^6.1.0" + eslint-scope@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" @@ -2494,6 +2514,11 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +ignore@^5.1.1: + version "5.1.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + import-fresh@^3.0.0: version "3.2.1" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" @@ -3678,7 +3703,7 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2: +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.13.1, 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== @@ -3756,7 +3781,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.0, semver@^6.2.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== From ebcb1df0319b385da2f3d054c7ce7be6d6f7889c Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 14 May 2020 15:35:28 +0300 Subject: [PATCH 24/63] ts: add missing `schemaDescription` option of `getIntrospectionQuery` (#2547) --- src/utilities/getIntrospectionQuery.d.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/utilities/getIntrospectionQuery.d.ts b/src/utilities/getIntrospectionQuery.d.ts index b1d5ecc1744..6e2a9e50548 100644 --- a/src/utilities/getIntrospectionQuery.d.ts +++ b/src/utilities/getIntrospectionQuery.d.ts @@ -13,6 +13,10 @@ export interface IntrospectionOptions { // Whether to include `isRepeatable` flag on directives. // Default: false directiveIsRepeatable?: boolean; + + // Whether to include `description` field on schema. + // Default: false + schemaDescription?: boolean; } export function getIntrospectionQuery(options?: IntrospectionOptions): string; From 47345c51f7622b36db1e8efa94ced2545a3dce09 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 14 May 2020 16:07:50 +0300 Subject: [PATCH 25/63] cspell: correctly check 'resources' folder (#2548) --- package.json | 2 +- resources/eslint-rules/no-dir-import.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 13b31e81a1e..b6a8f42a2cb 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "check": "flow check", "check:ts": "dtslint src", "check:cover": "node resources/check-cover.js && nyc report --nycrc-path .nycflowrc.yml", - "check:spelling": "cspell \"./{src/**/,resources**/,}*.{js,ts,md,graphql}\"", + "check:spelling": "cspell \"./{src/**/,resources/**/}*.{js,ts,md,graphql}\"", "build": "node resources/build.js", "changelog": "node resources/gen-changelog.js", "preversion": ". ./resources/checkgit.sh && yarn check --integrity", diff --git a/resources/eslint-rules/no-dir-import.js b/resources/eslint-rules/no-dir-import.js index 45ab9d19f31..44ed0e98b02 100644 --- a/resources/eslint-rules/no-dir-import.js +++ b/resources/eslint-rules/no-dir-import.js @@ -7,11 +7,11 @@ const path = require('path'); module.exports = function (context) { return { - ImportDeclaration: checkImporPath, - ExportNamedDeclaration: checkImporPath, + ImportDeclaration: checkImportPath, + ExportNamedDeclaration: checkImportPath, }; - function checkImporPath(node) { + function checkImportPath(node) { const { source } = node; // bail if the declaration doesn't have a source, e.g. "export { foo };" From 45df65c7c57825918d2dd170ce6803d8b5129bcd Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 14 May 2020 17:09:30 +0300 Subject: [PATCH 26/63] Update deps (#2549) --- package.json | 2 +- yarn.lock | 84 ++++++++++++++++++++++++++-------------------------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/package.json b/package.json index b6a8f42a2cb..8d533ac1c99 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "babel-eslint": "10.1.0", "chai": "4.2.0", "cspell": "4.0.61", - "dtslint": "3.5.2", + "dtslint": "3.6.0", "eslint": "7.0.0", "eslint-plugin-flowtype": "4.7.0", "eslint-plugin-graphql-internal": "link:./resources/eslint-rules", diff --git a/yarn.lock b/yarn.lock index 46bb589026c..c38e965e912 100644 --- a/yarn.lock +++ b/yarn.lock @@ -769,26 +769,26 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@definitelytyped/header-parser@0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@definitelytyped/header-parser/-/header-parser-0.0.29.tgz#81e72279f16ffb7d2c5b2ae7a19982b40544b52d" - integrity sha512-d6FgX8LhSY75fa6cpjsTkLsbFuRKxT4k9EV2oc38wznndlkaWLjP9FW1GT24AMg5hkRuA9AJUbKRO1QhSqvSpA== +"@definitelytyped/header-parser@0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@definitelytyped/header-parser/-/header-parser-0.0.30.tgz#fb600afd236051501e2f7a9f2e24140a2eaca64e" + integrity sha512-oa9EUZ2dT1t4drHE2lOZdSprvXy0BPyoJHyflY0E9qdYxZHaV9y9dkIC8We9B7bx+qCeSSSRrZjChwRmjfCfiA== dependencies: - "@definitelytyped/typescript-versions" "^0.0.29" + "@definitelytyped/typescript-versions" "^0.0.30" "@types/parsimmon" "^1.10.1" parsimmon "^1.13.0" -"@definitelytyped/typescript-versions@0.0.29", "@definitelytyped/typescript-versions@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@definitelytyped/typescript-versions/-/typescript-versions-0.0.29.tgz#1f1a3bb35e2a8d31ce83763481f6e5530f0f92a0" - integrity sha512-jMWqu0U5MiEVuTBtAbLwxKoF1ZWzbrcFrmX6nuzPzwxNHzUJlACq9RnIH93//bU7JOxkW6UrZy/8V8W5jxmiFA== +"@definitelytyped/typescript-versions@0.0.30", "@definitelytyped/typescript-versions@^0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@definitelytyped/typescript-versions/-/typescript-versions-0.0.30.tgz#4e1b6c7919f36c9061d6cb6df769067d35d754c3" + integrity sha512-XrQ8I/uPr+OSR4GP3fJU9v+u+Zflai8ujeTcB7lNfVHmnzgOeD5s1h/+uvUvvKsb8/uz7CbEbII3tcq/11Fsyw== -"@definitelytyped/utils@0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@definitelytyped/utils/-/utils-0.0.29.tgz#dfa642cbec49e6f44789083ff24c182e0da0fb0b" - integrity sha512-cqUjvXijj9PgEbVH+DwS5kLHjB700CmeQhFjfRlxn9CeRzSUoa5D0uOdz9b5Hl4XKDQfo1A1lY04nc6z486Nqw== +"@definitelytyped/utils@0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@definitelytyped/utils/-/utils-0.0.30.tgz#15341410ce17373859d58c8ef0e43f3b20b5ecb4" + integrity sha512-wnOPtMfAB1m3rnUXGblzi2Qk+KU67Tfxh4Tbj2RCxFCyKYVf063DQ+6wU8fb1FdEFvtZ2hIpOs5KewBJkoyZOA== dependencies: - "@definitelytyped/typescript-versions" "^0.0.29" + "@definitelytyped/typescript-versions" "^0.0.30" "@types/node" "^12.12.29" charm "^1.0.2" fs-extra "^8.1.0" @@ -1198,9 +1198,9 @@ camelcase@^5.0.0, camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-lite@^1.0.30001043: - version "1.0.30001055" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001055.tgz#7b52c3537f7a8c0408aca867e83d2b04268b54cd" - integrity sha512-MbwsBmKrBSKIWldfdIagO5OJWZclpJtS4h0Jrk/4HFrXJxTdVdH23Fd+xCiHriVGvYcWyW8mR/CPsYajlH8Iuw== + version "1.0.30001058" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001058.tgz#9f8a318389e28f060272274ac93a661d17f8bf0d" + integrity sha512-UiRZmBYd1HdVVdFKy7PuLVx9e2NS7SMyx7QpWvFjiklYrLJKpLd19cRnRNqlw4zYa7vVejS3c8JUVobX241zHQ== caseless@~0.12.0: version "0.12.0" @@ -1817,27 +1817,27 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" -dts-critic@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/dts-critic/-/dts-critic-3.1.0.tgz#bbbe707f1fb6efa08e85aeaf1ee9dd7a184dca98" - integrity sha512-cNn4SsrlnGqnqxXE0GdPORurDrr+Y8k6yy5eBpjM6lu0C80QgabU8ypq+uAQ+JYeJ/ykQVUNo9zdLQfZHvnSVQ== +dts-critic@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/dts-critic/-/dts-critic-3.2.0.tgz#715e5cad7d5b224fc85304feea1c6c13c4dfdf28" + integrity sha512-qJ7vXQXwp/U/v/sGGbmPl1tAbRNcgmBRHkw8HyC9oA1aVPUDGQbI4MqMmIYAUVUUXlrIkrXiZy3QpXz5DzqkqQ== dependencies: - "@definitelytyped/header-parser" "0.0.29" + "@definitelytyped/header-parser" "0.0.30" command-exists "^1.2.8" rimraf "^3.0.2" semver "^6.2.0" typescript "^3.7.5" yargs "^12.0.5" -dtslint@3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/dtslint/-/dtslint-3.5.2.tgz#56d70b47415e70a3b689c242d19e20d15be7c7e7" - integrity sha512-i76Ai9Oo8uD8IQhGcb8X0AHNs/fo7RUnVSOk+a/OYkO9WXkM7l8oHGnZGZSMu2TbSRE1JQD/hWK56R94e+uXrQ== +dtslint@3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/dtslint/-/dtslint-3.6.0.tgz#0102125e279812b9bce7c5fb93682651ba590596" + integrity sha512-6l2WetYCIPekiKrhnXeu6Tx+Nkf5s5mTm8C35obu3kmSfGMA8I0Qu+NncKxJqyFs4nQp44qnitX3A/KKJd+LGg== dependencies: - "@definitelytyped/header-parser" "0.0.29" - "@definitelytyped/typescript-versions" "0.0.29" - "@definitelytyped/utils" "0.0.29" - dts-critic "^3.0.2" + "@definitelytyped/header-parser" "0.0.30" + "@definitelytyped/typescript-versions" "0.0.30" + "@definitelytyped/utils" "0.0.30" + dts-critic "^3.2.0" fs-extra "^6.0.1" json-stable-stringify "^1.0.1" strip-json-comments "^2.0.1" @@ -1854,9 +1854,9 @@ ecc-jsbn@~0.1.1: safer-buffer "^2.1.0" electron-to-chromium@^1.3.413: - version "1.3.435" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.435.tgz#22a7008e8f5a317a6d2d80802bddacebb19ae025" - integrity sha512-BVXnq+NCefidU7GOFPx4CPBfPcccLCRBKZYSbvBJMSn2kwGD7ML+eUA9tqfHAumRqy3oX5zaeTI1Bpt7qVat0Q== + version "1.3.437" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.437.tgz#110f1cd407e5d09b43d5585e5f237b71063412cf" + integrity sha512-PBQn2q68ErqMyBUABh9Gh8R6DunGky8aB5y3N5lPM7OVpldwyUbAK5AX9WcwE/5F6ceqvQ+iQLYkJYRysAs6Bg== emoji-regex@^7.0.1: version "7.0.3" @@ -3883,9 +3883,9 @@ spdx-exceptions@^2.1.0: integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" @@ -4161,9 +4161,9 @@ tough-cookie@~2.5.0: punycode "^2.1.1" tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.12.0.tgz#d1fc9cacd06a1456c62f2902b361573e83d66473" - integrity sha512-5rxCQkP0kytf4H1T4xz1imjxaUUPMvc5aWp0rJ/VMIN7ClRiH1FwFvBt8wOeMasp/epeUnmSW6CixSIePtiLqA== + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== tslint@5.14.0: version "5.14.0" @@ -4250,9 +4250,9 @@ typescript@^3.7.5, typescript@^3.9.2: integrity sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw== typescript@next: - version "4.0.0-dev.20200512" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.0-dev.20200512.tgz#6a3c666a9f6c1b99be81e13920d94b6980b4c4b1" - integrity sha512-ZsVvhdxpQaA6KpjlT8wNNtweORzNsMtwgCo8viKWQmOvaU+BlMsd3MjD2LONQjFSiETCaw4uq0nNdyfKrCjjIw== + version "4.0.0-dev.20200514" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.0-dev.20200514.tgz#d32771b84c2b42f4851290d4dcc8201969183af9" + integrity sha512-o++Z0PwCL2iqEwTnoUVfDIAMo9xS+dvxm/6sl6n2VfxGGmVyaC9F6Naaylh+VZ5qG6Actdso0kJnzDxXVwY5fw== unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" From e7878bc309743d0f0082754712eeeffb26cdd967 Mon Sep 17 00:00:00 2001 From: Naman Kumar Date: Thu, 14 May 2020 20:27:00 +0530 Subject: [PATCH 27/63] [cspell] migrate custom words to upstream dictionaries (#2538) --- cspell.json | 53 +---------------------------------------------------- 1 file changed, 1 insertion(+), 52 deletions(-) diff --git a/cspell.json b/cspell.json index 58bb085ebda..3d89a84bf30 100644 --- a/cspell.json +++ b/cspell.json @@ -5,11 +5,6 @@ "src/__fixtures__/github-schema.json" ], "words": [ - "jsutils", - "tsutils", - "noflow", - "flowlint", - // Different names used inside tests "Skywalker", "Leia", @@ -34,52 +29,6 @@ "ORing", "FXXX", "XXXF", - "bfnrt", - - // TODO: contribute to upstream dictionaries - "ASTs", - "adjacencies", - "bigint", - "bugfixes", - "contravariant", - "dedent", - "deserialized", - "dirent", - "docstring", - "erroring", - "filepath", - "filepaths", - "hardcoded", - "heredoc", - "iteratable", - "lexable", - "lexed", - "lexes", - "lexing", - "memoed", - "memoization", - "memoized", - "memoizes", - "memoizing", - "nullability", - "nullish", - "passthrough", - "polyfilled", - "promisify", - "pubsub", - "punctuator", - "punctuators", - "recurse", - "recursing", - "refetch", - "stateful", - "stringifies", - "subfields", - "subgraphs", - "subtrees", - "subtyped", - "superset", - "undefine", - "unparsed" + "bfnrt" ] } From 83e0b8a8ece79f7cf44dcec43d54d29c69fdb7d2 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 14 May 2020 20:09:58 +0300 Subject: [PATCH 28/63] resources: cleanup scripts (#2550) --- .eslintrc.yml | 1 + resources/benchmark.js | 22 +++----- resources/build.js | 105 ++++++++++++++++++--------------------- resources/check-cover.js | 11 ++-- resources/gen-version.js | 12 +++-- resources/utils.js | 28 ----------- 6 files changed, 71 insertions(+), 108 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 3b3a30a6b88..0e742b2d1ff 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -626,6 +626,7 @@ overrides: rules: node/no-unpublished-import: off node/no-unpublished-require: off + node/no-missing-require: off node/no-sync: off node/global-require: off import/no-dynamic-require: off diff --git a/resources/benchmark.js b/resources/benchmark.js index c8a39255ce8..c462b896b33 100644 --- a/resources/benchmark.js +++ b/resources/benchmark.js @@ -8,14 +8,7 @@ const path = require('path'); const assert = require('assert'); const { red, green, yellow, cyan, grey } = require('./colors'); -const { - exec, - copyFile, - writeFile, - rmdirRecursive, - mkdirRecursive, - readdirRecursive, -} = require('./utils'); +const { exec, rmdirRecursive, readdirRecursive } = require('./utils'); const { sampleModule } = require('./benchmark-fork'); const NS_PER_SEC = 1e9; @@ -44,7 +37,7 @@ function prepareRevision(revision) { const dir = path.join(os.tmpdir(), 'graphql-js-benchmark', hash); rmdirRecursive(dir); - mkdirRecursive(dir); + fs.mkdirSync(dir); exec(`git archive "${hash}" | tar -xC "${dir}"`); exec('yarn install', { cwd: dir }); @@ -64,19 +57,20 @@ function babelBuild(dir) { process.chdir(dir); rmdirRecursive('./benchmarkDist'); - mkdirRecursive('./benchmarkDist'); + fs.mkdirSync('./benchmarkDist'); const babelPath = path.join(dir, 'node_modules', '@babel', 'core'); const babel = require(babelPath); for (const filepath of readdirRecursive('./src')) { const srcPath = path.join('./src', filepath); - const distPath = path.join('./benchmarkDist', filepath); + const destPath = path.join('./benchmarkDist', filepath); + fs.mkdirSync(path.dirname(destPath), { recursive: true }); if (filepath.endsWith('.js')) { - const cjs = babel.transformFileSync(srcPath, { envName: 'cjs' }); - writeFile(distPath, cjs.code); + const cjs = babel.transformFileSync(srcPath, { envName: 'cjs' }).code; + fs.writeFileSync(destPath, cjs); } else { - copyFile(srcPath, distPath); + fs.copyFileSync(srcPath, destPath); } } diff --git a/resources/build.js b/resources/build.js index 52baba66437..728bef7b881 100644 --- a/resources/build.js +++ b/resources/build.js @@ -8,46 +8,66 @@ const assert = require('assert'); const babel = require('@babel/core'); -const { - copyFile, - writeFile, - rmdirRecursive, - mkdirRecursive, - readdirRecursive, - parseSemver, -} = require('./utils'); +const { rmdirRecursive, readdirRecursive } = require('./utils'); if (require.main === module) { rmdirRecursive('./dist'); - mkdirRecursive('./dist'); + fs.mkdirSync('./dist'); + const srcFiles = readdirRecursive('./src', { ignoreDir: /^__.*__$/ }); + for (const filepath of srcFiles) { + const srcPath = path.join('./src', filepath); + const destPath = path.join('./dist', filepath); + + fs.mkdirSync(path.dirname(destPath), { recursive: true }); + if (filepath.endsWith('.js')) { + fs.copyFileSync(srcPath, destPath + '.flow'); + + const cjs = babelBuild(srcPath, { envName: 'cjs' }); + fs.writeFileSync(destPath, cjs); + + const mjs = babelBuild(srcPath, { envName: 'mjs' }); + fs.writeFileSync(destPath.replace(/\.js$/, '.mjs'), mjs); + } else if (filepath.endsWith('.d.ts')) { + fs.copyFileSync(srcPath, destPath); + } + } + + fs.copyFileSync('./LICENSE', './dist/LICENSE'); + fs.copyFileSync('./README.md', './dist/README.md'); + + // Should be done as the last step so only valid packages can be published const packageJSON = buildPackageJSON(); - const versionJS = fs.readFileSync('src/version.js', 'utf-8'); + fs.writeFileSync('./dist/package.json', JSON.stringify(packageJSON, null, 2)); + + showStats(); +} - // TODO: move this assert to integration tests +function babelBuild(srcPath, options) { + return babel.transformFileSync(srcPath, options).code + '\n'; +} + +function buildPackageJSON() { + const packageJSON = require('../package.json'); + delete packageJSON.private; + delete packageJSON.scripts; + delete packageJSON.devDependencies; + + const versionJS = require('../dist/version.js'); assert( - versionJS.includes(packageJSON.version), + versionJS.version === packageJSON.version, 'Version in package.json and version.js should match', ); - writeFile('./dist/package.json', JSON.stringify(packageJSON, null, 2)); - - copyFile('./LICENSE', './dist/LICENSE'); - copyFile('./README.md', './dist/README.md'); - - const srcFiles = readdirRecursive('./src', { ignoreDir: /^__.*__$/ }); - for (const filepath of srcFiles) { - if (filepath.endsWith('.js')) { - buildJSFile(filepath); - } else if (filepath.endsWith('.d.ts')) { - const srcPath = path.join('./src', filepath); - const destPath = path.join('./dist', filepath); + if (versionJS.preReleaseTag != null) { + const [tag] = versionJS.preReleaseTag.split('.'); + assert(['alpha', 'beta', 'rc'].includes(tag), `"${tag}" tag is supported.`); - copyFile(srcPath, destPath); - } + assert(!packageJSON.publishConfig, 'Can not override "publishConfig".'); + packageJSON.publishConfig = { tag: tag || 'latest' }; } - showStats(); + return packageJSON; } function showStats() { @@ -95,34 +115,3 @@ function showStats() { 'Total'.padStart(typeMaxLength) + ' | ' + totalMB.padStart(sizeMaxLength), ); } - -function babelBuild(srcPath, envName) { - return babel.transformFileSync(srcPath, { envName }).code + '\n'; -} - -function buildJSFile(filepath) { - const srcPath = path.join('./src', filepath); - const destPath = path.join('./dist', filepath); - - copyFile(srcPath, destPath + '.flow'); - writeFile(destPath, babelBuild(srcPath, 'cjs')); - writeFile(destPath.replace(/\.js$/, '.mjs'), babelBuild(srcPath, 'mjs')); -} - -function buildPackageJSON() { - const packageJSON = require('../package.json'); - delete packageJSON.private; - delete packageJSON.scripts; - delete packageJSON.devDependencies; - - const { preReleaseTag } = parseSemver(packageJSON.version); - if (preReleaseTag != null) { - const [tag] = preReleaseTag.split('.'); - assert(['alpha', 'beta', 'rc'].includes(tag), `"${tag}" tag is supported.`); - - assert(!packageJSON.publishConfig, 'Can not override "publishConfig".'); - packageJSON.publishConfig = { tag: tag || 'latest' }; - } - - return packageJSON; -} diff --git a/resources/check-cover.js b/resources/check-cover.js index 42a30e4eee5..612b657e0d6 100644 --- a/resources/check-cover.js +++ b/resources/check-cover.js @@ -2,24 +2,25 @@ 'use strict'; +const fs = require('fs'); const path = require('path'); const { exec, execAsync, - writeFile, rmdirRecursive, readdirRecursive, } = require('./utils'); rmdirRecursive('./coverage/flow'); getFullCoverage() - .then((fullCoverage) => - writeFile( + .then((fullCoverage) => { + fs.mkdirSync('./coverage/flow', { recursive: true }); + fs.writeFileSync( './coverage/flow/full-coverage.json', JSON.stringify(fullCoverage), - ), - ) + ); + }) .catch((error) => { console.error(error.stack); process.exit(1); diff --git a/resources/gen-version.js b/resources/gen-version.js index 1908f15d354..2224e44d821 100644 --- a/resources/gen-version.js +++ b/resources/gen-version.js @@ -2,11 +2,17 @@ 'use strict'; +const fs = require('fs'); + const { version } = require('../package.json'); -const { writeFile, parseSemver } = require('./utils'); +const versionMatch = /^(\d+)\.(\d+)\.(\d+)-?(.*)?$/.exec(version); +if (!versionMatch) { + throw new Error('Version does not match semver spec: ' + version); +} + +const [, major, minor, patch, preReleaseTag] = versionMatch; -const { major, minor, patch, preReleaseTag } = parseSemver(version); const body = `// @flow strict /** @@ -31,5 +37,5 @@ export const versionInfo = Object.freeze({ `; if (require.main === module) { - writeFile('./src/version.js', body); + fs.writeFileSync('./src/version.js', body); } diff --git a/resources/utils.js b/resources/utils.js index 3c64785d7fa..e72f9c84d18 100644 --- a/resources/utils.js +++ b/resources/utils.js @@ -34,10 +34,6 @@ function removeTrailingNewLine(str) { return str.split('\n').slice(0, -1).join('\n'); } -function mkdirRecursive(dirPath) { - fs.mkdirSync(dirPath, { recursive: true }); -} - function rmdirRecursive(dirPath) { if (fs.existsSync(dirPath)) { for (const dirent of fs.readdirSync(dirPath, { withFileTypes: true })) { @@ -73,33 +69,9 @@ function readdirRecursive(dirPath, opts = {}) { return result; } -function writeFile(destPath, data) { - mkdirRecursive(path.dirname(destPath)); - fs.writeFileSync(destPath, data); -} - -function copyFile(srcPath, destPath) { - mkdirRecursive(path.dirname(destPath)); - fs.copyFileSync(srcPath, destPath); -} - -function parseSemver(version) { - const match = /^(\d+)\.(\d+)\.(\d+)-?(.*)?$/.exec(version); - if (!match) { - throw new Error('Version does not match semver spec: ' + version); - } - - const [, major, minor, patch, preReleaseTag] = match; - return { major, minor, patch, preReleaseTag }; -} - module.exports = { exec, execAsync, - copyFile, - writeFile, rmdirRecursive, - mkdirRecursive, readdirRecursive, - parseSemver, }; From de9a4b6aff41465d75e0162a97c69d99e3da9f40 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 14 May 2020 21:39:20 +0300 Subject: [PATCH 29/63] package.json: change how 'eslint-plugin-graphql-internal' installed (#2551) --- package.json | 2 +- yarn.lock | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 8d533ac1c99..061a1e7a5fa 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "dtslint": "3.6.0", "eslint": "7.0.0", "eslint-plugin-flowtype": "4.7.0", - "eslint-plugin-graphql-internal": "link:./resources/eslint-rules", + "eslint-plugin-graphql-internal": "file:./resources/eslint-rules", "eslint-plugin-import": "2.20.2", "eslint-plugin-node": "^11.1.0", "flow-bin": "0.124.0", diff --git a/yarn.lock b/yarn.lock index c38e965e912..657cb23824b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1949,9 +1949,8 @@ eslint-plugin-flowtype@4.7.0: dependencies: lodash "^4.17.15" -"eslint-plugin-graphql-internal@link:./resources/eslint-rules": +"eslint-plugin-graphql-internal@file:./resources/eslint-rules": version "0.0.0" - uid "" eslint-plugin-import@2.20.2: version "2.20.2" From 6cbb494b192df903f267a52770a9f597b057c258 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 14 May 2020 22:08:03 +0300 Subject: [PATCH 30/63] Switch to 'package-lock.json' (#2552) --- .gitignore | 1 - .travis.yml | 2 +- README.md | 8 +- package-lock.json | 6406 ++++++++++++++++++++++++++++++ package.json | 7 +- resources/benchmark.js | 2 +- resources/check-cycles.js | 2 +- resources/eslint-rules/README.md | 2 +- resources/gen-version.js | 2 +- yarn.lock | 4518 --------------------- 10 files changed, 6419 insertions(+), 4531 deletions(-) create mode 100644 package-lock.json delete mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index 4186835d328..12418e3053f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ # https://help.github.com/articles/ignoring-files/#create-a-global-gitignore # https://www.gitignore.io/ -package-lock.json .nyc_output .eslintcache node_modules diff --git a/.travis.yml b/.travis.yml index 7b74d55c3e1..403a3a3aa8e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ git: depth: 5 language: node_js -cache: yarn +cache: npm # https://github.com/nodejs/Release node_js: diff --git a/README.md b/README.md index 82b748950ae..9651a25f6b1 100644 --- a/README.md +++ b/README.md @@ -24,16 +24,16 @@ through that README and the corresponding tests in parallel. Install GraphQL.js from npm -With yarn: +With npm: ```sh -yarn add graphql +npm install --save graphql ``` -or alternatively using npm: +or alternatively using yarn: ```sh -npm install --save graphql +yarn add graphql ``` GraphQL.js provides two important capabilities: building a type schema, and diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000000..d2b144d7fa9 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6406 @@ +{ + "name": "graphql", + "version": "15.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/compat-data": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.6.tgz", + "integrity": "sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==", + "dev": true, + "requires": { + "browserslist": "^4.11.1", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", + "dev": true, + "requires": { + "@babel/types": "^7.9.6", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz", + "integrity": "sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.9.6", + "browserslist": "^4.11.1", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", + "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-define-map": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "dev": true, + "requires": { + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-transforms": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-replace-supers": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz", + "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6" + } + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helpers": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz", + "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", + "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz", + "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.9.5" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", + "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", + "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.8", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz", + "integrity": "sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", + "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz", + "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz", + "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz", + "integrity": "sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-flow": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", + "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz", + "integrity": "sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz", + "integrity": "sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz", + "integrity": "sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", + "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz", + "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", + "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/preset-env": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz", + "integrity": "sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.9.6", + "@babel/helper-compilation-targets": "^7.9.6", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-numeric-separator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.9.6", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.9.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.9.5", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.9.5", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.9.0", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.9.6", + "@babel/plugin-transform-modules-commonjs": "^7.9.6", + "@babel/plugin-transform-modules-systemjs": "^7.9.6", + "@babel/plugin-transform-modules-umd": "^7.9.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.9.5", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.9.6", + "browserslist": "^4.11.1", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/register": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.9.0.tgz", + "integrity": "sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q==", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + } + }, + "@babel/runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", + "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@definitelytyped/header-parser": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.30.tgz", + "integrity": "sha512-oa9EUZ2dT1t4drHE2lOZdSprvXy0BPyoJHyflY0E9qdYxZHaV9y9dkIC8We9B7bx+qCeSSSRrZjChwRmjfCfiA==", + "dev": true, + "requires": { + "@definitelytyped/typescript-versions": "^0.0.30", + "@types/parsimmon": "^1.10.1", + "parsimmon": "^1.13.0" + } + }, + "@definitelytyped/typescript-versions": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.30.tgz", + "integrity": "sha512-XrQ8I/uPr+OSR4GP3fJU9v+u+Zflai8ujeTcB7lNfVHmnzgOeD5s1h/+uvUvvKsb8/uz7CbEbII3tcq/11Fsyw==", + "dev": true + }, + "@definitelytyped/utils": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.30.tgz", + "integrity": "sha512-wnOPtMfAB1m3rnUXGblzi2Qk+KU67Tfxh4Tbj2RCxFCyKYVf063DQ+6wU8fb1FdEFvtZ2hIpOs5KewBJkoyZOA==", + "dev": true, + "requires": { + "@definitelytyped/typescript-versions": "^0.0.30", + "@types/node": "^12.12.29", + "charm": "^1.0.2", + "fs-extra": "^8.1.0", + "fstream": "^1.0.12", + "npm-registry-client": "^8.6.0", + "tar": "^2.2.2", + "tar-stream": "1.6.2" + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", + "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", + "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", + "dev": true + }, + "@types/node": { + "version": "12.12.39", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.39.tgz", + "integrity": "sha512-pADGfwnDkr6zagDwEiCVE4yQrv7XDkoeVa4OfA9Ju/zRTk6YNDLGtQbkdL4/56mCQQCs4AhNrBIag6jrp7ZuOg==", + "dev": true + }, + "@types/parsimmon": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@types/parsimmon/-/parsimmon-1.10.1.tgz", + "integrity": "sha512-MoF2IC9oGSgArJwlxdst4XsvWuoYfNUWtBw0kpnCi6K05kV+Ecl7siEeJ40tgCbI9uqEMGQL/NlPMRv6KVkY5Q==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz", + "integrity": "sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "2.33.0", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.33.0.tgz", + "integrity": "sha512-qzPM2AuxtMrRq78LwyZa8Qn6gcY8obkIrBs1ehqmQADwkYzTE1Pb4y2W+U3rE/iFkSWcWHG2LS6MJfj6SmHApg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.33.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.33.0.tgz", + "integrity": "sha512-AUtmwUUhJoH6yrtxZMHbRUEMsC2G6z5NSxg9KsROOGqNXasM71I8P2NihtumlWTUCRld70vqIZ6Pm4E5PAziEA==", + "dev": true, + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.33.0", + "@typescript-eslint/typescript-estree": "2.33.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.33.0.tgz", + "integrity": "sha512-d8rY6/yUxb0+mEwTShCQF2zYQdLlqihukNfG9IUlLYz5y1CH6G/9XYbrxQLq3Z14RNvkCC6oe+OcFlyUpwUbkg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } + } + }, + "acorn": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "dev": true + }, + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "dev": true + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "requires": { + "default-require-extensions": "^3.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true, + "optional": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + } + }, + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true + }, + "bl": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "dev": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserslist": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001043", + "electron-to-chromium": "^1.3.413", + "node-releases": "^1.1.53", + "pkg-up": "^2.0.0" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "requires": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001058", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001058.tgz", + "integrity": "sha512-UiRZmBYd1HdVVdFKy7PuLVx9e2NS7SMyx7QpWvFjiklYrLJKpLd19cRnRNqlw4zYa7vVejS3c8JUVobX241zHQ==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "charm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-1.0.2.tgz", + "integrity": "sha1-it02cVOm2aWBMxBSxAkJkdqZXjU=", + "dev": true, + "requires": { + "inherits": "^2.0.1" + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "comment-json": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-1.1.3.tgz", + "integrity": "sha1-aYbDMw/uDEyeAMI5jNYa+l2PI54=", + "dev": true, + "requires": { + "json-parser": "^1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true, + "optional": true + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "core-js-compat": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "cspell": { + "version": "4.0.61", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-4.0.61.tgz", + "integrity": "sha512-aRDKzACufP8aYZm7cQHUBlvEIyWFO7gaaVUm75oxFGpWmc4zqnoOcCnciMHadS1W1r0mqMNfBQ4w55OORCQWnA==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "commander": "^2.20.3", + "comment-json": "^1.1.3", + "cspell-glob": "^0.1.18", + "cspell-lib": "^4.1.27", + "fs-extra": "^8.1.0", + "gensequence": "^3.1.1", + "get-stdin": "^7.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + } + }, + "cspell-dict-bash": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cspell-dict-bash/-/cspell-dict-bash-1.0.3.tgz", + "integrity": "sha512-pEGuoZXhgqhpmmvdEoNY/XYDrypI37y0Z09VgKTHEblzTHo++vLyd4Z8r1SY3kJ2eQejduz4IL7ZGXqgtEp2vw==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-companies": { + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/cspell-dict-companies/-/cspell-dict-companies-1.0.22.tgz", + "integrity": "sha512-P7ziSCteONYjlPHFFqZTnisSEJr9h9FXTJh0t9QQIoKcaNR4wij5GiZDv4p4YubCf0z3GeJ7Uao+99RGeHakRQ==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-cpp": { + "version": "1.1.26", + "resolved": "https://registry.npmjs.org/cspell-dict-cpp/-/cspell-dict-cpp-1.1.26.tgz", + "integrity": "sha512-ywY7X6UzC5BC7fQhyRAwZHurl52GjwnY6D2wG57JJ/bcT5IsJOWpLAjHORtUH2AcCp6BSAKR6wxl6/bqSuKHJw==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-django": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/cspell-dict-django/-/cspell-dict-django-1.0.15.tgz", + "integrity": "sha512-heppo6ZEGgv+cVPDLr24miG8xIn3E5SEGFBGHyNLyGqt8sHzeG3eNKhjKOJCC0hG/fq0ZECbE5q4691LvH24/Q==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-dotnet": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/cspell-dict-dotnet/-/cspell-dict-dotnet-1.0.14.tgz", + "integrity": "sha512-gTuh94tNAVMS4XmVCK2AsFgKp2mXBk2b8+f2GLCw2K8HY6QUHlvOJg051JJrZABRW/lAoquKZuqssSo9B1mgng==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-elixir": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/cspell-dict-elixir/-/cspell-dict-elixir-1.0.13.tgz", + "integrity": "sha512-KWDO4NeV3QuMlZxSWpN0sPiFN4GE5AzlDi75eSKRvq/f1+pxgxgXQ5zLNPnDbr2EOSJBV34paZwI+7PvCiTTgA==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-en-gb": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/cspell-dict-en-gb/-/cspell-dict-en-gb-1.1.16.tgz", + "integrity": "sha512-PBzHF40fVj+6Adm3dV3/uhkE2Ptu8W+WJ28socBDDpEfedFMwnC0rpxvAgmKJlLc0OYsn07/yzRnt9srisNrLg==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-en_us": { + "version": "1.2.26", + "resolved": "https://registry.npmjs.org/cspell-dict-en_us/-/cspell-dict-en_us-1.2.26.tgz", + "integrity": "sha512-v/9yHpi4J8KAThUa1mtGfhUsv8GXB5lZnKae7ZDN4pzjx5O+KgzZ6GGEUvRlMVzBOl0vEmNInTSIKTG1Y3h4lg==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-fonts": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/cspell-dict-fonts/-/cspell-dict-fonts-1.0.5.tgz", + "integrity": "sha512-R9A/MVDzqEQbwXaZhmNJ7bSzzkH5YSJ5UDr3wDRk7FXzNNcuJ4J9WRbkDjCDnoVfg0kCx0FeEp0fme+PbLTeng==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-fullstack": { + "version": "1.0.23", + "resolved": "https://registry.npmjs.org/cspell-dict-fullstack/-/cspell-dict-fullstack-1.0.23.tgz", + "integrity": "sha512-vc/aihpKVD/ML+SLVry6kDWFswW/sQfP9QHrr2ZhQLUwhj9pVMnZvx+u1cV8bhMYltWQZxrDhdAe4jrlBrxLHA==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-golang": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/cspell-dict-golang/-/cspell-dict-golang-1.1.14.tgz", + "integrity": "sha512-V9TQQjoTgdLTpLNczEjoF+BO+CkdmuZlD6J71SCT8sczSP0FLz4QkL1MpqiL0lhdnbtASsjs+oCF53Y+dWdh9g==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-haskell": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cspell-dict-haskell/-/cspell-dict-haskell-1.0.4.tgz", + "integrity": "sha512-Wy5EE446icPbsi8bLqSCOtxS5Z6QDLGNBvz6Nh+yvuLf7Nb8mU6NQmfSYH/yMfJoVGa5bpcmv8pQtJV4I2E5Tg==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-html-symbol-entities": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/cspell-dict-html-symbol-entities/-/cspell-dict-html-symbol-entities-1.0.13.tgz", + "integrity": "sha512-u8BARt4r5rdUee7Yw6ejsD69WLib9l+pyBr4UUIZovhCUccddm2LkS9GDJUqWtCf/frZpoTnmpuW/NPWVVG6pQ==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-java": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/cspell-dict-java/-/cspell-dict-java-1.0.12.tgz", + "integrity": "sha512-9pg5IrCEZGlWLgv8qGjxzzca19egfBYrbnuiWhJNLbBGBOTWrwYjFqbLQtMJReXUtWikWLY0KCzRZlCGusr7bw==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-latex": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/cspell-dict-latex/-/cspell-dict-latex-1.0.13.tgz", + "integrity": "sha512-UZqGJQ82mkzseqdF7kWXIrA07VD91W7rWx16DCThDBMohOsFdvCymUUgr0pM90FuqmldSiD+Gi1FayDSyPdNtQ==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-lorem-ipsum": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/cspell-dict-lorem-ipsum/-/cspell-dict-lorem-ipsum-1.0.10.tgz", + "integrity": "sha512-UlboQ3xH+D3l+hemLO4J5yz8EM60SH91f1dJIy2s94AeePZXtwYh1hTFM5dEsXI2CAQkfTu3ZdPWflLsInPfrA==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-php": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/cspell-dict-php/-/cspell-dict-php-1.0.13.tgz", + "integrity": "sha512-RP5XST+hWEqWxlLISS3sXxsQa2YXOWx8X5LcxQHvEGdb1hMNypXxw9V53th7S+hfUTPKJrbUIzckYZp4j8TS4A==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-powershell": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cspell-dict-powershell/-/cspell-dict-powershell-1.0.6.tgz", + "integrity": "sha512-rwxt/fG3Nr7tQaV7e38ilz8qWfXrf5Ie+MQC6Mw/ddjT4wLOkGvruUqtJA/USoDE9PFG12KoarFsWlVXv/nwPA==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-python": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/cspell-dict-python/-/cspell-dict-python-1.0.20.tgz", + "integrity": "sha512-BiV8LnH9YNxvkUbVwTyDpZhOuRjPr8cE+nxpuPDbCHmVJmlLsDlg8MXTcJH8I+OFjoz6YdBX6yqK1bi55Aioow==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-ruby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cspell-dict-ruby/-/cspell-dict-ruby-1.0.3.tgz", + "integrity": "sha512-uFxUyGj9SRASfnd75lcpkoNvMYHNWmqkFmS9ZruL61M1RmFx9eekuEY74nK11qsb/E4o6yPtGAQH4SrotF9SwQ==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-rust": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/cspell-dict-rust/-/cspell-dict-rust-1.0.12.tgz", + "integrity": "sha512-bMt70/aQL2OcadZRtWfPIF/mHWX9JNOGq92UUU2ka+9C3OPBP/TuyYiHhUWt67y/CoIyEQ7/5uAtjX8paLf14w==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-scala": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/cspell-dict-scala/-/cspell-dict-scala-1.0.11.tgz", + "integrity": "sha512-bmAQjapvcceJaiwGTkBd9n2L9GaqpmFDKe5S19WQDsWqjFiDwQ+r47td3TU7yWjOLPqp72h9X/XGzDJFvQEPcg==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-software-terms": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/cspell-dict-software-terms/-/cspell-dict-software-terms-1.0.10.tgz", + "integrity": "sha512-buww9OWunaLwRBiJ+gHW7DLoqMtSbHR6sP3DkvjSZBeke3KxAyS2HmsXPTPVrHFrbqm6qCDmGBs442HZcUz3Iw==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-dict-typescript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/cspell-dict-typescript/-/cspell-dict-typescript-1.0.5.tgz", + "integrity": "sha512-bp4rf3/N02Q6JJhJyDcmCtzn9L00nRBQaar3uxRR7lHz3JfIPujUpTXpJN+iuhhcBv8jL1bKTd5wCpfRyHSi1g==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, + "cspell-glob": { + "version": "0.1.18", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-0.1.18.tgz", + "integrity": "sha512-j7XDtSRUgHZNLcnFNI2ngTvkAlC7AI43LAuOYTCgU3+zKMdwzq6C7m/a1c9tWjnPYJiIPf+OEkE9bAhIufzk3Q==", + "dev": true, + "requires": { + "micromatch": "^4.0.2" + } + }, + "cspell-io": { + "version": "4.0.21", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-4.0.21.tgz", + "integrity": "sha512-dht81s3CMPQTqtYqcJ/imEbE7WoYgGR4F52Fotgvd7Kky+H8GgSBnJYLJNk/PuT2xJ/8ebhx7v464v9cD73Okw==", + "dev": true, + "requires": { + "iconv-lite": "^0.4.24", + "iterable-to-stream": "^1.0.1" + } + }, + "cspell-lib": { + "version": "4.1.27", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-4.1.27.tgz", + "integrity": "sha512-elczs/1V4rL9R4/Sfb5Xg2wkzpd/qDvelk70SChY+6pMzFhqu7nQbs5bmrhHB+Z1ELnmvrUtJBmkeo1uYvN0AQ==", + "dev": true, + "requires": { + "comment-json": "^1.1.3", + "configstore": "^5.0.1", + "cspell-dict-bash": "^1.0.3", + "cspell-dict-companies": "^1.0.21", + "cspell-dict-cpp": "^1.1.26", + "cspell-dict-django": "^1.0.15", + "cspell-dict-dotnet": "^1.0.14", + "cspell-dict-elixir": "^1.0.13", + "cspell-dict-en-gb": "^1.1.16", + "cspell-dict-en_us": "^1.2.25", + "cspell-dict-fonts": "^1.0.5", + "cspell-dict-fullstack": "^1.0.22", + "cspell-dict-golang": "^1.1.14", + "cspell-dict-haskell": "^1.0.4", + "cspell-dict-html-symbol-entities": "^1.0.13", + "cspell-dict-java": "^1.0.12", + "cspell-dict-latex": "^1.0.13", + "cspell-dict-lorem-ipsum": "^1.0.10", + "cspell-dict-php": "^1.0.13", + "cspell-dict-powershell": "^1.0.6", + "cspell-dict-python": "^1.0.20", + "cspell-dict-ruby": "^1.0.3", + "cspell-dict-rust": "^1.0.12", + "cspell-dict-scala": "^1.0.11", + "cspell-dict-software-terms": "^1.0.7", + "cspell-dict-typescript": "^1.0.4", + "cspell-io": "^4.0.21", + "cspell-trie-lib": "^4.1.9", + "cspell-util-bundle": "^4.0.11", + "fs-extra": "^8.1.0", + "gensequence": "^3.1.1", + "minimatch": "^3.0.4", + "vscode-uri": "^2.1.1" + } + }, + "cspell-trie-lib": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-4.1.9.tgz", + "integrity": "sha512-Qf/bnXwEwm6oRaZPvELuIva6iJfCr+4WDbcNaNZUd+J3snanMpzp+TsqHyH3p1dPxnvO8eAEnU9RWVUdbXXnfA==", + "dev": true, + "requires": { + "gensequence": "^3.1.1" + } + }, + "cspell-util-bundle": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/cspell-util-bundle/-/cspell-util-bundle-4.0.11.tgz", + "integrity": "sha512-6AJRN0KbeTJB+IPpwKb11zFUVz2Q8Rgm4qmy/wsbhw6ICFfmgWG5Fr2OzJpZBCm8GJJg1Tjs/VZimSvCdnRj7g==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "requires": { + "strip-bom": "^4.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + } + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true, + "optional": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dot-prop": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dts-critic": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.2.0.tgz", + "integrity": "sha512-qJ7vXQXwp/U/v/sGGbmPl1tAbRNcgmBRHkw8HyC9oA1aVPUDGQbI4MqMmIYAUVUUXlrIkrXiZy3QpXz5DzqkqQ==", + "dev": true, + "requires": { + "@definitelytyped/header-parser": "0.0.30", + "command-exists": "^1.2.8", + "rimraf": "^3.0.2", + "semver": "^6.2.0", + "typescript": "^3.7.5", + "yargs": "^12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "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" + } + } + } + }, + "dtslint": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.0.tgz", + "integrity": "sha512-6l2WetYCIPekiKrhnXeu6Tx+Nkf5s5mTm8C35obu3kmSfGMA8I0Qu+NncKxJqyFs4nQp44qnitX3A/KKJd+LGg==", + "dev": true, + "requires": { + "@definitelytyped/header-parser": "0.0.30", + "@definitelytyped/typescript-versions": "0.0.30", + "@definitelytyped/utils": "0.0.30", + "dts-critic": "^3.2.0", + "fs-extra": "^6.0.1", + "json-stable-stringify": "^1.0.1", + "strip-json-comments": "^2.0.1", + "tslint": "5.14.0", + "typescript": "^4.0.0-dev.20200514", + "yargs": "^15.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", + "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "typescript": { + "version": "4.0.0-dev.20200514", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.0-dev.20200514.tgz", + "integrity": "sha512-o++Z0PwCL2iqEwTnoUVfDIAMo9xS+dvxm/6sl6n2VfxGGmVyaC9F6Naaylh+VZ5qG6Actdso0kJnzDxXVwY5fw==", + "dev": true + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "electron-to-chromium": { + "version": "1.3.437", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.437.tgz", + "integrity": "sha512-PBQn2q68ErqMyBUABh9Gh8R6DunGky8aB5y3N5lPM7OVpldwyUbAK5AX9WcwE/5F6ceqvQ+iQLYkJYRysAs6Bg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.0.0.tgz", + "integrity": "sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0", + "eslint-visitor-keys": "^1.1.0", + "espree": "^7.0.0", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", + "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "eslint-plugin-es": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.0.tgz", + "integrity": "sha512-6/Jb/J/ZvSebydwbBJO1R9E5ky7YeElfK56Veh7e4QGFHCXoIXGH9HhVz+ibJLM3XJ1XjP+T7rKBLUa/Y7eIng==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + } + }, + "eslint-plugin-flowtype": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.7.0.tgz", + "integrity": "sha512-M+hxhSCk5QBEValO5/UqrS4UunT+MgplIJK5wA1sCtXjzBcZkpTGRwxmLHhGpbHcrmQecgt6ZL/KDdXWqGB7VA==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "eslint-plugin-graphql-internal": { + "version": "file:resources/eslint-rules", + "dev": true + }, + "eslint-plugin-import": { + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", + "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.1", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "requires": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", + "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "espree": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.0.0.tgz", + "integrity": "sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flow-bin": { + "version": "0.124.0", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.124.0.tgz", + "integrity": "sha512-KEtDJ7CFUjcuhw6N52FTZshDd1krf1fxpp4APSIrwhVm+IrlcKJ+EMXpeXKM1kKNSZ347dYGh8wEvXQl4pHZEA==", + "dev": true + }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fromentries": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.0.tgz", + "integrity": "sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ==", + "dev": true + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "gensequence": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-3.1.1.tgz", + "integrity": "sha512-ys3h0hiteRwmY6BsvSttPmkhC0vEQHPJduANBRtH/dlDPZ0UBIb/dXy80IcckXyuQ6LKg+PloRqvGER9IS7F7g==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-stdin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "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-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true, + "optional": true + }, + "hasha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", + "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", + "dev": true, + "requires": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + } + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "inquirer": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "requires": { + "append-transform": "^2.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "requires": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "iterable-to-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/iterable-to-stream/-/iterable-to-stream-1.0.1.tgz", + "integrity": "sha512-O62gD5ADMUGtJoOoM9U6LQ7i4byPXUNoHJ6mqsmkQJcom331ZJGDApWgDESWyBMEHEJRjtHozgIiTzYo9RU4UA==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + } + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parser": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/json-parser/-/json-parser-1.1.5.tgz", + "integrity": "sha1-5i7FJh0aal/CDoEqMgdAxtkAVnc=", + "dev": true, + "requires": { + "esprima": "^2.7.0" + } + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mocha": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.2.tgz", + "integrity": "sha512-o96kdRKMKI3E8U0bjnfqW4QMk12MwZ4mhdBTf+B5a1q9+aq2HRnj+3ZdJu0B/ZhJeK78MgYuv6L8d/rA5AeBJA==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "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" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.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": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "requires": { + "process-on-spawn": "^1.0.0" + } + }, + "node-releases": { + "version": "1.1.55", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.55.tgz", + "integrity": "sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-registry-client": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz", + "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", + "dev": true, + "requires": { + "concat-stream": "^1.5.2", + "graceful-fs": "^4.1.6", + "normalize-package-data": "~1.0.1 || ^2.0.0", + "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", + "npmlog": "2 || ^3.1.0 || ^4.0.0", + "once": "^1.3.3", + "request": "^2.74.0", + "retry": "^0.10.0", + "safe-buffer": "^5.1.1", + "semver": "2 >=2.2.1 || 3.x || 4 || 5", + "slide": "^1.1.3", + "ssri": "^5.2.4" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nyc": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", + "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", + "dev": true, + "requires": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "optional": true + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parsimmon": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/parsimmon/-/parsimmon-1.13.0.tgz", + "integrity": "sha512-5UIrOCW+gjbILkjKPgTgmq8LKf8TT3Iy7kN2VD7OtQ81facKn8B4gG1X94jWqXYZsxG2KbJhrv/Yq/5H6BQn7A==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + } + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", + "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "requires": { + "fromentries": "^1.2.0" + } + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", + "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4", + "private": "^0.1.8" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "dev": true, + "requires": { + "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" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "requires": { + "es6-error": "^4.0.1" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "requires": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + } + }, + "string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + }, + "tslint": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.14.0.tgz", + "integrity": "sha512-IUla/ieHVnB8Le7LdQFRGlVJid2T/gaJe5VkjzRVSRR6pA2ODYrnfR1hmxi+5+au9l50jBwpbBL34txgv4NnTQ==", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.2.tgz", + "integrity": "sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vscode-uri": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.1.tgz", + "integrity": "sha512-eY9jmGoEnVf8VE8xr5znSah7Qt1P/xsCdErz+g8HYZtJ7bZqKH5E3d+6oVNm1AC/c6IHUDokbmVXKOi4qPAC9A==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dev": true, + "requires": { + "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.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.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": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + } + } +} diff --git a/package.json b/package.json index 061a1e7a5fa..71dc32af42d 100644 --- a/package.json +++ b/package.json @@ -21,11 +21,12 @@ "graphql-js" ], "engines": { - "node": ">= 10.x" + "node": ">= 10.x", + "yarn": "YARN NO LONGER USED - use npm instead." }, "scripts": { "test": "npm run prettier:check && npm run lint && npm run check && npm run testonly && npm run check:ts && npm run check:spelling", - "test:ci": "yarn check --integrity && npm run prettier:check && npm run lint -- --no-cache && npm run check && npm run testonly:cover && npm run check:ts && npm run check:spelling && npm run build", + "test:ci": "npm run prettier:check && npm run lint -- --no-cache && npm run check && npm run testonly:cover && npm run check:ts && npm run check:spelling && npm run build", "testonly": "mocha --full-trace src/**/__tests__/**/*-test.js", "testonly:cover": "nyc npm run testonly", "lint": "eslint --cache --ext .js,.ts src resources", @@ -38,7 +39,7 @@ "check:spelling": "cspell \"./{src/**/,resources/**/}*.{js,ts,md,graphql}\"", "build": "node resources/build.js", "changelog": "node resources/gen-changelog.js", - "preversion": ". ./resources/checkgit.sh && yarn check --integrity", + "preversion": ". ./resources/checkgit.sh && npm ci", "version": "node resources/gen-version.js && npm test && git add src/version.js", "gitpublish": ". ./resources/gitpublish.sh" }, diff --git a/resources/benchmark.js b/resources/benchmark.js index c462b896b33..d629b34af7e 100644 --- a/resources/benchmark.js +++ b/resources/benchmark.js @@ -40,7 +40,7 @@ function prepareRevision(revision) { fs.mkdirSync(dir); exec(`git archive "${hash}" | tar -xC "${dir}"`); - exec('yarn install', { cwd: dir }); + exec('npm ci', { cwd: dir }); for (const file of findFiles(LOCAL_DIR('src'), '*/__tests__/*')) { const from = LOCAL_DIR('src', file); diff --git a/resources/check-cycles.js b/resources/check-cycles.js index 420652fd93d..321a572cf43 100644 --- a/resources/check-cycles.js +++ b/resources/check-cycles.js @@ -12,7 +12,7 @@ const { exec } = require('./utils'); const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'flow-dep-graph')); const tmpFile = path.join(tmpDir, 'out.dot'); -exec(`yarn flow graph dep-graph --quiet --strip-root --out ${tmpFile}`); +exec(`npx flow graph dep-graph --quiet --strip-root --out ${tmpFile}`); const dot = fs.readFileSync(tmpFile, 'utf-8'); assert(dot.startsWith('digraph {\n') && dot.endsWith('\n}')); const dotLines = dot.split('\n').slice(1, -1); diff --git a/resources/eslint-rules/README.md b/resources/eslint-rules/README.md index fd8a496025d..cec9e87c9bc 100644 --- a/resources/eslint-rules/README.md +++ b/resources/eslint-rules/README.md @@ -3,4 +3,4 @@ This is a dummy npm package that allows us to treat it as an `eslint-plugin-graphql-internal`. It's not actually published, nor are the rules here useful for users of graphql. -**If you modify this rule, you must re-run `yarn` for it to take effect.** +**If you modify this rule, you must re-run `npm install` for it to take effect.** diff --git a/resources/gen-version.js b/resources/gen-version.js index 2224e44d821..3740f8239d7 100644 --- a/resources/gen-version.js +++ b/resources/gen-version.js @@ -17,7 +17,7 @@ const body = `// @flow strict /** * Note: This file is autogenerated using "resources/gen-version.js" script and - * automatically updated by "yarn version" command. + * automatically updated by "npm version" command. */ /** diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 657cb23824b..00000000000 --- a/yarn.lock +++ /dev/null @@ -1,4518 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/compat-data@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.6.tgz#3f604c40e420131affe6f2c8052e9a275ae2049b" - integrity sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g== - dependencies: - browserslist "^4.11.1" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/core@7.9.6", "@babel/core@^7.7.5": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376" - integrity sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.6" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.6" - "@babel/parser" "^7.9.6" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43" - integrity sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ== - dependencies: - "@babel/types" "^7.9.6" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" - integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-compilation-targets@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz#1e05b7ccc9d38d2f8b40b458b380a04dcfadd38a" - integrity sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw== - dependencies: - "@babel/compat-data" "^7.9.6" - browserslist "^4.11.1" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" - integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/types" "^7.8.3" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" - integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== - dependencies: - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" - integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.9.5" - -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-hoist-variables@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" - integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== - -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" - integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-wrap-function" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444" - integrity sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" - integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== - -"@babel/helper-wrap-function@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" - integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helpers@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580" - integrity sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - -"@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" - integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q== - -"@babel/plugin-proposal-async-generator-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" - integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" - integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" - integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" - integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - -"@babel/plugin-proposal-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" - integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - -"@babel/plugin-proposal-object-rest-spread@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz#7a093586fcb18b08266eb1a7177da671ac575b63" - integrity sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.9.5" - -"@babel/plugin-proposal-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" - integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" - integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-async-generators@^7.8.0": - 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== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@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.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz#f2c883bd61a6316f2c89380ae5122f923ba4527f" - integrity sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-json-strings@^7.8.0": - 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== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" - integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-object-rest-spread@^7.8.0": - 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.0": - 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== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" - integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-arrow-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" - integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" - integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - -"@babel/plugin-transform-block-scoped-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" - integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-block-scoping@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" - integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" - integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-split-export-declaration" "^7.8.3" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" - integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-destructuring@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50" - integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-duplicate-keys@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" - integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-exponentiation-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" - integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-flow-strip-types@7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz#8a3538aa40434e000b8f44a3c5c9ac7229bd2392" - integrity sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-flow" "^7.8.3" - -"@babel/plugin-transform-for-of@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" - integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" - integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" - integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-member-expression-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" - integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-modules-amd@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz#8539ec42c153d12ea3836e0e3ac30d5aae7b258e" - integrity sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz#64b7474a4279ee588cacd1906695ca721687c277" - integrity sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz#207f1461c78a231d5337a92140e52422510d81a4" - integrity sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg== - dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" - integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" - integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - -"@babel/plugin-transform-new-target@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" - integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-object-super@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" - integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" - -"@babel/plugin-transform-parameters@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" - integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-property-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" - integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-regenerator@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" - integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" - integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-shorthand-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" - integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" - integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-sticky-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" - integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - -"@babel/plugin-transform-template-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" - integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-typeof-symbol@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" - integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-unicode-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" - integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/preset-env@7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.6.tgz#df063b276c6455ec6fcfc6e53aacc38da9b0aea6" - integrity sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ== - dependencies: - "@babel/compat-data" "^7.9.6" - "@babel/helper-compilation-targets" "^7.9.6" - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-proposal-async-generator-functions" "^7.8.3" - "@babel/plugin-proposal-dynamic-import" "^7.8.3" - "@babel/plugin-proposal-json-strings" "^7.8.3" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-numeric-separator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.6" - "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.9.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.8.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.8.3" - "@babel/plugin-transform-async-to-generator" "^7.8.3" - "@babel/plugin-transform-block-scoped-functions" "^7.8.3" - "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.9.5" - "@babel/plugin-transform-computed-properties" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.9.5" - "@babel/plugin-transform-dotall-regex" "^7.8.3" - "@babel/plugin-transform-duplicate-keys" "^7.8.3" - "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.9.0" - "@babel/plugin-transform-function-name" "^7.8.3" - "@babel/plugin-transform-literals" "^7.8.3" - "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.9.6" - "@babel/plugin-transform-modules-commonjs" "^7.9.6" - "@babel/plugin-transform-modules-systemjs" "^7.9.6" - "@babel/plugin-transform-modules-umd" "^7.9.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" - "@babel/plugin-transform-new-target" "^7.8.3" - "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.9.5" - "@babel/plugin-transform-property-literals" "^7.8.3" - "@babel/plugin-transform-regenerator" "^7.8.7" - "@babel/plugin-transform-reserved-words" "^7.8.3" - "@babel/plugin-transform-shorthand-properties" "^7.8.3" - "@babel/plugin-transform-spread" "^7.8.3" - "@babel/plugin-transform-sticky-regex" "^7.8.3" - "@babel/plugin-transform-template-literals" "^7.8.3" - "@babel/plugin-transform-typeof-symbol" "^7.8.4" - "@babel/plugin-transform-unicode-regex" "^7.8.3" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.9.6" - browserslist "^4.11.1" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/register@7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.9.0.tgz#02464ede57548bddbb5e9f705d263b7c3f43d48b" - integrity sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q== - dependencies: - find-cache-dir "^2.0.0" - lodash "^4.17.13" - make-dir "^2.1.0" - pirates "^4.0.0" - source-map-support "^0.5.16" - -"@babel/runtime@^7.8.4": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" - integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" - integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.6" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.6" - "@babel/types" "^7.9.6" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" - integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA== - dependencies: - "@babel/helper-validator-identifier" "^7.9.5" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@definitelytyped/header-parser@0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@definitelytyped/header-parser/-/header-parser-0.0.30.tgz#fb600afd236051501e2f7a9f2e24140a2eaca64e" - integrity sha512-oa9EUZ2dT1t4drHE2lOZdSprvXy0BPyoJHyflY0E9qdYxZHaV9y9dkIC8We9B7bx+qCeSSSRrZjChwRmjfCfiA== - dependencies: - "@definitelytyped/typescript-versions" "^0.0.30" - "@types/parsimmon" "^1.10.1" - parsimmon "^1.13.0" - -"@definitelytyped/typescript-versions@0.0.30", "@definitelytyped/typescript-versions@^0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@definitelytyped/typescript-versions/-/typescript-versions-0.0.30.tgz#4e1b6c7919f36c9061d6cb6df769067d35d754c3" - integrity sha512-XrQ8I/uPr+OSR4GP3fJU9v+u+Zflai8ujeTcB7lNfVHmnzgOeD5s1h/+uvUvvKsb8/uz7CbEbII3tcq/11Fsyw== - -"@definitelytyped/utils@0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@definitelytyped/utils/-/utils-0.0.30.tgz#15341410ce17373859d58c8ef0e43f3b20b5ecb4" - integrity sha512-wnOPtMfAB1m3rnUXGblzi2Qk+KU67Tfxh4Tbj2RCxFCyKYVf063DQ+6wU8fb1FdEFvtZ2hIpOs5KewBJkoyZOA== - dependencies: - "@definitelytyped/typescript-versions" "^0.0.30" - "@types/node" "^12.12.29" - charm "^1.0.2" - fs-extra "^8.1.0" - fstream "^1.0.12" - npm-registry-client "^8.6.0" - tar "^2.2.2" - tar-stream "1.6.2" - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" - integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" - integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/eslint-visitor-keys@^1.0.0": - version "1.0.0" - 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/json-schema@^7.0.3": - version "7.0.4" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" - integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== - -"@types/node@^12.12.29": - version "12.12.39" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.39.tgz#532d25c1e639d89dd6f3aa1d7b3962e3e7fa943d" - integrity sha512-pADGfwnDkr6zagDwEiCVE4yQrv7XDkoeVa4OfA9Ju/zRTk6YNDLGtQbkdL4/56mCQQCs4AhNrBIag6jrp7ZuOg== - -"@types/parsimmon@^1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@types/parsimmon/-/parsimmon-1.10.1.tgz#d46015ad91128fce06a1a688ab39a2516507f740" - integrity sha512-MoF2IC9oGSgArJwlxdst4XsvWuoYfNUWtBw0kpnCi6K05kV+Ecl7siEeJ40tgCbI9uqEMGQL/NlPMRv6KVkY5Q== - -"@typescript-eslint/eslint-plugin@2.33.0": - version "2.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz#d6c8319d5011b4783bb3d2dadf105d8bdd499bd5" - integrity sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ== - dependencies: - "@typescript-eslint/experimental-utils" "2.33.0" - functional-red-black-tree "^1.0.1" - regexpp "^3.0.0" - tsutils "^3.17.1" - -"@typescript-eslint/experimental-utils@2.33.0": - version "2.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.33.0.tgz#000f1e5f344fbea1323dc91cc174805d75f99a03" - integrity sha512-qzPM2AuxtMrRq78LwyZa8Qn6gcY8obkIrBs1ehqmQADwkYzTE1Pb4y2W+U3rE/iFkSWcWHG2LS6MJfj6SmHApg== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.33.0" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@2.33.0": - version "2.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.33.0.tgz#395c0ef229ebef883608f8632a34f0acf02b9bdd" - integrity sha512-AUtmwUUhJoH6yrtxZMHbRUEMsC2G6z5NSxg9KsROOGqNXasM71I8P2NihtumlWTUCRld70vqIZ6Pm4E5PAziEA== - dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.33.0" - "@typescript-eslint/typescript-estree" "2.33.0" - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/typescript-estree@2.33.0": - version "2.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.33.0.tgz#33504c050ccafd38f397a645d4e9534d2eccbb5c" - integrity sha512-d8rY6/yUxb0+mEwTShCQF2zYQdLlqihukNfG9IUlLYz5y1CH6G/9XYbrxQLq3Z14RNvkCC6oe+OcFlyUpwUbkg== - dependencies: - debug "^4.1.1" - eslint-visitor-keys "^1.1.0" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - -acorn-jsx@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" - integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== - -acorn@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" - integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ== - -aggregate-error@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: - version "6.12.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-colors@3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" - integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== - -ansi-escapes@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== - dependencies: - type-fest "^0.11.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -append-transform@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12" - integrity sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== - dependencies: - default-require-extensions "^3.0.0" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -archy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -array-includes@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" - integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0" - is-string "^1.0.5" - -array.prototype.flat@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== - -babel-code-frame@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-eslint@10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - -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" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== - -bl@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" - integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - dependencies: - inherits "~2.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -browserslist@^4.11.1, browserslist@^4.8.5: - version "4.12.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" - integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== - dependencies: - caniuse-lite "^1.0.30001043" - electron-to-chromium "^1.3.413" - node-releases "^1.1.53" - pkg-up "^2.0.0" - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= - -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= - -caching-transform@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" - integrity sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== - dependencies: - hasha "^5.0.0" - make-dir "^3.0.0" - package-hash "^4.0.0" - write-file-atomic "^3.0.0" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001043: - version "1.0.30001058" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001058.tgz#9f8a318389e28f060272274ac93a661d17f8bf0d" - integrity sha512-UiRZmBYd1HdVVdFKy7PuLVx9e2NS7SMyx7QpWvFjiklYrLJKpLd19cRnRNqlw4zYa7vVejS3c8JUVobX241zHQ== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chai@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" - integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - pathval "^1.1.0" - type-detect "^4.0.5" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" - integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -charm@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/charm/-/charm-1.0.2.tgz#8add367153a6d9a581331052c4090991da995e35" - integrity sha1-it02cVOm2aWBMxBSxAkJkdqZXjU= - dependencies: - inherits "^2.0.1" - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= - -chokidar@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" - integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== - 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.2.0" - optionalDependencies: - fsevents "~2.1.1" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -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== - -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" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -color-convert@^1.9.0: - 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== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "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: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -command-exists@^1.2.8: - version "1.2.9" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" - integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== - -commander@^2.12.1, 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== - -comment-json@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-1.1.3.tgz#6986c3330fee0c4c9e00c2398cd61afa5d8f239e" - integrity sha1-aYbDMw/uDEyeAMI5jNYa+l2PI54= - dependencies: - json-parser "^1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -configstore@^5.0.0, configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - -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== - dependencies: - safe-buffer "~5.1.1" - -core-js-compat@^3.6.2: - 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-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0, cross-spawn@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" - integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -cspell-dict-bash@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cspell-dict-bash/-/cspell-dict-bash-1.0.3.tgz#e3cf0e2dbe56f18c68a16c3eb8037d418e88c3cd" - integrity sha512-pEGuoZXhgqhpmmvdEoNY/XYDrypI37y0Z09VgKTHEblzTHo++vLyd4Z8r1SY3kJ2eQejduz4IL7ZGXqgtEp2vw== - dependencies: - configstore "^5.0.0" - -cspell-dict-companies@^1.0.21: - version "1.0.22" - resolved "https://registry.yarnpkg.com/cspell-dict-companies/-/cspell-dict-companies-1.0.22.tgz#a30983605888ce530e5c7c2ad1b2b9e33c20fcae" - integrity sha512-P7ziSCteONYjlPHFFqZTnisSEJr9h9FXTJh0t9QQIoKcaNR4wij5GiZDv4p4YubCf0z3GeJ7Uao+99RGeHakRQ== - dependencies: - configstore "^5.0.0" - -cspell-dict-cpp@^1.1.26: - version "1.1.26" - resolved "https://registry.yarnpkg.com/cspell-dict-cpp/-/cspell-dict-cpp-1.1.26.tgz#67e3f8d26ec2c49d305b086013935f0b0fade2e0" - integrity sha512-ywY7X6UzC5BC7fQhyRAwZHurl52GjwnY6D2wG57JJ/bcT5IsJOWpLAjHORtUH2AcCp6BSAKR6wxl6/bqSuKHJw== - dependencies: - configstore "^5.0.0" - -cspell-dict-django@^1.0.15: - version "1.0.15" - resolved "https://registry.yarnpkg.com/cspell-dict-django/-/cspell-dict-django-1.0.15.tgz#a0faec617cab280bd9ef942d1b2a6a5634e5c143" - integrity sha512-heppo6ZEGgv+cVPDLr24miG8xIn3E5SEGFBGHyNLyGqt8sHzeG3eNKhjKOJCC0hG/fq0ZECbE5q4691LvH24/Q== - dependencies: - configstore "^5.0.0" - -cspell-dict-dotnet@^1.0.14: - version "1.0.14" - resolved "https://registry.yarnpkg.com/cspell-dict-dotnet/-/cspell-dict-dotnet-1.0.14.tgz#780c3143d340e3211be27df7cfd2d9d1f82b24c5" - integrity sha512-gTuh94tNAVMS4XmVCK2AsFgKp2mXBk2b8+f2GLCw2K8HY6QUHlvOJg051JJrZABRW/lAoquKZuqssSo9B1mgng== - dependencies: - configstore "^5.0.0" - -cspell-dict-elixir@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/cspell-dict-elixir/-/cspell-dict-elixir-1.0.13.tgz#f3d08b27d2ee2a25fcae5050820d5680028e95d5" - integrity sha512-KWDO4NeV3QuMlZxSWpN0sPiFN4GE5AzlDi75eSKRvq/f1+pxgxgXQ5zLNPnDbr2EOSJBV34paZwI+7PvCiTTgA== - dependencies: - configstore "^5.0.0" - -cspell-dict-en-gb@^1.1.16: - version "1.1.16" - resolved "https://registry.yarnpkg.com/cspell-dict-en-gb/-/cspell-dict-en-gb-1.1.16.tgz#75155e43c21e972ac2f60117b69fd53b5701335f" - integrity sha512-PBzHF40fVj+6Adm3dV3/uhkE2Ptu8W+WJ28socBDDpEfedFMwnC0rpxvAgmKJlLc0OYsn07/yzRnt9srisNrLg== - dependencies: - configstore "^5.0.0" - -cspell-dict-en_us@^1.2.25: - version "1.2.26" - resolved "https://registry.yarnpkg.com/cspell-dict-en_us/-/cspell-dict-en_us-1.2.26.tgz#7e9b9bcbc1b9d3cd7d0442d6264cefdc3cbf8fe1" - integrity sha512-v/9yHpi4J8KAThUa1mtGfhUsv8GXB5lZnKae7ZDN4pzjx5O+KgzZ6GGEUvRlMVzBOl0vEmNInTSIKTG1Y3h4lg== - dependencies: - configstore "^5.0.0" - -cspell-dict-fonts@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/cspell-dict-fonts/-/cspell-dict-fonts-1.0.5.tgz#df96979e07d68cd186fe20eae0113e939d880c4f" - integrity sha512-R9A/MVDzqEQbwXaZhmNJ7bSzzkH5YSJ5UDr3wDRk7FXzNNcuJ4J9WRbkDjCDnoVfg0kCx0FeEp0fme+PbLTeng== - dependencies: - configstore "^5.0.0" - -cspell-dict-fullstack@^1.0.22: - version "1.0.23" - resolved "https://registry.yarnpkg.com/cspell-dict-fullstack/-/cspell-dict-fullstack-1.0.23.tgz#c933e3987edf6e81e85bf58ca31e574ff79f9d0c" - integrity sha512-vc/aihpKVD/ML+SLVry6kDWFswW/sQfP9QHrr2ZhQLUwhj9pVMnZvx+u1cV8bhMYltWQZxrDhdAe4jrlBrxLHA== - dependencies: - configstore "^5.0.0" - -cspell-dict-golang@^1.1.14: - version "1.1.14" - resolved "https://registry.yarnpkg.com/cspell-dict-golang/-/cspell-dict-golang-1.1.14.tgz#5567d823a3e58b8f4c783bea185e95580008d47e" - integrity sha512-V9TQQjoTgdLTpLNczEjoF+BO+CkdmuZlD6J71SCT8sczSP0FLz4QkL1MpqiL0lhdnbtASsjs+oCF53Y+dWdh9g== - dependencies: - configstore "^5.0.0" - -cspell-dict-haskell@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cspell-dict-haskell/-/cspell-dict-haskell-1.0.4.tgz#98a3a00fb72d39f3b94aa019fac7ed86ab73dbd8" - integrity sha512-Wy5EE446icPbsi8bLqSCOtxS5Z6QDLGNBvz6Nh+yvuLf7Nb8mU6NQmfSYH/yMfJoVGa5bpcmv8pQtJV4I2E5Tg== - dependencies: - configstore "^5.0.0" - -cspell-dict-html-symbol-entities@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/cspell-dict-html-symbol-entities/-/cspell-dict-html-symbol-entities-1.0.13.tgz#41b770fa08f82b20f9e3c7f234a320bbb1dee851" - integrity sha512-u8BARt4r5rdUee7Yw6ejsD69WLib9l+pyBr4UUIZovhCUccddm2LkS9GDJUqWtCf/frZpoTnmpuW/NPWVVG6pQ== - dependencies: - configstore "^5.0.0" - -cspell-dict-java@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/cspell-dict-java/-/cspell-dict-java-1.0.12.tgz#d0220153984a0ccf6bbd69617f324ab11ce4a3fe" - integrity sha512-9pg5IrCEZGlWLgv8qGjxzzca19egfBYrbnuiWhJNLbBGBOTWrwYjFqbLQtMJReXUtWikWLY0KCzRZlCGusr7bw== - dependencies: - configstore "^5.0.0" - -cspell-dict-latex@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/cspell-dict-latex/-/cspell-dict-latex-1.0.13.tgz#cdbbc2ebda7b82d44a3574d53b6f5b9a6d0644bb" - integrity sha512-UZqGJQ82mkzseqdF7kWXIrA07VD91W7rWx16DCThDBMohOsFdvCymUUgr0pM90FuqmldSiD+Gi1FayDSyPdNtQ== - dependencies: - configstore "^5.0.0" - -cspell-dict-lorem-ipsum@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/cspell-dict-lorem-ipsum/-/cspell-dict-lorem-ipsum-1.0.10.tgz#3828f43b4df35b258d5d31e4e539c2f6d3f3ce14" - integrity sha512-UlboQ3xH+D3l+hemLO4J5yz8EM60SH91f1dJIy2s94AeePZXtwYh1hTFM5dEsXI2CAQkfTu3ZdPWflLsInPfrA== - dependencies: - configstore "^5.0.0" - -cspell-dict-php@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/cspell-dict-php/-/cspell-dict-php-1.0.13.tgz#83cdab21e52d036303b321bf9bca27a9820661a6" - integrity sha512-RP5XST+hWEqWxlLISS3sXxsQa2YXOWx8X5LcxQHvEGdb1hMNypXxw9V53th7S+hfUTPKJrbUIzckYZp4j8TS4A== - dependencies: - configstore "^5.0.0" - -cspell-dict-powershell@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cspell-dict-powershell/-/cspell-dict-powershell-1.0.6.tgz#2cd32028fb2c7894f4eb7ff202eeec02a8138825" - integrity sha512-rwxt/fG3Nr7tQaV7e38ilz8qWfXrf5Ie+MQC6Mw/ddjT4wLOkGvruUqtJA/USoDE9PFG12KoarFsWlVXv/nwPA== - dependencies: - configstore "^5.0.0" - -cspell-dict-python@^1.0.20: - version "1.0.20" - resolved "https://registry.yarnpkg.com/cspell-dict-python/-/cspell-dict-python-1.0.20.tgz#39509b4cbaf5cbe9b5ceab9440eeeb42c04f6323" - integrity sha512-BiV8LnH9YNxvkUbVwTyDpZhOuRjPr8cE+nxpuPDbCHmVJmlLsDlg8MXTcJH8I+OFjoz6YdBX6yqK1bi55Aioow== - dependencies: - configstore "^5.0.0" - -cspell-dict-ruby@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cspell-dict-ruby/-/cspell-dict-ruby-1.0.3.tgz#bbda30306af9c9274b8848005d9f73f1d3513651" - integrity sha512-uFxUyGj9SRASfnd75lcpkoNvMYHNWmqkFmS9ZruL61M1RmFx9eekuEY74nK11qsb/E4o6yPtGAQH4SrotF9SwQ== - dependencies: - configstore "^5.0.0" - -cspell-dict-rust@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/cspell-dict-rust/-/cspell-dict-rust-1.0.12.tgz#323eedd0137d8019df08f02d9c1956d9778d0baa" - integrity sha512-bMt70/aQL2OcadZRtWfPIF/mHWX9JNOGq92UUU2ka+9C3OPBP/TuyYiHhUWt67y/CoIyEQ7/5uAtjX8paLf14w== - dependencies: - configstore "^5.0.0" - -cspell-dict-scala@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/cspell-dict-scala/-/cspell-dict-scala-1.0.11.tgz#42533b2c850fe6eb64946708fd19e66824b842a7" - integrity sha512-bmAQjapvcceJaiwGTkBd9n2L9GaqpmFDKe5S19WQDsWqjFiDwQ+r47td3TU7yWjOLPqp72h9X/XGzDJFvQEPcg== - dependencies: - configstore "^5.0.0" - -cspell-dict-software-terms@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/cspell-dict-software-terms/-/cspell-dict-software-terms-1.0.10.tgz#8aa6fe2c6979810675e1dadee035404f71538a1e" - integrity sha512-buww9OWunaLwRBiJ+gHW7DLoqMtSbHR6sP3DkvjSZBeke3KxAyS2HmsXPTPVrHFrbqm6qCDmGBs442HZcUz3Iw== - dependencies: - configstore "^5.0.0" - -cspell-dict-typescript@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/cspell-dict-typescript/-/cspell-dict-typescript-1.0.5.tgz#7e375a6f694b9a925647e5a5696cc992e5411339" - integrity sha512-bp4rf3/N02Q6JJhJyDcmCtzn9L00nRBQaar3uxRR7lHz3JfIPujUpTXpJN+iuhhcBv8jL1bKTd5wCpfRyHSi1g== - dependencies: - configstore "^5.0.0" - -cspell-glob@^0.1.18: - version "0.1.18" - resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-0.1.18.tgz#6762774f58d2fe176b6d9ed347a9e5862dc551a8" - integrity sha512-j7XDtSRUgHZNLcnFNI2ngTvkAlC7AI43LAuOYTCgU3+zKMdwzq6C7m/a1c9tWjnPYJiIPf+OEkE9bAhIufzk3Q== - dependencies: - micromatch "^4.0.2" - -cspell-io@^4.0.21: - version "4.0.21" - resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-4.0.21.tgz#f3c051294b5229f67caa17e3b4946985ec8f39c4" - integrity sha512-dht81s3CMPQTqtYqcJ/imEbE7WoYgGR4F52Fotgvd7Kky+H8GgSBnJYLJNk/PuT2xJ/8ebhx7v464v9cD73Okw== - dependencies: - iconv-lite "^0.4.24" - iterable-to-stream "^1.0.1" - -cspell-lib@^4.1.27: - version "4.1.27" - resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-4.1.27.tgz#dc49e3d77da350d457ec693b606840fb8b55286e" - integrity sha512-elczs/1V4rL9R4/Sfb5Xg2wkzpd/qDvelk70SChY+6pMzFhqu7nQbs5bmrhHB+Z1ELnmvrUtJBmkeo1uYvN0AQ== - dependencies: - comment-json "^1.1.3" - configstore "^5.0.1" - cspell-dict-bash "^1.0.3" - cspell-dict-companies "^1.0.21" - cspell-dict-cpp "^1.1.26" - cspell-dict-django "^1.0.15" - cspell-dict-dotnet "^1.0.14" - cspell-dict-elixir "^1.0.13" - cspell-dict-en-gb "^1.1.16" - cspell-dict-en_us "^1.2.25" - cspell-dict-fonts "^1.0.5" - cspell-dict-fullstack "^1.0.22" - cspell-dict-golang "^1.1.14" - cspell-dict-haskell "^1.0.4" - cspell-dict-html-symbol-entities "^1.0.13" - cspell-dict-java "^1.0.12" - cspell-dict-latex "^1.0.13" - cspell-dict-lorem-ipsum "^1.0.10" - cspell-dict-php "^1.0.13" - cspell-dict-powershell "^1.0.6" - cspell-dict-python "^1.0.20" - cspell-dict-ruby "^1.0.3" - cspell-dict-rust "^1.0.12" - cspell-dict-scala "^1.0.11" - cspell-dict-software-terms "^1.0.7" - cspell-dict-typescript "^1.0.4" - cspell-io "^4.0.21" - cspell-trie-lib "^4.1.9" - cspell-util-bundle "^4.0.11" - fs-extra "^8.1.0" - gensequence "^3.1.1" - minimatch "^3.0.4" - vscode-uri "^2.1.1" - -cspell-trie-lib@^4.1.9: - version "4.1.9" - resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-4.1.9.tgz#ebf38b5affd9a35289e945c7482b112152e5102f" - integrity sha512-Qf/bnXwEwm6oRaZPvELuIva6iJfCr+4WDbcNaNZUd+J3snanMpzp+TsqHyH3p1dPxnvO8eAEnU9RWVUdbXXnfA== - dependencies: - gensequence "^3.1.1" - -cspell-util-bundle@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/cspell-util-bundle/-/cspell-util-bundle-4.0.11.tgz#838e493a33a063e2f28df0bd81bcf86c3cf15385" - integrity sha512-6AJRN0KbeTJB+IPpwKb11zFUVz2Q8Rgm4qmy/wsbhw6ICFfmgWG5Fr2OzJpZBCm8GJJg1Tjs/VZimSvCdnRj7g== - -cspell@4.0.61: - version "4.0.61" - resolved "https://registry.yarnpkg.com/cspell/-/cspell-4.0.61.tgz#8572d1e21c54db09689e5f55b808df5e6fd478a4" - integrity sha512-aRDKzACufP8aYZm7cQHUBlvEIyWFO7gaaVUm75oxFGpWmc4zqnoOcCnciMHadS1W1r0mqMNfBQ4w55OORCQWnA== - dependencies: - chalk "^2.4.2" - commander "^2.20.3" - comment-json "^1.1.3" - cspell-glob "^0.1.18" - cspell-lib "^4.1.27" - fs-extra "^8.1.0" - gensequence "^3.1.1" - get-stdin "^7.0.0" - glob "^7.1.6" - minimatch "^3.0.4" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -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@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.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== - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - -deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -default-require-extensions@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.0.tgz#e03f93aac9b2b6443fc52e5e4a37b3ad9ad8df96" - integrity sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg== - dependencies: - strip-bom "^4.0.0" - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -diff@3.5.0, diff@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -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" - -dts-critic@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/dts-critic/-/dts-critic-3.2.0.tgz#715e5cad7d5b224fc85304feea1c6c13c4dfdf28" - integrity sha512-qJ7vXQXwp/U/v/sGGbmPl1tAbRNcgmBRHkw8HyC9oA1aVPUDGQbI4MqMmIYAUVUUXlrIkrXiZy3QpXz5DzqkqQ== - dependencies: - "@definitelytyped/header-parser" "0.0.30" - command-exists "^1.2.8" - rimraf "^3.0.2" - semver "^6.2.0" - typescript "^3.7.5" - yargs "^12.0.5" - -dtslint@3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/dtslint/-/dtslint-3.6.0.tgz#0102125e279812b9bce7c5fb93682651ba590596" - integrity sha512-6l2WetYCIPekiKrhnXeu6Tx+Nkf5s5mTm8C35obu3kmSfGMA8I0Qu+NncKxJqyFs4nQp44qnitX3A/KKJd+LGg== - dependencies: - "@definitelytyped/header-parser" "0.0.30" - "@definitelytyped/typescript-versions" "0.0.30" - "@definitelytyped/utils" "0.0.30" - dts-critic "^3.2.0" - fs-extra "^6.0.1" - json-stable-stringify "^1.0.1" - strip-json-comments "^2.0.1" - tslint "5.14.0" - typescript next - yargs "^15.1.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -electron-to-chromium@^1.3.413: - version "1.3.437" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.437.tgz#110f1cd407e5d09b43d5585e5f237b71063412cf" - integrity sha512-PBQn2q68ErqMyBUABh9Gh8R6DunGky8aB5y3N5lPM7OVpldwyUbAK5AX9WcwE/5F6ceqvQ+iQLYkJYRysAs6Bg== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -error-ex@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: - version "1.17.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" - integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-error@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-import-resolver-node@^0.3.2: - version "0.3.3" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" - integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== - dependencies: - debug "^2.6.9" - resolve "^1.13.1" - -eslint-module-utils@^2.4.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== - dependencies: - debug "^2.6.9" - pkg-dir "^2.0.0" - -eslint-plugin-es@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.0.tgz#98cb1bc8ab0aa807977855e11ad9d1c9422d014b" - integrity sha512-6/Jb/J/ZvSebydwbBJO1R9E5ky7YeElfK56Veh7e4QGFHCXoIXGH9HhVz+ibJLM3XJ1XjP+T7rKBLUa/Y7eIng== - dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" - -eslint-plugin-flowtype@4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.7.0.tgz#903a6ea3eb5cbf4c7ba7fa73cc43fc39ab7e4a70" - integrity sha512-M+hxhSCk5QBEValO5/UqrS4UunT+MgplIJK5wA1sCtXjzBcZkpTGRwxmLHhGpbHcrmQecgt6ZL/KDdXWqGB7VA== - dependencies: - lodash "^4.17.15" - -"eslint-plugin-graphql-internal@file:./resources/eslint-rules": - version "0.0.0" - -eslint-plugin-import@2.20.2: - version "2.20.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" - integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg== - dependencies: - array-includes "^3.0.3" - array.prototype.flat "^1.2.1" - contains-path "^0.1.0" - debug "^2.6.9" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.2" - eslint-module-utils "^2.4.1" - has "^1.0.3" - minimatch "^3.0.4" - object.values "^1.1.0" - read-pkg-up "^2.0.0" - resolve "^1.12.0" - -eslint-plugin-node@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" - integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== - dependencies: - eslint-plugin-es "^3.0.0" - eslint-utils "^2.0.0" - ignore "^5.1.1" - minimatch "^3.0.4" - resolve "^1.10.1" - semver "^6.1.0" - -eslint-scope@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" - integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" - integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== - -eslint@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.0.0.tgz#c35dfd04a4372110bd78c69a8d79864273919a08" - integrity sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - eslint-visitor-keys "^1.1.0" - espree "^7.0.0" - esquery "^1.2.0" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^7.0.0" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash "^4.17.14" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^5.2.3" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.0.0.tgz#8a7a60f218e69f120a842dc24c5a88aa7748a74e" - integrity sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw== - dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" - -esprima@^2.7.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -estraverse@^4.1.0, estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" - integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== - -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== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-cache-dir@^2.0.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-up@3.0.0, find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" - integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== - dependencies: - is-buffer "~2.0.3" - -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -flow-bin@0.124.0: - version "0.124.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.124.0.tgz#24b2e55874e1e2041f9247f42473b3db2ef32758" - integrity sha512-KEtDJ7CFUjcuhw6N52FTZshDd1krf1fxpp4APSIrwhVm+IrlcKJ+EMXpeXKM1kKNSZ347dYGh8wEvXQl4pHZEA== - -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fromentries@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.2.0.tgz#e6aa06f240d6267f913cea422075ef88b63e7897" - integrity sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ== - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" - integrity sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -gensequence@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-3.1.1.tgz#95c1afc7c0680f92942c17f2d6f83f3d26ea97af" - integrity sha512-ys3h0hiteRwmY6BsvSttPmkhC0vEQHPJduANBRtH/dlDPZ0UBIb/dXy80IcckXyuQ6LKg+PloRqvGER9IS7F7g== - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - -get-stdin@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" - integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-parent@^5.0.0, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== - dependencies: - is-glob "^4.0.1" - -glob@7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - 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.1, 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== - 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" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -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" - -hasha@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.0.tgz#33094d1f69c40a4a6ac7be53d5fe3ff95a269e0c" - integrity sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw== - dependencies: - is-stream "^2.0.0" - type-fest "^0.8.0" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.1: - version "5.1.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" - integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== - -import-fresh@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inquirer@^7.0.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" - -invariant@^2.2.2, invariant@^2.2.4: - 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@^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== - -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-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" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== - -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -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= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -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-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== - dependencies: - has "^1.0.3" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "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-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -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= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== - -istanbul-lib-hook@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz#8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6" - integrity sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== - dependencies: - append-transform "^2.0.0" - -istanbul-lib-instrument@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-processinfo@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz#e1426514662244b2f25df728e8fd1ba35fe53b9c" - integrity sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw== - dependencies: - archy "^1.0.0" - cross-spawn "^7.0.0" - istanbul-lib-coverage "^3.0.0-alpha.1" - make-dir "^3.0.0" - p-map "^3.0.0" - rimraf "^3.0.0" - uuid "^3.3.3" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" - integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" - integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -iterable-to-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/iterable-to-stream/-/iterable-to-stream-1.0.1.tgz#37e86baacf6b1a0e9233dad4eb526d0423d08bf3" - integrity sha512-O62gD5ADMUGtJoOoM9U6LQ7i4byPXUNoHJ6mqsmkQJcom331ZJGDApWgDESWyBMEHEJRjtHozgIiTzYo9RU4UA== - -"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" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@3.13.1, js-yaml@^3.13.1, js-yaml@^3.7.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^2.5.1: - version "2.5.2" - 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-parser@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/json-parser/-/json-parser-1.1.5.tgz#e62ec5261d1a6a5fc20e812a320740c6d9005677" - integrity sha1-5i7FJh0aal/CDoEqMgdAxtkAVnc= - dependencies: - esprima "^2.7.0" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -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" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.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" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -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" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= - -lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -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" - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -make-dir@^2.0.0, make-dir@^2.1.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== - dependencies: - semver "^6.0.0" - -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" - -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" - -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -mime-db@1.44.0: - 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.19: - 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" - -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== - -minimatch@3.0.4, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mkdirp@0.5.5, "mkdirp@>=0.5 0", mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mocha@7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.1.2.tgz#8e40d198acf91a52ace122cd7599c9ab857b29e6" - integrity sha512-o96kdRKMKI3E8U0bjnfqW4QMk12MwZ4mhdBTf+B5a1q9+aq2HRnj+3ZdJu0B/ZhJeK78MgYuv6L8d/rA5AeBJA== - dependencies: - ansi-colors "3.2.3" - browser-stdout "1.3.1" - chokidar "3.3.0" - debug "3.2.6" - diff "3.5.0" - escape-string-regexp "1.0.5" - find-up "3.0.0" - glob "7.1.3" - growl "1.10.5" - he "1.2.0" - js-yaml "3.13.1" - log-symbols "3.0.0" - minimatch "3.0.4" - mkdirp "0.5.5" - ms "2.1.1" - node-environment-flags "1.0.6" - object.assign "4.1.0" - strip-json-comments "2.0.1" - supports-color "6.0.0" - which "1.3.1" - wide-align "1.1.3" - yargs "13.3.2" - yargs-parser "13.1.2" - yargs-unparser "1.6.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-environment-flags@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088" - integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== - dependencies: - object.getownpropertydescriptors "^2.0.3" - semver "^5.7.0" - -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" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - -node-preload@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" - integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== - dependencies: - process-on-spawn "^1.0.0" - -node-releases@^1.1.53: - version "1.1.55" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.55.tgz#8af23b7c561d8e2e6e36a46637bab84633b07cee" - integrity sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w== - -normalize-package-data@^2.3.2, "normalize-package-data@~1.0.1 || ^2.0.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0": - version "6.1.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" - integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== - dependencies: - hosted-git-info "^2.7.1" - osenv "^0.1.5" - semver "^5.6.0" - validate-npm-package-name "^3.0.0" - -npm-registry-client@^8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz#7f1529f91450732e89f8518e0f21459deea3e4c4" - integrity sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg== - dependencies: - concat-stream "^1.5.2" - graceful-fs "^4.1.6" - normalize-package-data "~1.0.1 || ^2.0.0" - npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" - once "^1.3.3" - request "^2.74.0" - retry "^0.10.0" - safe-buffer "^5.1.1" - semver "2 >=2.2.1 || 3.x || 4 || 5" - slide "^1.1.3" - ssri "^5.2.4" - optionalDependencies: - npmlog "2 || ^3.1.0 || ^4.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -"npmlog@2 || ^3.1.0 || ^4.0.0": - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -nyc@15.0.1: - version "15.0.1" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.0.1.tgz#bd4d5c2b17f2ec04370365a5ca1fc0ed26f9f93d" - integrity sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg== - dependencies: - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - caching-transform "^4.0.0" - convert-source-map "^1.7.0" - decamelize "^1.2.0" - find-cache-dir "^3.2.0" - find-up "^4.1.0" - foreground-child "^2.0.0" - glob "^7.1.6" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-hook "^3.0.0" - istanbul-lib-instrument "^4.0.0" - istanbul-lib-processinfo "^2.0.2" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - make-dir "^3.0.0" - node-preload "^0.2.1" - p-map "^3.0.0" - process-on-spawn "^1.0.0" - resolve-from "^5.0.0" - rimraf "^3.0.0" - signal-exit "^3.0.2" - spawn-wrap "^2.0.0" - test-exclude "^6.0.0" - yargs "^15.0.2" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== - -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" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@4.1.0, object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.getownpropertydescriptors@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.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" - -once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.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= - -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-tmpdir@^1.0.0, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - 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-finally@^1.0.0: - version "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-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== - dependencies: - aggregate-error "^3.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-hash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" - integrity sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== - dependencies: - graceful-fs "^4.1.15" - hasha "^5.0.0" - lodash.flattendeep "^4.4.0" - release-zalgo "^1.0.0" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parsimmon@^1.13.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/parsimmon/-/parsimmon-1.13.0.tgz#6e4ef3dbd45ed6ea6808be600ac4b9c8a44228cf" - integrity sha512-5UIrOCW+gjbILkjKPgTgmq8LKf8TT3Iy7kN2VD7OtQ81facKn8B4gG1X94jWqXYZsxG2KbJhrv/Yq/5H6BQn7A== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - -pathval@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" - integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.0.4, picomatch@^2.0.5: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -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== - -pirates@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.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: - 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== - dependencies: - find-up "^4.0.0" - -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.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" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" - integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== - -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.1" - 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-on-spawn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.0.0.tgz#95b05a23073d30a17acfdc92a440efd2baefdc93" - integrity sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg== - dependencies: - fromentries "^1.2.0" - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -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== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5: - 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== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readdirp@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" - integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== - dependencies: - picomatch "^2.0.4" - -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.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== - dependencies: - "@babel/runtime" "^7.8.4" - private "^0.1.8" - -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" - -regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== - -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" - -release-zalgo@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" - integrity sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA= - dependencies: - es6-error "^4.0.1" - -request@^2.74.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.13.1, 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== - dependencies: - path-parse "^1.0.6" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -retry@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" - integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= - -rimraf@2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -rxjs@^6.5.3: - version "6.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" - integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== - dependencies: - tslib "^1.9.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2: - 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-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, 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== - -"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.1.0, semver@^6.2.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.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== - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - -slide@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= - -source-map-support@^0.5.16: - 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== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.5.0: - 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: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spawn-wrap@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" - integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== - dependencies: - foreground-child "^2.0.0" - is-windows "^1.0.2" - make-dir "^3.0.0" - rimraf "^3.0.0" - signal-exit "^3.0.2" - which "^2.0.1" - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" - integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== - dependencies: - safe-buffer "^5.1.1" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimleft@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" - integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimstart "^1.0.0" - -string.prototype.trimright@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" - integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimend "^1.0.0" - -string.prototype.trimstart@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-json-comments@2.0.1, strip-json-comments@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strip-json-comments@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" - integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== - -supports-color@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" - integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== - dependencies: - has-flag "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -tar-stream@1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" - integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== - dependencies: - bl "^1.0.0" - buffer-alloc "^1.2.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.1" - xtend "^4.0.0" - -tar@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== - dependencies: - block-stream "*" - fstream "^1.0.12" - inherits "2" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-buffer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" - integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== - -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" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - -tslint@5.14.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.14.0.tgz#be62637135ac244fc9b37ed6ea5252c9eba1616e" - integrity sha512-IUla/ieHVnB8Le7LdQFRGlVJid2T/gaJe5VkjzRVSRR6pA2ODYrnfR1hmxi+5+au9l50jBwpbBL34txgv4NnTQ== - dependencies: - babel-code-frame "^6.22.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^3.2.0" - glob "^7.1.1" - js-yaml "^3.7.0" - minimatch "^3.0.4" - mkdirp "^0.5.1" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.29.0" - -tsutils@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" - integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== - dependencies: - tslib "^1.8.1" - -tsutils@^3.17.1: - version "3.17.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" - integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== - dependencies: - tslib "^1.8.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@^4.0.0, type-detect@^4.0.5: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - -type-fest@^0.8.0, type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@^3.7.5, typescript@^3.9.2: - version "3.9.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.2.tgz#64e9c8e9be6ea583c54607677dd4680a1cf35db9" - integrity sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw== - -typescript@next: - version "4.0.0-dev.20200514" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.0-dev.20200514.tgz#d32771b84c2b42f4851290d4dcc8201969183af9" - integrity sha512-o++Z0PwCL2iqEwTnoUVfDIAMo9xS+dvxm/6sl6n2VfxGGmVyaC9F6Naaylh+VZ5qG6Actdso0kJnzDxXVwY5fw== - -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== - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -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== - -v8-compile-cache@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" - integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validate-npm-package-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= - dependencies: - builtins "^1.0.3" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vscode-uri@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.1.tgz#5aa1803391b6ebdd17d047f51365cf62c38f6e90" - integrity sha512-eY9jmGoEnVf8VE8xr5znSah7Qt1P/xsCdErz+g8HYZtJ7bZqKH5E3d+6oVNm1AC/c6IHUDokbmVXKOi4qPAC9A== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@1.3.1, which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@1.1.3, wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -"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== - -yargs-parser@13.1.2, yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.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@^18.1.1: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-unparser@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" - integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== - dependencies: - flat "^4.1.0" - lodash "^4.17.15" - yargs "^13.3.0" - -yargs@13.3.2, yargs@^13.3.0: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.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 "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -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.0.2, yargs@^15.1.0: - version "15.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" - integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== - 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.1" From aa3d8d8a9720a227cfbb0052e64f92fbf6ee496b Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sat, 16 May 2020 19:01:01 +0300 Subject: [PATCH 31/63] Switch to GitHub Actions (#2553) --- .github/workflows/ci.yml | 139 +++++++++++++++++++++++++++++++++++++++ .travis.yml | 42 ------------ README.md | 2 +- resources/gitpublish.sh | 10 +-- 4 files changed, 146 insertions(+), 47 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000000..12538928501 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,139 @@ +name: CI +on: [push, pull_request] +jobs: + lint: + name: Lint source files + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Setup Node.js + uses: actions/setup-node@v1 + + - name: Cache Node.js modules + uses: actions/cache@v1 + with: + path: ~/.npm + key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.OS }}-node- + + - name: Install Dependencies + run: npm ci + + - name: Lint Prettier + run: npm run prettier:check + + - name: Lint ESLint + run: npm run lint + + - name: Lint Flow + run: npm run check + + - name: Cache TS versions + uses: actions/cache@v1 + with: + path: ~/.dts + key: ${{ runner.OS }}-dts-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.OS }}-dts- + + - name: Lint TS typings + run: npm run check:ts + + - name: Spellcheck + run: npm run check:spelling + + - name: Build package + run: npm run build + + coverage: + name: Measure test coverage + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Setup Node.js + uses: actions/setup-node@v1 + + - name: Cache Node.js modules + uses: actions/cache@v1 + with: + path: ~/.npm + key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.OS }}-node- + + - name: Install Dependencies + run: npm ci + + - name: Run tests and measure code coverage + run: npm run testonly:cover + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v1 + with: + file: ./coverage/tests/coverage-final.json + fail_ci_if_error: true + + test: + name: Run tests on Node v${{ matrix.node_version }} + runs-on: ubuntu-latest + strategy: + matrix: + node_version: [10, 12, 13, 14] + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Setup Node.js v${{ matrix.node_version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node_version }} + + - name: Cache Node.js modules + uses: actions/cache@v1 + with: + path: ~/.npm + key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.OS }}-node- + + - name: Install Dependencies + run: npm ci + + - name: Run Tests + run: npm run testonly + + deploy-to-npm-branch: + name: Deploy to `npm` branch + runs-on: ubuntu-latest + if: github.event == 'push' && github.repository == 'graphql/graphql-js' && github.ref == 'master' + needs: [test, lint] + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Setup Node.js + uses: actions/setup-node@v1 + + - name: Cache Node.js modules + uses: actions/cache@v1 + with: + path: ~/.npm + key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.OS }}-node- + + - name: Install Dependencies + run: npm ci + + - name: Build package + run: npm run build + + - name: Deploy to `npm` branch + run: npm run gitpublish + env: + GH_TOKEN: ${{ secrets.GH_NPM_BRANCH_PUBLISH_TOKEN }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 403a3a3aa8e..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,42 +0,0 @@ -git: - depth: 5 -language: node_js -cache: npm - -# https://github.com/nodejs/Release -node_js: - - 10 - - 12 - - 13 - - 14 - -script: | - if [[ "$(node -pe process.version)" == v12.* ]]; then # Is latest LTS? - npm run test:ci && - bash <(curl -s https://codecov.io/bash) -f coverage/tests/coverage-final.json - else - npm run testonly - fi - -jobs: - include: - - stage: deploy - if: type = push AND branch = master AND fork = false - script: npm run gitpublish - skip_cleanup: true - node_js: 12 - -notifications: - irc: - use_notice: true - on_success: change - on_failure: change - skip_join: true - channels: - - chat.freenode.net#graphql - slack: - secure: G7fzaXoPI1cyyW7dlpQ8oG/ot73n4kE83HgbyK1iEN1YBfodsytVgh0jS+zB3DhhRAotS/VfGVz9Wj2Oo109U5w/FyxdMGuKvFan/0B/aAws1sPxLGWA5230u1wTKQCHAu17+yppFOODUu1ILDXaD2A//Wj5iru9M4NnKc1bO6VHkfBHPTLQLbdPHmorwuSH02Ocbh7K4XOWzXRxM6VrwamEn1KnyXGu2w3QdJUT31OjGEEdf6FUzvjwzFgXPhngCw5+enpwm71ljHDNu8YHhXvHtS4328O5pYQO8np7j653HNEqi+ZUiYEOWpwC8be1xHdvi/s32tPFZiCx28ZmDoCUrY744tpPtE6tzuncmSKB0Y3EjutdXBpxllNr5l5hpX5092G2MlpokFbv85J+E2ALcZYNYeFOqTYTKwTYkxK6B1x4amBNpM+FXgUhloK4BK9OT0Qh5SiQOsM8cZT0h6QP91n+REljtpugW3VbuIxq5OJAi42FYbHBC27pohhq6ohU1euZfobk9a7ZawnjoEUk1EZHXiJzYKY/QqzyB6dwk0ersBl3l3OX/wnjwKTkqc9aTmDWo2L+lHaUCXuCY1+KQXsRicfnH395szTJXQbvcbN0zz188gdz6sawzi5BxndWo0NRwZyOG2YcyUHFQR4bK1rL7Lo6t6rijQ/XMeQ= - -env: - global: - secure: uUjOV39iCLSLtShQfKk9AelIu2PqyKf8dYu4rqVcL5Y9yCHdds1KYysVgCx9XhndrugHNCXWzT/sKDS8voc/NRsfycnvdCIvu+dtBwf9lCHGcMyABFpvsjQfKTGyMCbYNDO8Hd/OQqHCFVj1lh4aNGev8tGqpJoMEDPdQbDKsvMVKWfo9QraXYYK7yh7U2vbidAV+YBj/e3VFfR2UQ+OECHxyxFGxWMbyTF8qRZ7JUsgCaJ82zrx0A7VoEJ6BeXxzhYDPuh3QTON9bXiJpWR/QcsKZNQ7d6Dxf06yo4XQDU9igxe6qst41Hj3IiZzLCyucoPXvoRsbmUcsAVdF4PWq3fnHUmyjRwOMcTjPd2SM4FPJpwnSGZEpstzKSJ3pDzpgRGsF7ai5nGNCes6RCi4AUf96GTjt0JAD+AXwD7mrGlcn4oi0m6r1GcNhDOFsBEgFqz26FXUFQcAqrHzZvsqvG01Cs5pAFMUIEpCyCrkDKClc/LWjJoVInDEVCwGqZk6Qz2XroYjFs25m+aB3ycSIN1qgkTg6szMO76tds4YtL8JDHaAXDbvXAk8YRYbQCAIFQVaIpkp8R1kJa++dP8Q3j/lwAkz+57XJ5KPRlLh7KMqF1joTGKptA0c2vD0sees2RxPrcZGmp6eaOLy3JhQmXfPaRLLpiK+plz6T25f7Y= diff --git a/README.md b/README.md index 9651a25f6b1..7a2bdf76572 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ The JavaScript reference implementation for GraphQL, a query language for APIs created by Facebook. [![npm version](https://badge.fury.io/js/graphql.svg)](https://badge.fury.io/js/graphql) -[![Build Status](https://travis-ci.org/graphql/graphql-js.svg?branch=master)](https://travis-ci.org/graphql/graphql-js?branch=master) +[![Build Status](https://github.com/graphql/graphql-js/workflows/CI/badge.svg?branch=master)](https://github.com/graphql/graphql-js/actions?query=branch%3Amaster) [![Coverage Status](https://codecov.io/gh/graphql/graphql-js/branch/master/graph/badge.svg)](https://codecov.io/gh/graphql/graphql-js) See more complete documentation at https://graphql.org/ and diff --git a/resources/gitpublish.sh b/resources/gitpublish.sh index 29286d48827..332036783c4 100644 --- a/resources/gitpublish.sh +++ b/resources/gitpublish.sh @@ -9,8 +9,10 @@ trap "exit 1" ERR # "graphql": "git://github.com/graphql/graphql-js.git#npm" # -# Build -npm run build +if [ ! -d "./dist" ]; then + echo 'Directory `dist` does not exist, please run `npm run build`!' + exit 1; +fi; # Create empty npm directory rm -rf npm @@ -29,8 +31,8 @@ echo $HEADREV # Deploy cd npm -git config user.name "Travis CI" -git config user.email "github@fb.com" +git config user.name "GitHub Action Script" +git config user.email "please@open.issue" git add -A . if git diff --staged --quiet; then echo "Nothing to publish" From 7286b931ca9dcb5b263376794181c54611f0cbde Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sat, 16 May 2020 19:16:17 +0300 Subject: [PATCH 32/63] Update deps (#2555) --- .flowconfig | 2 +- package-lock.json | 133 +++++++++++++++++++++++++++++----------------- package.json | 8 +-- 3 files changed, 90 insertions(+), 53 deletions(-) diff --git a/.flowconfig b/.flowconfig index 93786201265..29deebb0a4a 100644 --- a/.flowconfig +++ b/.flowconfig @@ -40,4 +40,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)?)\\) suppress_comment=\\(.\\|\n\\)*\\$DisableFlowOnNegativeTest [version] -^0.124.0 +^0.125.0 diff --git a/package-lock.json b/package-lock.json index d2b144d7fa9..9cea9071ded 100644 --- a/package-lock.json +++ b/package-lock.json @@ -941,29 +941,29 @@ } }, "@definitelytyped/header-parser": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.30.tgz", - "integrity": "sha512-oa9EUZ2dT1t4drHE2lOZdSprvXy0BPyoJHyflY0E9qdYxZHaV9y9dkIC8We9B7bx+qCeSSSRrZjChwRmjfCfiA==", + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.34.tgz", + "integrity": "sha512-/yTifMAhYKB8SFH3pSlAQmcBzrk7UyqpEz9/vJKaMKdzRpJrxmc1zWMP+hwJtJTVCjAK+Ul4m3i1GZQrTZfymw==", "dev": true, "requires": { - "@definitelytyped/typescript-versions": "^0.0.30", + "@definitelytyped/typescript-versions": "^0.0.34", "@types/parsimmon": "^1.10.1", "parsimmon": "^1.13.0" } }, "@definitelytyped/typescript-versions": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.30.tgz", - "integrity": "sha512-XrQ8I/uPr+OSR4GP3fJU9v+u+Zflai8ujeTcB7lNfVHmnzgOeD5s1h/+uvUvvKsb8/uz7CbEbII3tcq/11Fsyw==", + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.34.tgz", + "integrity": "sha512-7IqWcbHKYbfY8Lt7AigXDa29cbz3gynzBHMjwMUCeLnex8D682M6OW8uBLouvVHCr+YENL58tQB3dn0Zos8mFQ==", "dev": true }, "@definitelytyped/utils": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.30.tgz", - "integrity": "sha512-wnOPtMfAB1m3rnUXGblzi2Qk+KU67Tfxh4Tbj2RCxFCyKYVf063DQ+6wU8fb1FdEFvtZ2hIpOs5KewBJkoyZOA==", + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.34.tgz", + "integrity": "sha512-C1mlA9ixRfv7PPmO99hJZ8Ii2roKY+7GoIwBPh5uYSF6WfABoVlzyWX3LsF6fy1MwpZbempC+r81iDm2QeYTsw==", "dev": true, "requires": { - "@definitelytyped/typescript-versions": "^0.0.30", + "@definitelytyped/typescript-versions": "^0.0.34", "@types/node": "^12.12.29", "charm": "^1.0.2", "fs-extra": "^8.1.0", @@ -1073,9 +1073,9 @@ "dev": true }, "@types/parsimmon": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@types/parsimmon/-/parsimmon-1.10.1.tgz", - "integrity": "sha512-MoF2IC9oGSgArJwlxdst4XsvWuoYfNUWtBw0kpnCi6K05kV+Ecl7siEeJ40tgCbI9uqEMGQL/NlPMRv6KVkY5Q==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/@types/parsimmon/-/parsimmon-1.10.2.tgz", + "integrity": "sha512-WVugAiBoLsmay9IPrLJoMnmLTP0cWPbc4w5c5suTevyhaJW9TWGyPbkFraNUk5YULf8vQ5C/3NBEQcIs6XfTcg==", "dev": true }, "@typescript-eslint/eslint-plugin": { @@ -1863,16 +1863,16 @@ "dev": true }, "cspell": { - "version": "4.0.61", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-4.0.61.tgz", - "integrity": "sha512-aRDKzACufP8aYZm7cQHUBlvEIyWFO7gaaVUm75oxFGpWmc4zqnoOcCnciMHadS1W1r0mqMNfBQ4w55OORCQWnA==", + "version": "4.0.62", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-4.0.62.tgz", + "integrity": "sha512-P1KwPXgBosjtP2eExa9DpapRXIygjiV+MbTGwL/7ST6rFIdvlgjrz9W/hyVIK3+4+i/iiIuHTG5jrkXiizqasA==", "dev": true, "requires": { "chalk": "^2.4.2", "commander": "^2.20.3", "comment-json": "^1.1.3", "cspell-glob": "^0.1.18", - "cspell-lib": "^4.1.27", + "cspell-lib": "^4.1.28", "fs-extra": "^8.1.0", "gensequence": "^3.1.1", "get-stdin": "^7.0.0", @@ -1880,6 +1880,15 @@ "minimatch": "^3.0.4" } }, + "cspell-dict-aws": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/cspell-dict-aws/-/cspell-dict-aws-1.0.5.tgz", + "integrity": "sha512-yhOi7YiPuMS+2YPZgZmmwU4U3YPUxF+2TypYXF7eoIjzpNdKrag7r6B2i9lgSttCj6I1oWdjIEmNsAap4Affkw==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, "cspell-dict-bash": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/cspell-dict-bash/-/cspell-dict-bash-1.0.3.tgz", @@ -1907,6 +1916,15 @@ "configstore": "^5.0.0" } }, + "cspell-dict-cryptocurrencies": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cspell-dict-cryptocurrencies/-/cspell-dict-cryptocurrencies-1.0.2.tgz", + "integrity": "sha512-suLIsOGmeHt+lqRBbbOJM9aVeBNcXq+3kKINOyuFiAJFpRhDMQrnATzGmW0hhi8XaJHFBcSeQY7iQYe3u1WbnA==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, "cspell-dict-django": { "version": "1.0.15", "resolved": "https://registry.npmjs.org/cspell-dict-django/-/cspell-dict-django-1.0.15.tgz", @@ -2024,6 +2042,15 @@ "configstore": "^5.0.0" } }, + "cspell-dict-lua": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/cspell-dict-lua/-/cspell-dict-lua-1.0.8.tgz", + "integrity": "sha512-zPQoZxcKRbtO7dpWh02zO5kCElzJIqkgjAV209q03k7NoS1n0kAcV48W0agY6T1OR0ZjDWMkUheaLFDbaMJq3g==", + "dev": true, + "requires": { + "configstore": "^5.0.0" + } + }, "cspell-dict-php": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/cspell-dict-php/-/cspell-dict-php-1.0.13.tgz", @@ -2116,37 +2143,40 @@ } }, "cspell-lib": { - "version": "4.1.27", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-4.1.27.tgz", - "integrity": "sha512-elczs/1V4rL9R4/Sfb5Xg2wkzpd/qDvelk70SChY+6pMzFhqu7nQbs5bmrhHB+Z1ELnmvrUtJBmkeo1uYvN0AQ==", + "version": "4.1.28", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-4.1.28.tgz", + "integrity": "sha512-uNDRdhte2YvSkGwxcIXJfMJz9E6ebwnEKYaKF0SPY9P3MUEYSe3Ln2nEhELixS+jZCc+hXYmFR0DEaExFasXRg==", "dev": true, "requires": { "comment-json": "^1.1.3", "configstore": "^5.0.1", + "cspell-dict-aws": "^1.0.5", "cspell-dict-bash": "^1.0.3", - "cspell-dict-companies": "^1.0.21", + "cspell-dict-companies": "^1.0.22", "cspell-dict-cpp": "^1.1.26", + "cspell-dict-cryptocurrencies": "^1.0.2", "cspell-dict-django": "^1.0.15", "cspell-dict-dotnet": "^1.0.14", "cspell-dict-elixir": "^1.0.13", "cspell-dict-en-gb": "^1.1.16", - "cspell-dict-en_us": "^1.2.25", + "cspell-dict-en_us": "^1.2.26", "cspell-dict-fonts": "^1.0.5", - "cspell-dict-fullstack": "^1.0.22", + "cspell-dict-fullstack": "^1.0.23", "cspell-dict-golang": "^1.1.14", "cspell-dict-haskell": "^1.0.4", "cspell-dict-html-symbol-entities": "^1.0.13", "cspell-dict-java": "^1.0.12", "cspell-dict-latex": "^1.0.13", "cspell-dict-lorem-ipsum": "^1.0.10", + "cspell-dict-lua": "^1.0.8", "cspell-dict-php": "^1.0.13", "cspell-dict-powershell": "^1.0.6", "cspell-dict-python": "^1.0.20", "cspell-dict-ruby": "^1.0.3", "cspell-dict-rust": "^1.0.12", "cspell-dict-scala": "^1.0.11", - "cspell-dict-software-terms": "^1.0.7", - "cspell-dict-typescript": "^1.0.4", + "cspell-dict-software-terms": "^1.0.10", + "cspell-dict-typescript": "^1.0.5", "cspell-io": "^4.0.21", "cspell-trie-lib": "^4.1.9", "cspell-util-bundle": "^4.0.11", @@ -2274,12 +2304,12 @@ } }, "dts-critic": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.2.0.tgz", - "integrity": "sha512-qJ7vXQXwp/U/v/sGGbmPl1tAbRNcgmBRHkw8HyC9oA1aVPUDGQbI4MqMmIYAUVUUXlrIkrXiZy3QpXz5DzqkqQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.2.1.tgz", + "integrity": "sha512-jNCWcrOduMsEUDXTZd+qWN7Nig52OgPVPL2IRJ7QQTx0MdYASEwqkoBdPrcEY/ClkKZ+rSjZi/xjBiNmRObuRg==", "dev": true, "requires": { - "@definitelytyped/header-parser": "0.0.30", + "@definitelytyped/header-parser": "0.0.34", "command-exists": "^1.2.8", "rimraf": "^3.0.2", "semver": "^6.2.0", @@ -2399,20 +2429,20 @@ } }, "dtslint": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.0.tgz", - "integrity": "sha512-6l2WetYCIPekiKrhnXeu6Tx+Nkf5s5mTm8C35obu3kmSfGMA8I0Qu+NncKxJqyFs4nQp44qnitX3A/KKJd+LGg==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.2.tgz", + "integrity": "sha512-U+1EcZpnzBsPqIqTVNEk12/K5oHnbUppvws4rLYoy9rmUjSkDVJqaMqEWJXTXPuqWy1Rp/Ky2rI53XRcMFJaeQ==", "dev": true, "requires": { - "@definitelytyped/header-parser": "0.0.30", - "@definitelytyped/typescript-versions": "0.0.30", - "@definitelytyped/utils": "0.0.30", - "dts-critic": "^3.2.0", + "@definitelytyped/header-parser": "0.0.34", + "@definitelytyped/typescript-versions": "0.0.34", + "@definitelytyped/utils": "0.0.34", + "dts-critic": "^3.2.1", "fs-extra": "^6.0.1", "json-stable-stringify": "^1.0.1", "strip-json-comments": "^2.0.1", "tslint": "5.14.0", - "typescript": "^4.0.0-dev.20200514", + "typescript": "^4.0.0-dev.20200516", "yargs": "^15.1.0" }, "dependencies": { @@ -2428,9 +2458,9 @@ } }, "typescript": { - "version": "4.0.0-dev.20200514", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.0-dev.20200514.tgz", - "integrity": "sha512-o++Z0PwCL2iqEwTnoUVfDIAMo9xS+dvxm/6sl6n2VfxGGmVyaC9F6Naaylh+VZ5qG6Actdso0kJnzDxXVwY5fw==", + "version": "4.0.0-dev.20200516", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.0-dev.20200516.tgz", + "integrity": "sha512-IAtM0E+nnb64K+KwtQrvBDPTTOlRSdYJjyx1NOfNBUk7G34Bln26NQ/0jdCfvTOpxa/S6mQ9oDnHiC1PJ+UpkA==", "dev": true } } @@ -2764,12 +2794,13 @@ } }, "eslint-plugin-flowtype": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.7.0.tgz", - "integrity": "sha512-M+hxhSCk5QBEValO5/UqrS4UunT+MgplIJK5wA1sCtXjzBcZkpTGRwxmLHhGpbHcrmQecgt6ZL/KDdXWqGB7VA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.0.3.tgz", + "integrity": "sha512-QtfUeODs6B7/girI8t/FeZ9FKb0vl7hRkWty/L4Ae3Shwfb79P/rf/S8pzjOxz0Bv0R0VHDN2ATubJfo1fXNcg==", "dev": true, "requires": { - "lodash": "^4.17.15" + "lodash": "^4.17.15", + "string-natural-compare": "^3.0.1" } }, "eslint-plugin-graphql-internal": { @@ -3072,9 +3103,9 @@ "dev": true }, "flow-bin": { - "version": "0.124.0", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.124.0.tgz", - "integrity": "sha512-KEtDJ7CFUjcuhw6N52FTZshDd1krf1fxpp4APSIrwhVm+IrlcKJ+EMXpeXKM1kKNSZ347dYGh8wEvXQl4pHZEA==", + "version": "0.125.1", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.125.1.tgz", + "integrity": "sha512-jEury9NTXylxQEOAXLWEE945BjBwYcMwwKVnb+5XORNwMQE7i5hQYF0ysYfsaaYOa7rW/U16rHBfwLuaZfWV7A==", "dev": true }, "foreground-child": { @@ -5531,6 +5562,12 @@ "safe-buffer": "^5.1.1" } }, + "string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", + "dev": true + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", diff --git a/package.json b/package.json index 71dc32af42d..e3d2921b916 100644 --- a/package.json +++ b/package.json @@ -53,14 +53,14 @@ "@typescript-eslint/parser": "2.33.0", "babel-eslint": "10.1.0", "chai": "4.2.0", - "cspell": "4.0.61", - "dtslint": "3.6.0", + "cspell": "4.0.62", + "dtslint": "3.6.2", "eslint": "7.0.0", - "eslint-plugin-flowtype": "4.7.0", + "eslint-plugin-flowtype": "5.0.3", "eslint-plugin-graphql-internal": "file:./resources/eslint-rules", "eslint-plugin-import": "2.20.2", "eslint-plugin-node": "^11.1.0", - "flow-bin": "0.124.0", + "flow-bin": "0.125.1", "mocha": "7.1.2", "nyc": "15.0.1", "prettier": "2.0.5", From 161452059e7978047fec47bf377cd1708bbfd7fb Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sat, 16 May 2020 19:23:34 +0300 Subject: [PATCH 33/63] flowconfig: remove iterall from ignored (#2556) --- .flowconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/.flowconfig b/.flowconfig index 29deebb0a4a..ecd0c672b3a 100644 --- a/.flowconfig +++ b/.flowconfig @@ -3,7 +3,6 @@ !/src !/node_modules/chai !/node_modules/mocha -!/node_modules/iterall [include] From cf89b852510947c64dbe7fd599124492a8319ad8 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sun, 17 May 2020 01:56:24 +0300 Subject: [PATCH 34/63] Fix deployment to 'npm' branch (#2557) --- .github/workflows/ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 12538928501..8f40d9880d8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -110,7 +110,10 @@ jobs: deploy-to-npm-branch: name: Deploy to `npm` branch runs-on: ubuntu-latest - if: github.event == 'push' && github.repository == 'graphql/graphql-js' && github.ref == 'master' + if: | + github.event_name == 'push' && + github.repository == 'graphql/graphql-js' && + github.ref == 'refs/heads/master' needs: [test, lint] steps: - name: Checkout repo From e01cfa80a534cf13c693526888fe56e5ec46d86a Mon Sep 17 00:00:00 2001 From: Christoph Zwerschke Date: Sun, 17 May 2020 22:44:01 +0200 Subject: [PATCH 35/63] Create base temp dir for benchmarks if not existing (#2558) --- resources/benchmark.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/benchmark.js b/resources/benchmark.js index d629b34af7e..6fd283f7b7b 100644 --- a/resources/benchmark.js +++ b/resources/benchmark.js @@ -37,7 +37,7 @@ function prepareRevision(revision) { const dir = path.join(os.tmpdir(), 'graphql-js-benchmark', hash); rmdirRecursive(dir); - fs.mkdirSync(dir); + fs.mkdirSync(dir, { recursive: true }); exec(`git archive "${hash}" | tar -xC "${dir}"`); exec('npm ci', { cwd: dir }); From 15e43b8b1ef47e6407cf1523379a9ac16ec3f0e5 Mon Sep 17 00:00:00 2001 From: Naman Kumar Date: Mon, 18 May 2020 13:18:46 +0530 Subject: [PATCH 36/63] BlockString: print multi line for trailing backslash (#2560) --- src/language/__tests__/.blockString-test.js.swp | Bin 0 -> 16384 bytes src/language/__tests__/blockString-test.js | 7 +++++++ src/language/blockString.js | 6 +++++- 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 src/language/__tests__/.blockString-test.js.swp diff --git a/src/language/__tests__/.blockString-test.js.swp b/src/language/__tests__/.blockString-test.js.swp new file mode 100644 index 0000000000000000000000000000000000000000..bbad20578d107cd2b79f23d25a1e880c8a4afead GIT binary patch literal 16384 zcmeI3O^g&p6vqoxzL5nJ_Fy!{f|(iInOPt~5eh|!}5Pac36nZ5n_l$)sz0WBc6ZoWAR1DW{I;jN zt6$ao*Q=_2y*<^jpeI)0PSGgK}t9u?NO z?>CFj27YnJ?vm?U!p&Uyx-wXP!4I0{M(A7RMj+agC*9&ySPlcL>UMF(K_x zh7%LzDy%f0lY!$kigc_r6=qDD9ixCzU@;1GWWBg&J=?W&#~2mgIdhqkvJsC}0#Y3K#{90!9I&fKk9G@IO>Q)EIkuEn`;!{r^A7??2zb*sI`0a009a zKi<#SHE&a?K)n~_N0)G?Nzr>v-}`HGu#=j8WJigyau0kyjSn;}ATD_cG|%x@)9H#j6Ud8M-2z*TbFLB?0*wwuOZX?HWHN+>XshPIi2WJqk>(0hMB1 zlt+Dp?v;07+ZnYMarFQqy0)m1hRRniyc#DblYw|=)Qt2?#o&!9MUc<@?|gI14s|^T_!> z0Plk;7zew-HZTPKM*e>T&@+KA!DrwC_z*k_9s%3HjWvv&1DnAR*Z_WA&DcfoF*pZ0 zpaKqp?O-EV1Fo&YGYilLQ=krP@EBMLuB>G2Tks8d2b=)IU?Ug;zpP;FJ#Y-H01W(d zAAAKN*b1)R%h>neJMbT#rU36R-tqWZJ zpd_A-LN2gQs5w$KO!Ky8hgRTJ?R>6xUDFD&>{1&K$cC*igNM7TbpEBBz}2*ZWo*DkRAg3)=z3buYCiXT$)#x8+-|kyjOwM3<3_{h z!m|91C-v@_vxN8S3e^i0$yJxoAc{UcitbvxGi30l_6F#o$X@^EMPU=I{Sbp!ecbIx zQB|u_ygsENZcU0nSkew|O|w|BDz(p=uj|sK>8A3hrZNFEz*wL*Bt6*Eb6sfyTXq63 z#axs0yQQ|y=DhKuloVQ zC?0qs2*ivgQ+Iw`u#>gYJriX-rZOqdQ?~2+qiPJQPUZNOpj+F51JQ0gJfqzcekTa^ z!iVUGgvXAQcu!JNv#G1KtmHV|mF5F6t-k0pFrymMmZ{t;t&?h1=kX;v*sU;gBGa(! z6{)daQ<|gt6&XSF6RDxJRnZ!lIF-q)aA7o)+M$|Dg^Tfz1SU=c)D#iwJvCY?g5zEq`1Djj%*>Sw2_ssBh{W&!Wd{+7qi%sYJyJ^yJ8Cwf#WyGsraNTWv=9 zf=lFRl$2=e6QAX39?F$U`fuNn&*;@exydL7R$9L0NW`&G { ); }); + it('correctly prints single-line with trailing backslash', () => { + const str = 'backslash \\'; + + expect(printBlockString(str)).to.equal('"""\nbackslash \\\n"""'); + expect(printBlockString(str, '', true)).to.equal('"""\nbackslash \\\n"""'); + }); + it('correctly prints string with a first line indentation', () => { const str = joinLines( ' first ', diff --git a/src/language/blockString.js b/src/language/blockString.js index dba151a125f..d8ec8fb49dc 100644 --- a/src/language/blockString.js +++ b/src/language/blockString.js @@ -85,8 +85,12 @@ export function printBlockString( const isSingleLine = value.indexOf('\n') === -1; const hasLeadingSpace = value[0] === ' ' || value[0] === '\t'; const hasTrailingQuote = value[value.length - 1] === '"'; + const hasTrailingSlash = value[value.length - 1] === '\\'; const printAsMultipleLines = - !isSingleLine || hasTrailingQuote || preferMultipleLines; + !isSingleLine || + hasTrailingQuote || + hasTrailingSlash || + preferMultipleLines; let result = ''; // Format a multi-line block quote to account for leading space. From 985a8e31e22f02847dc3d26cff340455e0d8b4a5 Mon Sep 17 00:00:00 2001 From: Melissa Winstanley Date: Mon, 18 May 2020 17:09:48 -0700 Subject: [PATCH 37/63] TS: Fix incorrect enum typing in findBreakingChanges (#2563) --- src/utilities/findBreakingChanges.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utilities/findBreakingChanges.d.ts b/src/utilities/findBreakingChanges.d.ts index 37297e2f519..8d9f71a702c 100644 --- a/src/utilities/findBreakingChanges.d.ts +++ b/src/utilities/findBreakingChanges.d.ts @@ -11,7 +11,7 @@ type _BreakingChangeType = { TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION'; VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM'; REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED'; - INTERFACE_REMOVED_FROM_OBJECT: 'INTERFACE_REMOVED_FROM_OBJECT'; + IMPLEMENTED_INTERFACE_REMOVED: 'IMPLEMENTED_INTERFACE_REMOVED'; FIELD_REMOVED: 'FIELD_REMOVED'; FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND'; REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED'; @@ -34,7 +34,7 @@ type _DangerousChangeType = { TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION'; OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED'; OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED'; - INTERFACE_ADDED_TO_OBJECT: 'INTERFACE_ADDED_TO_OBJECT'; + IMPLEMENTED_INTERFACE_ADDED: 'IMPLEMENTED_INTERFACE_ADDED'; ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE'; }; From b1c41f90e821c082b5b3d31bc61ffb6288d5e4e9 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Tue, 19 May 2020 03:11:04 +0300 Subject: [PATCH 38/63] Update deps (#2561) --- .eslintrc.yml | 4 +- package-lock.json | 196 +++++++++++++++++++++++++++++++--------------- package.json | 8 +- 3 files changed, 140 insertions(+), 68 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 0e742b2d1ff..57b5887479b 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -20,7 +20,7 @@ rules: graphql-internal/no-dir-import: error ############################################################################## - # `eslint-plugin-flowtype` rule list based on `v4.7.x` + # `eslint-plugin-flowtype` rule list based on `v5.1.x` # https://github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype ############################################################################## @@ -486,7 +486,7 @@ overrides: flowtype/no-types-missing-file-annotation: off ########################################################################## - # `@typescript-eslint/eslint-plugin` rule list based on `v2.33.x` + # `@typescript-eslint/eslint-plugin` rule list based on `v2.34.x` ########################################################################## # Supported Rules diff --git a/package-lock.json b/package-lock.json index 9cea9071ded..07e1cc814d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1079,45 +1079,45 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz", - "integrity": "sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ==", + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", + "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "2.33.0", + "@typescript-eslint/experimental-utils": "2.34.0", "functional-red-black-tree": "^1.0.1", "regexpp": "^3.0.0", "tsutils": "^3.17.1" } }, "@typescript-eslint/experimental-utils": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.33.0.tgz", - "integrity": "sha512-qzPM2AuxtMrRq78LwyZa8Qn6gcY8obkIrBs1ehqmQADwkYzTE1Pb4y2W+U3rE/iFkSWcWHG2LS6MJfj6SmHApg==", + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", + "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.33.0", + "@typescript-eslint/typescript-estree": "2.34.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.33.0.tgz", - "integrity": "sha512-AUtmwUUhJoH6yrtxZMHbRUEMsC2G6z5NSxg9KsROOGqNXasM71I8P2NihtumlWTUCRld70vqIZ6Pm4E5PAziEA==", + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", + "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", "dev": true, "requires": { "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.33.0", - "@typescript-eslint/typescript-estree": "2.33.0", + "@typescript-eslint/experimental-utils": "2.34.0", + "@typescript-eslint/typescript-estree": "2.34.0", "eslint-visitor-keys": "^1.1.0" } }, "@typescript-eslint/typescript-estree": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.33.0.tgz", - "integrity": "sha512-d8rY6/yUxb0+mEwTShCQF2zYQdLlqihukNfG9IUlLYz5y1CH6G/9XYbrxQLq3Z14RNvkCC6oe+OcFlyUpwUbkg==", + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", + "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", "dev": true, "requires": { "debug": "^4.1.1", @@ -1315,6 +1315,12 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -1734,12 +1740,15 @@ "dev": true }, "comment-json": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-1.1.3.tgz", - "integrity": "sha1-aYbDMw/uDEyeAMI5jNYa+l2PI54=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-3.0.2.tgz", + "integrity": "sha512-ysJasbJ671+8mPEmwLOfLFqxoGtSmjyoep+lKRVH4J1/hsGu79fwetMDQWk8de8mVgqDZ43D7JuJAlACqjI1pg==", "dev": true, "requires": { - "json-parser": "^1.0.0" + "core-util-is": "^1.0.2", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" } }, "commondir": { @@ -1863,21 +1872,51 @@ "dev": true }, "cspell": { - "version": "4.0.62", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-4.0.62.tgz", - "integrity": "sha512-P1KwPXgBosjtP2eExa9DpapRXIygjiV+MbTGwL/7ST6rFIdvlgjrz9W/hyVIK3+4+i/iiIuHTG5jrkXiizqasA==", + "version": "4.0.63", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-4.0.63.tgz", + "integrity": "sha512-dF0oq69CrTFArISxKhih5p8Mcb1RihzQcQ5LnQnuY66Df/qtyScCMvPgg+G/gUtLPa2RYb3WSy8surZNVS2c0Q==", "dev": true, "requires": { "chalk": "^2.4.2", "commander": "^2.20.3", - "comment-json": "^1.1.3", - "cspell-glob": "^0.1.18", - "cspell-lib": "^4.1.28", - "fs-extra": "^8.1.0", + "comment-json": "^3.0.2", + "cspell-glob": "^0.1.19", + "cspell-lib": "^4.1.29", + "fs-extra": "^9.0.0", "gensequence": "^3.1.1", "get-stdin": "^7.0.0", "glob": "^7.1.6", "minimatch": "^3.0.4" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + } } }, "cspell-dict-aws": { @@ -2124,18 +2163,18 @@ } }, "cspell-glob": { - "version": "0.1.18", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-0.1.18.tgz", - "integrity": "sha512-j7XDtSRUgHZNLcnFNI2ngTvkAlC7AI43LAuOYTCgU3+zKMdwzq6C7m/a1c9tWjnPYJiIPf+OEkE9bAhIufzk3Q==", + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-0.1.19.tgz", + "integrity": "sha512-mWWXtKZIsbbUcFKscHEHc2o3fG7VWLqx46ooqbNVnItSZ/jJgPSuguvKh3L6avPY3KKmef2Loae7bjchDwZ+Mw==", "dev": true, "requires": { "micromatch": "^4.0.2" } }, "cspell-io": { - "version": "4.0.21", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-4.0.21.tgz", - "integrity": "sha512-dht81s3CMPQTqtYqcJ/imEbE7WoYgGR4F52Fotgvd7Kky+H8GgSBnJYLJNk/PuT2xJ/8ebhx7v464v9cD73Okw==", + "version": "4.0.22", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-4.0.22.tgz", + "integrity": "sha512-cjkCHgLZftGPmGe6eSh+FQpQPCxou7t/MjwuCTY8ZeqI55veCF9uCWk8BI4lKbvDjkp6HxgU1T4mighvKY3/wA==", "dev": true, "requires": { "iconv-lite": "^0.4.24", @@ -2143,12 +2182,12 @@ } }, "cspell-lib": { - "version": "4.1.28", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-4.1.28.tgz", - "integrity": "sha512-uNDRdhte2YvSkGwxcIXJfMJz9E6ebwnEKYaKF0SPY9P3MUEYSe3Ln2nEhELixS+jZCc+hXYmFR0DEaExFasXRg==", + "version": "4.1.29", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-4.1.29.tgz", + "integrity": "sha512-NQTxLhPPObvPg2MJmu1pVJG5fEaytHhhHjHhbdfh6gFTUKdBwQTwxprL+9ySRBPpxm9x7BgqGchJpDa7UbENyQ==", "dev": true, "requires": { - "comment-json": "^1.1.3", + "comment-json": "^3.0.2", "configstore": "^5.0.1", "cspell-dict-aws": "^1.0.5", "cspell-dict-bash": "^1.0.3", @@ -2177,28 +2216,58 @@ "cspell-dict-scala": "^1.0.11", "cspell-dict-software-terms": "^1.0.10", "cspell-dict-typescript": "^1.0.5", - "cspell-io": "^4.0.21", - "cspell-trie-lib": "^4.1.9", - "cspell-util-bundle": "^4.0.11", - "fs-extra": "^8.1.0", + "cspell-io": "^4.0.22", + "cspell-trie-lib": "^4.1.10", + "cspell-util-bundle": "^4.0.12", + "fs-extra": "^9.0.0", "gensequence": "^3.1.1", "minimatch": "^3.0.4", "vscode-uri": "^2.1.1" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + } } }, "cspell-trie-lib": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-4.1.9.tgz", - "integrity": "sha512-Qf/bnXwEwm6oRaZPvELuIva6iJfCr+4WDbcNaNZUd+J3snanMpzp+TsqHyH3p1dPxnvO8eAEnU9RWVUdbXXnfA==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-4.1.10.tgz", + "integrity": "sha512-KRcHfdzWQz5W4M4WstzjFDGS8EM7nxGOVXTOq1mNXsT2DkoOemVPI0gIUWLGHcuZuXAj90dkqzEWNk6wZ9v9+w==", "dev": true, "requires": { "gensequence": "^3.1.1" } }, "cspell-util-bundle": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/cspell-util-bundle/-/cspell-util-bundle-4.0.11.tgz", - "integrity": "sha512-6AJRN0KbeTJB+IPpwKb11zFUVz2Q8Rgm4qmy/wsbhw6ICFfmgWG5Fr2OzJpZBCm8GJJg1Tjs/VZimSvCdnRj7g==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/cspell-util-bundle/-/cspell-util-bundle-4.0.12.tgz", + "integrity": "sha512-qrqbgSF4Uci/E5q7q95Wd00RrVj6NTABbJGE8qNTMcLfBLezVy0zj+eHdLe7dTkx4oHob2N3WrMBBE3xBhzg/g==", "dev": true }, "dashdash": { @@ -2794,9 +2863,9 @@ } }, "eslint-plugin-flowtype": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.0.3.tgz", - "integrity": "sha512-QtfUeODs6B7/girI8t/FeZ9FKb0vl7hRkWty/L4Ae3Shwfb79P/rf/S8pzjOxz0Bv0R0VHDN2ATubJfo1fXNcg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.1.0.tgz", + "integrity": "sha512-avZ1nHs0vadDTPvgGbggLWvktqI7urjZ1fcK8P+AXJkTuOSBmNje/vMtbfXgs85d32nMYioD7LoLNZiEULZ8lA==", "dev": true, "requires": { "lodash": "^4.17.15", @@ -2919,9 +2988,9 @@ } }, "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { @@ -3384,6 +3453,12 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "dev": true + }, "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", @@ -3977,15 +4052,6 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, - "json-parser": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/json-parser/-/json-parser-1.1.5.tgz", - "integrity": "sha1-5i7FJh0aal/CDoEqMgdAxtkAVnc=", - "dev": true, - "requires": { - "esprima": "^2.7.0" - } - }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -5260,6 +5326,12 @@ "es6-error": "^4.0.1" } }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", diff --git a/package.json b/package.json index e3d2921b916..5b8d9358001 100644 --- a/package.json +++ b/package.json @@ -49,14 +49,14 @@ "@babel/plugin-transform-flow-strip-types": "7.9.0", "@babel/preset-env": "7.9.6", "@babel/register": "7.9.0", - "@typescript-eslint/eslint-plugin": "2.33.0", - "@typescript-eslint/parser": "2.33.0", + "@typescript-eslint/eslint-plugin": "2.34.0", + "@typescript-eslint/parser": "2.34.0", "babel-eslint": "10.1.0", "chai": "4.2.0", - "cspell": "4.0.62", + "cspell": "4.0.63", "dtslint": "3.6.2", "eslint": "7.0.0", - "eslint-plugin-flowtype": "5.0.3", + "eslint-plugin-flowtype": "5.1.0", "eslint-plugin-graphql-internal": "file:./resources/eslint-rules", "eslint-plugin-import": "2.20.2", "eslint-plugin-node": "^11.1.0", From c63d64d9ea21187ec51c61e9a5a418d4836feb72 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Tue, 19 May 2020 04:19:58 +0300 Subject: [PATCH 39/63] package.json: use only exact versions (#2564) --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 5b8d9358001..9618a616cb9 100644 --- a/package.json +++ b/package.json @@ -59,11 +59,11 @@ "eslint-plugin-flowtype": "5.1.0", "eslint-plugin-graphql-internal": "file:./resources/eslint-rules", "eslint-plugin-import": "2.20.2", - "eslint-plugin-node": "^11.1.0", + "eslint-plugin-node": "11.1.0", "flow-bin": "0.125.1", "mocha": "7.1.2", "nyc": "15.0.1", "prettier": "2.0.5", - "typescript": "^3.9.2" + "typescript": "3.9.2" } } From 74ce729eddf7c777a1c500d63f1c4fce35e9f1cf Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Wed, 20 May 2020 19:35:09 +0300 Subject: [PATCH 40/63] Enable linting for istanbul ignore comments (#2565) --- .eslintrc.yml | 9 +++++++++ package-lock.json | 6 ++++++ package.json | 1 + src/__tests__/version-test.js | 4 ++-- src/error/GraphQLError.js | 2 +- src/execution/execute.js | 2 +- src/execution/values.js | 2 +- src/jsutils/__tests__/inspect-test.js | 7 ++++--- src/jsutils/__tests__/isCollection-test.js | 2 +- src/jsutils/dedent.js | 2 +- src/jsutils/defineInspect.js | 2 +- src/jsutils/devAssert.js | 2 +- src/jsutils/instanceOf.js | 2 +- src/jsutils/invariant.js | 2 +- src/jsutils/nodejsCustomInspectSymbol.js | 2 +- src/language/__tests__/visitor-test.js | 2 +- src/polyfills/arrayFrom.js | 2 +- src/polyfills/symbols.js | 6 +++--- .../__tests__/mapAsyncIterator-test.js | 8 ++++---- src/subscription/__tests__/subscribe-test.js | 4 ++-- src/type/__tests__/definition-test.js | 2 +- src/type/__tests__/introspection-test.js | 2 +- src/type/validate.js | 2 +- .../__tests__/stripIgnoredCharacters-test.js | 3 +-- src/utilities/extendSchema.js | 14 +++++++------- src/validation/rules/KnownArgumentNamesRule.js | 2 +- .../rules/OverlappingFieldsCanBeMergedRule.js | 4 ++-- .../rules/ProvidedRequiredArgumentsRule.js | 6 +++--- src/validation/rules/UniqueEnumValueNamesRule.js | 2 +- .../rules/UniqueFieldDefinitionNamesRule.js | 2 +- src/validation/rules/UniqueOperationTypesRule.js | 2 +- 31 files changed, 63 insertions(+), 47 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 57b5887479b..1bc9b09dfe2 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -9,6 +9,7 @@ plugins: - graphql-internal - flowtype - node + - istanbul - import rules: @@ -67,6 +68,14 @@ rules: flowtype/space-before-type-colon: off flowtype/union-intersection-spacing: off + ############################################################################## + # `eslint-plugin-istanbul` rule list based on `v0.1.1` + # https://github.com/istanbuljs/eslint-plugin-istanbul#rules + ############################################################################## + + istanbul/no-ignore-file: error + istanbul/prefer-ignore-reason: error + ############################################################################## # `eslint-plugin-node` rule list based on `v11.1.x` ############################################################################## diff --git a/package-lock.json b/package-lock.json index 07e1cc814d3..825c186559e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2923,6 +2923,12 @@ } } }, + "eslint-plugin-istanbul": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-istanbul/-/eslint-plugin-istanbul-0.1.1.tgz", + "integrity": "sha512-onXVghQLkS0AQmdVm2qEbUo14ZEao7S3LZHGaiABaSi2Bt33GxsG6yWpMzT15SzuuCrQvVfdFY4xMS1y4ad6BA==", + "dev": true + }, "eslint-plugin-node": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", diff --git a/package.json b/package.json index 9618a616cb9..bdf39204e30 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "eslint-plugin-flowtype": "5.1.0", "eslint-plugin-graphql-internal": "file:./resources/eslint-rules", "eslint-plugin-import": "2.20.2", + "eslint-plugin-istanbul": "0.1.1", "eslint-plugin-node": "11.1.0", "flow-bin": "0.125.1", "mocha": "7.1.2", diff --git a/src/__tests__/version-test.js b/src/__tests__/version-test.js index b6fde05200c..928c5d8094d 100644 --- a/src/__tests__/version-test.js +++ b/src/__tests__/version-test.js @@ -26,14 +26,14 @@ describe('Version', () => { expect(minor).to.be.a('number'); expect(patch).to.be.a('number'); - /* istanbul ignore next (Can't be verified on all versions) */ + // istanbul ignore next (Can't be verified on all versions) if (preReleaseTag !== null) { expect(preReleaseTag).to.be.a('string'); } expect( `${major}.${minor}.${patch}` + - /* istanbul ignore next (Can't be verified on all versions) */ + // istanbul ignore next (Can't be verified on all versions) (preReleaseTag !== null ? '-' + preReleaseTag : ''), ).to.equal(version); }); diff --git a/src/error/GraphQLError.js b/src/error/GraphQLError.js index d3af8d2cf7c..c7c571d9aeb 100644 --- a/src/error/GraphQLError.js +++ b/src/error/GraphQLError.js @@ -196,7 +196,7 @@ export class GraphQLError extends Error { return; } - /* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */ + // istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) if (Error.captureStackTrace) { Error.captureStackTrace(this, GraphQLError); } else { diff --git a/src/execution/execute.js b/src/execution/execute.js index a78df7729af..d0536eec8d9 100644 --- a/src/execution/execute.js +++ b/src/execution/execute.js @@ -311,7 +311,7 @@ export function buildExecutionContext( return [new GraphQLError('Must provide an operation.')]; } - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const variableDefinitions = operation.variableDefinitions ?? []; const coercedVariableValues = getVariableValues( diff --git a/src/execution/values.js b/src/execution/values.js index aaafd51d959..b8416c2d4ee 100644 --- a/src/execution/values.js +++ b/src/execution/values.js @@ -170,7 +170,7 @@ export function getArgumentValues( ): { [argument: string]: mixed, ... } { const coercedValues = {}; - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const argumentNodes = node.arguments ?? []; const argNodeMap = keyMap(argumentNodes, (arg) => arg.name.value); diff --git a/src/jsutils/__tests__/inspect-test.js b/src/jsutils/__tests__/inspect-test.js index e72b5ffb255..61809039151 100644 --- a/src/jsutils/__tests__/inspect-test.js +++ b/src/jsutils/__tests__/inspect-test.js @@ -37,11 +37,12 @@ describe('inspect', () => { it('function', () => { const unnamedFuncStr = inspect( - /* istanbul ignore next */ () => invariant(false), + // istanbul ignore next (never called and used as a placeholder) + () => invariant(false), ); expect(unnamedFuncStr).to.equal('[function]'); - /* istanbul ignore next */ + // istanbul ignore next (never called and used as a placeholder) function namedFunc() { invariant(false); } @@ -107,7 +108,7 @@ describe('inspect', () => { it('custom symbol inspect is take precedence', () => { const object = { - /* istanbul ignore next */ + // istanbul ignore next (never called and use just as a placeholder) inspect() { invariant(false); }, diff --git a/src/jsutils/__tests__/isCollection-test.js b/src/jsutils/__tests__/isCollection-test.js index caa105f5558..be42b781f6e 100644 --- a/src/jsutils/__tests__/isCollection-test.js +++ b/src/jsutils/__tests__/isCollection-test.js @@ -30,7 +30,7 @@ describe('isCollection', () => { const iterator = { [Symbol.iterator]: identityFunc }; expect(isCollection(iterator)).to.equal(true); - // istanbul ignore next + // istanbul ignore next (never called and use just as a placeholder) function* generatorFunc() { /* do nothing */ } diff --git a/src/jsutils/dedent.js b/src/jsutils/dedent.js index a34a23aecef..0dbdc6c6976 100644 --- a/src/jsutils/dedent.js +++ b/src/jsutils/dedent.js @@ -21,7 +21,7 @@ export default function dedent( for (let i = 0; i < strings.length; ++i) { str += strings[i]; if (i < values.length) { - /* istanbul ignore next (ignore else inside Babel generated code) */ + // istanbul ignore next (ignore else inside Babel generated code) const value = values[i]; str += value; // interpolation diff --git a/src/jsutils/defineInspect.js b/src/jsutils/defineInspect.js index 5e2a11c3cbc..f50807413da 100644 --- a/src/jsutils/defineInspect.js +++ b/src/jsutils/defineInspect.js @@ -14,7 +14,7 @@ export default function defineInspect( classObject.prototype.inspect = fn; - /* istanbul ignore else (See: https://github.com/graphql/graphql-js/issues/2317) */ + // istanbul ignore else (See: https://github.com/graphql/graphql-js/issues/2317) if (nodejsCustomInspectSymbol) { classObject.prototype[nodejsCustomInspectSymbol] = fn; } diff --git a/src/jsutils/devAssert.js b/src/jsutils/devAssert.js index 4d465c4539c..147de378a3a 100644 --- a/src/jsutils/devAssert.js +++ b/src/jsutils/devAssert.js @@ -2,7 +2,7 @@ export default function devAssert(condition: mixed, message: string): void { const booleanCondition = Boolean(condition); - /* istanbul ignore else (see transformation done in './resources/inlineInvariant.js') */ + // istanbul ignore else (see transformation done in './resources/inlineInvariant.js') if (!booleanCondition) { throw new Error(message); } diff --git a/src/jsutils/instanceOf.js b/src/jsutils/instanceOf.js index e9448093962..b721e75a6fc 100644 --- a/src/jsutils/instanceOf.js +++ b/src/jsutils/instanceOf.js @@ -12,7 +12,7 @@ declare function instanceOf( // See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production // See: https://webpack.js.org/guides/production/ export default process.env.NODE_ENV === 'production' - ? /* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */ + ? // istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) // eslint-disable-next-line no-shadow function instanceOf(value: mixed, constructor: mixed) { return value instanceof constructor; diff --git a/src/jsutils/invariant.js b/src/jsutils/invariant.js index f3af549ac38..04ec1a5e284 100644 --- a/src/jsutils/invariant.js +++ b/src/jsutils/invariant.js @@ -2,7 +2,7 @@ export default function invariant(condition: mixed, message?: string): void { const booleanCondition = Boolean(condition); - /* istanbul ignore else (see transformation done in './resources/inlineInvariant.js') */ + // istanbul ignore else (see transformation done in './resources/inlineInvariant.js') if (!booleanCondition) { throw new Error( message != null ? message : 'Unexpected invariant triggered.', diff --git a/src/jsutils/nodejsCustomInspectSymbol.js b/src/jsutils/nodejsCustomInspectSymbol.js index a884a475723..27a83be8973 100644 --- a/src/jsutils/nodejsCustomInspectSymbol.js +++ b/src/jsutils/nodejsCustomInspectSymbol.js @@ -1,6 +1,6 @@ // @flow strict -/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */ +// istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) const nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') diff --git a/src/language/__tests__/visitor-test.js b/src/language/__tests__/visitor-test.js index c4bcf1d6878..308e9711ee2 100644 --- a/src/language/__tests__/visitor-test.js +++ b/src/language/__tests__/visitor-test.js @@ -1132,7 +1132,7 @@ describe('Visitor', () => { return BREAK; } }, - /* istanbul ignore next */ + // istanbul ignore next (never called and used as a placeholder) leave() { invariant(false); }, diff --git a/src/polyfills/arrayFrom.js b/src/polyfills/arrayFrom.js index f10ae58d085..871792ee60c 100644 --- a/src/polyfills/arrayFrom.js +++ b/src/polyfills/arrayFrom.js @@ -32,7 +32,7 @@ const arrayFrom = result.push(mapFn.call(thisArg, step.value, i)); // Infinite Iterators could cause forEach to run forever. // After a very large number of iterations, produce an error. - /* istanbul ignore if */ + // istanbul ignore if (too big to actually test) if (i > 9999999) { throw new TypeError('Near-infinite iteration.'); } diff --git a/src/polyfills/symbols.js b/src/polyfills/symbols.js index af2d2673a66..7155a758cad 100644 --- a/src/polyfills/symbols.js +++ b/src/polyfills/symbols.js @@ -1,17 +1,17 @@ // @flow strict // In ES2015 (or a polyfilled) environment, this will be Symbol.iterator -/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */ +// istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) export const SYMBOL_ITERATOR: string = typeof Symbol === 'function' ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator -/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */ +// istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) export const SYMBOL_ASYNC_ITERATOR: string = // $FlowFixMe Flow doesn't define `Symbol.asyncIterator` yet typeof Symbol === 'function' ? Symbol.asyncIterator : '@@asyncIterator'; -/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */ +// istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) export const SYMBOL_TO_STRING_TAG: string = // $FlowFixMe Flow doesn't define `Symbol.toStringTag` yet typeof Symbol === 'function' ? Symbol.toStringTag : '@@toStringTag'; diff --git a/src/subscription/__tests__/mapAsyncIterator-test.js b/src/subscription/__tests__/mapAsyncIterator-test.js index 30fdf396ad0..4815dd20640 100644 --- a/src/subscription/__tests__/mapAsyncIterator-test.js +++ b/src/subscription/__tests__/mapAsyncIterator-test.js @@ -96,7 +96,7 @@ describe('mapAsyncIterator', () => { yield 1; yield 2; - /* istanbul ignore next (shouldn't be reached) */ + // istanbul ignore next (shouldn't be reached) yield 3; } @@ -156,7 +156,7 @@ describe('mapAsyncIterator', () => { yield 1; yield 2; - /* istanbul ignore next (shouldn't be reached) */ + // istanbul ignore next (shouldn't be reached) yield 3; } finally { yield 'Done'; @@ -223,7 +223,7 @@ describe('mapAsyncIterator', () => { yield 1; yield 2; - /* istanbul ignore next (shouldn't be reached) */ + // istanbul ignore next (shouldn't be reached) yield 3; } catch (e) { yield e; @@ -311,7 +311,7 @@ describe('mapAsyncIterator', () => { yield 1; yield 2; - /* istanbul ignore next (shouldn't be reached) */ + // istanbul ignore next (shouldn't be reached) yield 3; } finally { didVisitFinally = true; diff --git a/src/subscription/__tests__/subscribe-test.js b/src/subscription/__tests__/subscribe-test.js index 08bf3bdcdc5..22431c9eff8 100644 --- a/src/subscription/__tests__/subscribe-test.js +++ b/src/subscription/__tests__/subscribe-test.js @@ -136,7 +136,7 @@ async function createSubscription( async function expectPromiseToThrow(promise, message) { try { await promise(); - /* istanbul ignore next */ + // istanbul ignore next(shouldn't be reached) expect.fail('promise should have thrown but did not'); } catch (error) { expect(error).to.be.an.instanceOf(Error); @@ -280,7 +280,7 @@ describe('Subscription Initialization Phase', () => { }, nonImportantEmail: { type: EmailEventType, - /* istanbul ignore next (shouldn't be called) */ + // istanbul ignore next (shouldn't be called) subscribe() { didResolveNonImportantEmail = true; return eventEmitterAsyncIterator(new EventEmitter(), 'event'); diff --git a/src/type/__tests__/definition-test.js b/src/type/__tests__/definition-test.js index bc26f58cb25..314997cb601 100644 --- a/src/type/__tests__/definition-test.js +++ b/src/type/__tests__/definition-test.js @@ -39,7 +39,7 @@ const NonNullScalarType = GraphQLNonNull(ScalarType); const ListOfNonNullScalarsType = GraphQLList(NonNullScalarType); const NonNullListOfScalars = GraphQLNonNull(ListOfScalarsType); -/* istanbul ignore next */ +// istanbul ignore next (never called and used as a placeholder) const dummyFunc = () => { /* empty */ }; diff --git a/src/type/__tests__/introspection-test.js b/src/type/__tests__/introspection-test.js index 1da64836c2b..4e7c47a4224 100644 --- a/src/type/__tests__/introspection-test.js +++ b/src/type/__tests__/introspection-test.js @@ -1476,7 +1476,7 @@ describe('Introspection', () => { const schema = new GraphQLSchema({ query: QueryRoot }); const source = getIntrospectionQuery({ directiveIsRepeatable: true }); - /* istanbul ignore next */ + // istanbul ignore next (called only to fail test) function fieldResolver(_1, _2, _3, info) { invariant(false, `Called on ${info.parentType.name}::${info.fieldName}`); } diff --git a/src/type/validate.js b/src/type/validate.js index 7126aa96405..d43702f2258 100644 --- a/src/type/validate.js +++ b/src/type/validate.js @@ -588,7 +588,7 @@ function getAllSubNodes( object: SDLDefinedObject, getter: (T | K) => ?(L | $ReadOnlyArray), ): $ReadOnlyArray { - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) return flatMap(getAllNodes(object), (item) => getter(item) ?? []); } diff --git a/src/utilities/__tests__/stripIgnoredCharacters-test.js b/src/utilities/__tests__/stripIgnoredCharacters-test.js index 6e162ba1fe8..c0c6fe67dc8 100644 --- a/src/utilities/__tests__/stripIgnoredCharacters-test.js +++ b/src/utilities/__tests__/stripIgnoredCharacters-test.js @@ -66,8 +66,7 @@ function lexValue(str) { return value; } -// Called only to make error messages for failing tests -/* istanbul ignore next */ +// istanbul ignore next (called only to make error messages for failing tests) function inspectStr(str) { return (JSON.stringify(str) ?? '') .replace(/^"|"$/g, '`') diff --git a/src/utilities/extendSchema.js b/src/utilities/extendSchema.js index 82659733870..1cf4de1932e 100644 --- a/src/utilities/extendSchema.js +++ b/src/utilities/extendSchema.js @@ -415,7 +415,7 @@ export function extendSchemaImpl( |} { const opTypes = {}; for (const node of nodes) { - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const operationTypesNodes = node.operationTypes ?? []; for (const operationType of operationTypesNodes) { @@ -474,7 +474,7 @@ export function extendSchemaImpl( ): GraphQLFieldConfigMap { const fieldConfigMap = Object.create(null); for (const node of nodes) { - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const nodeFields = node.fields ?? []; for (const field of nodeFields) { @@ -496,7 +496,7 @@ export function extendSchemaImpl( function buildArgumentMap( args: ?$ReadOnlyArray, ): GraphQLFieldConfigArgumentMap { - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const argsNodes = args ?? []; const argConfigMap = Object.create(null); @@ -523,7 +523,7 @@ export function extendSchemaImpl( ): GraphQLInputFieldConfigMap { const inputFieldMap = Object.create(null); for (const node of nodes) { - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const fieldsNodes = node.fields ?? []; for (const field of fieldsNodes) { @@ -548,7 +548,7 @@ export function extendSchemaImpl( ): GraphQLEnumValueConfigMap { const enumValueMap = Object.create(null); for (const node of nodes) { - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const valuesNodes = node.values ?? []; for (const value of valuesNodes) { @@ -572,7 +572,7 @@ export function extendSchemaImpl( ): Array { const interfaces = []; for (const node of nodes) { - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const interfacesNodes = node.interfaces ?? []; for (const type of interfacesNodes) { @@ -591,7 +591,7 @@ export function extendSchemaImpl( ): Array { const types = []; for (const node of nodes) { - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const typeNodes = node.types ?? []; for (const type of typeNodes) { diff --git a/src/validation/rules/KnownArgumentNamesRule.js b/src/validation/rules/KnownArgumentNamesRule.js index d397bf2429e..14ff27556fc 100644 --- a/src/validation/rules/KnownArgumentNamesRule.js +++ b/src/validation/rules/KnownArgumentNamesRule.js @@ -64,7 +64,7 @@ export function KnownArgumentNamesOnDirectivesRule( const astDefinitions = context.getDocument().definitions; for (const def of astDefinitions) { if (def.kind === Kind.DIRECTIVE_DEFINITION) { - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const argsNodes = def.arguments ?? []; directiveArgs[def.name.value] = argsNodes.map((arg) => arg.name.value); diff --git a/src/validation/rules/OverlappingFieldsCanBeMergedRule.js b/src/validation/rules/OverlappingFieldsCanBeMergedRule.js index a8dd7220506..702f7f52ce8 100644 --- a/src/validation/rules/OverlappingFieldsCanBeMergedRule.js +++ b/src/validation/rules/OverlappingFieldsCanBeMergedRule.js @@ -571,9 +571,9 @@ function findConflict( ]; } - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const args1 = node1.arguments ?? []; - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const args2 = node2.arguments ?? []; // Two field calls must have the same arguments. if (!sameArguments(args1, args2)) { diff --git a/src/validation/rules/ProvidedRequiredArgumentsRule.js b/src/validation/rules/ProvidedRequiredArgumentsRule.js index d72974fe254..89967b3266d 100644 --- a/src/validation/rules/ProvidedRequiredArgumentsRule.js +++ b/src/validation/rules/ProvidedRequiredArgumentsRule.js @@ -36,7 +36,7 @@ export function ProvidedRequiredArgumentsRule( return false; } - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const argNodes = fieldNode.arguments ?? []; const argNodeMap = keyMap(argNodes, (arg) => arg.name.value); for (const argDef of fieldDef.args) { @@ -78,7 +78,7 @@ export function ProvidedRequiredArgumentsOnDirectivesRule( const astDefinitions = context.getDocument().definitions; for (const def of astDefinitions) { if (def.kind === Kind.DIRECTIVE_DEFINITION) { - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const argNodes = def.arguments ?? []; requiredArgsMap[def.name.value] = keyMap( @@ -95,7 +95,7 @@ export function ProvidedRequiredArgumentsOnDirectivesRule( const directiveName = directiveNode.name.value; const requiredArgs = requiredArgsMap[directiveName]; if (requiredArgs) { - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const argNodes = directiveNode.arguments ?? []; const argNodeMap = keyMap(argNodes, (arg) => arg.name.value); for (const argName of Object.keys(requiredArgs)) { diff --git a/src/validation/rules/UniqueEnumValueNamesRule.js b/src/validation/rules/UniqueEnumValueNamesRule.js index dac1939abda..926cef6a31a 100644 --- a/src/validation/rules/UniqueEnumValueNamesRule.js +++ b/src/validation/rules/UniqueEnumValueNamesRule.js @@ -30,7 +30,7 @@ export function UniqueEnumValueNamesRule( knownValueNames[typeName] = Object.create(null); } - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const valueNodes = node.values ?? []; const valueNames = knownValueNames[typeName]; diff --git a/src/validation/rules/UniqueFieldDefinitionNamesRule.js b/src/validation/rules/UniqueFieldDefinitionNamesRule.js index 2a75e5b89bf..9c7b3335106 100644 --- a/src/validation/rules/UniqueFieldDefinitionNamesRule.js +++ b/src/validation/rules/UniqueFieldDefinitionNamesRule.js @@ -38,7 +38,7 @@ export function UniqueFieldDefinitionNamesRule( knownFieldNames[typeName] = Object.create(null); } - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const fieldNodes = node.fields ?? []; const fieldNames = knownFieldNames[typeName]; diff --git a/src/validation/rules/UniqueOperationTypesRule.js b/src/validation/rules/UniqueOperationTypesRule.js index 2cd40fc5326..dc532a8c46b 100644 --- a/src/validation/rules/UniqueOperationTypesRule.js +++ b/src/validation/rules/UniqueOperationTypesRule.js @@ -29,7 +29,7 @@ export function UniqueOperationTypesRule( }; function checkOperationTypes(node) { - /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */ + // istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) const operationTypesNodes = node.operationTypes ?? []; for (const operationType of operationTypesNodes) { From 2a7d449028068297e8a487c5c35d665d8b06f297 Mon Sep 17 00:00:00 2001 From: Christoph Zwerschke Date: Thu, 21 May 2020 16:50:54 +0200 Subject: [PATCH 41/63] Add missing exports for the new specifiedBy directive (#2571) --- src/index.d.ts | 1 + src/index.js | 1 + src/type/index.d.ts | 1 + src/type/index.js | 1 + 4 files changed, 4 insertions(+) diff --git a/src/index.d.ts b/src/index.d.ts index f3181728f33..385db0784e0 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -55,6 +55,7 @@ export { GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective, + GraphQLSpecifiedByDirective, // "Enum" of Type Kinds TypeKind, // Constant Deprecation Reason diff --git a/src/index.js b/src/index.js index e92c9365954..e16edf24ebe 100644 --- a/src/index.js +++ b/src/index.js @@ -56,6 +56,7 @@ export { GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective, + GraphQLSpecifiedByDirective, // "Enum" of Type Kinds TypeKind, // Constant Deprecation Reason diff --git a/src/type/index.d.ts b/src/type/index.d.ts index b6780d81712..3454d8e36b8 100644 --- a/src/type/index.d.ts +++ b/src/type/index.d.ts @@ -115,6 +115,7 @@ export { GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective, + GraphQLSpecifiedByDirective, // Constant Deprecation Reason DEFAULT_DEPRECATION_REASON, // type diff --git a/src/type/index.js b/src/type/index.js index ec87a1c7b04..d15378b6ccd 100644 --- a/src/type/index.js +++ b/src/type/index.js @@ -79,6 +79,7 @@ export { GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective, + GraphQLSpecifiedByDirective, // Constant Deprecation Reason DEFAULT_DEPRECATION_REASON, } from './directives'; From 8be49f63293f7892dfa307902ecdbb5f80ecadb3 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 21 May 2020 20:50:10 +0300 Subject: [PATCH 42/63] Move `dedent` into new `__testUtils__` folder (#2572) --- src/{jsutils => __testUtils__}/__tests__/dedent-test.js | 0 src/{jsutils => __testUtils__}/dedent.js | 0 src/error/__tests__/GraphQLError-test.js | 3 ++- src/language/__tests__/lexer-test.js | 3 ++- src/language/__tests__/parser-test.js | 3 ++- src/language/__tests__/printLocation-test.js | 2 +- src/language/__tests__/printer-test.js | 2 +- src/language/__tests__/schema-parser-test.js | 2 +- src/language/__tests__/schema-printer-test.js | 2 +- src/type/__tests__/schema-test.js | 2 +- src/type/__tests__/validation-test.js | 3 ++- src/utilities/__tests__/buildASTSchema-test.js | 3 ++- src/utilities/__tests__/buildClientSchema-test.js | 2 +- src/utilities/__tests__/concatAST-test.js | 2 +- src/utilities/__tests__/extendSchema-test.js | 3 ++- src/utilities/__tests__/introspectionFromSchema-test.js | 2 +- src/utilities/__tests__/lexicographicSortSchema-test.js | 2 +- src/utilities/__tests__/printSchema-test.js | 2 +- src/utilities/__tests__/separateOperations-test.js | 2 +- src/utilities/__tests__/stripIgnoredCharacters-test.js | 3 ++- 20 files changed, 25 insertions(+), 18 deletions(-) rename src/{jsutils => __testUtils__}/__tests__/dedent-test.js (100%) rename src/{jsutils => __testUtils__}/dedent.js (100%) diff --git a/src/jsutils/__tests__/dedent-test.js b/src/__testUtils__/__tests__/dedent-test.js similarity index 100% rename from src/jsutils/__tests__/dedent-test.js rename to src/__testUtils__/__tests__/dedent-test.js diff --git a/src/jsutils/dedent.js b/src/__testUtils__/dedent.js similarity index 100% rename from src/jsutils/dedent.js rename to src/__testUtils__/dedent.js diff --git a/src/error/__tests__/GraphQLError-test.js b/src/error/__tests__/GraphQLError-test.js index deba78b4373..a4130b96c69 100644 --- a/src/error/__tests__/GraphQLError-test.js +++ b/src/error/__tests__/GraphQLError-test.js @@ -3,7 +3,8 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; + import invariant from '../../jsutils/invariant'; import { Kind } from '../../language/kinds'; diff --git a/src/language/__tests__/lexer-test.js b/src/language/__tests__/lexer-test.js index bbfea7e30fa..14fa0bba4b3 100644 --- a/src/language/__tests__/lexer-test.js +++ b/src/language/__tests__/lexer-test.js @@ -5,7 +5,8 @@ import { inspect as nodeInspect } from 'util'; import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; + import inspect from '../../jsutils/inspect'; import { GraphQLError } from '../../error/GraphQLError'; diff --git a/src/language/__tests__/parser-test.js b/src/language/__tests__/parser-test.js index c3ff3a57de3..cf199e479cd 100644 --- a/src/language/__tests__/parser-test.js +++ b/src/language/__tests__/parser-test.js @@ -5,7 +5,8 @@ import { inspect as nodeInspect } from 'util'; import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; + import inspect from '../../jsutils/inspect'; import { Kind } from '../kinds'; diff --git a/src/language/__tests__/printLocation-test.js b/src/language/__tests__/printLocation-test.js index 32789a85a18..146c9e45415 100644 --- a/src/language/__tests__/printLocation-test.js +++ b/src/language/__tests__/printLocation-test.js @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; import { Source } from '../source'; import { printSourceLocation } from '../printLocation'; diff --git a/src/language/__tests__/printer-test.js b/src/language/__tests__/printer-test.js index d6cf65adc8b..d64a5bfa3af 100644 --- a/src/language/__tests__/printer-test.js +++ b/src/language/__tests__/printer-test.js @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; import { parse } from '../parser'; import { print } from '../printer'; diff --git a/src/language/__tests__/schema-parser-test.js b/src/language/__tests__/schema-parser-test.js index a9577d12daf..9eb68ac2c47 100644 --- a/src/language/__tests__/schema-parser-test.js +++ b/src/language/__tests__/schema-parser-test.js @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; import { kitchenSinkSDL } from '../../__fixtures__/index'; diff --git a/src/language/__tests__/schema-printer-test.js b/src/language/__tests__/schema-printer-test.js index c1cbbf9ea59..79695a5d770 100644 --- a/src/language/__tests__/schema-printer-test.js +++ b/src/language/__tests__/schema-printer-test.js @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; import { parse } from '../parser'; import { print } from '../printer'; diff --git a/src/type/__tests__/schema-test.js b/src/type/__tests__/schema-test.js index f5f558799b1..eee7f12029b 100644 --- a/src/type/__tests__/schema-test.js +++ b/src/type/__tests__/schema-test.js @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; import { printSchema } from '../../utilities/printSchema'; diff --git a/src/type/__tests__/validation-test.js b/src/type/__tests__/validation-test.js index b17245812f2..599ed20285b 100644 --- a/src/type/__tests__/validation-test.js +++ b/src/type/__tests__/validation-test.js @@ -3,7 +3,8 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; + import inspect from '../../jsutils/inspect'; import { parse } from '../../language/parser'; diff --git a/src/utilities/__tests__/buildASTSchema-test.js b/src/utilities/__tests__/buildASTSchema-test.js index 753ff73ead9..25a353a8691 100644 --- a/src/utilities/__tests__/buildASTSchema-test.js +++ b/src/utilities/__tests__/buildASTSchema-test.js @@ -3,7 +3,8 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; + import invariant from '../../jsutils/invariant'; import { Kind } from '../../language/kinds'; diff --git a/src/utilities/__tests__/buildClientSchema-test.js b/src/utilities/__tests__/buildClientSchema-test.js index 85a7b1ca66f..04fdb0ef7e7 100644 --- a/src/utilities/__tests__/buildClientSchema-test.js +++ b/src/utilities/__tests__/buildClientSchema-test.js @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; import { graphqlSync } from '../../graphql'; diff --git a/src/utilities/__tests__/concatAST-test.js b/src/utilities/__tests__/concatAST-test.js index c568c491196..fc493ec9050 100644 --- a/src/utilities/__tests__/concatAST-test.js +++ b/src/utilities/__tests__/concatAST-test.js @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; import { parse } from '../../language/parser'; import { print } from '../../language/printer'; diff --git a/src/utilities/__tests__/extendSchema-test.js b/src/utilities/__tests__/extendSchema-test.js index 711f9358f45..3c2ecb9798f 100644 --- a/src/utilities/__tests__/extendSchema-test.js +++ b/src/utilities/__tests__/extendSchema-test.js @@ -3,7 +3,8 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; + import invariant from '../../jsutils/invariant'; import { Kind } from '../../language/kinds'; diff --git a/src/utilities/__tests__/introspectionFromSchema-test.js b/src/utilities/__tests__/introspectionFromSchema-test.js index 11d885e590c..2e527a0becf 100644 --- a/src/utilities/__tests__/introspectionFromSchema-test.js +++ b/src/utilities/__tests__/introspectionFromSchema-test.js @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; import { GraphQLSchema } from '../../type/schema'; import { GraphQLString } from '../../type/scalars'; diff --git a/src/utilities/__tests__/lexicographicSortSchema-test.js b/src/utilities/__tests__/lexicographicSortSchema-test.js index 0cd2e348ffb..ebdf149cbd1 100644 --- a/src/utilities/__tests__/lexicographicSortSchema-test.js +++ b/src/utilities/__tests__/lexicographicSortSchema-test.js @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; import { printSchema } from '../printSchema'; import { buildSchema } from '../buildASTSchema'; diff --git a/src/utilities/__tests__/printSchema-test.js b/src/utilities/__tests__/printSchema-test.js index e075183840a..6b5bbd7414d 100644 --- a/src/utilities/__tests__/printSchema-test.js +++ b/src/utilities/__tests__/printSchema-test.js @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; import { DirectiveLocation } from '../../language/directiveLocation'; diff --git a/src/utilities/__tests__/separateOperations-test.js b/src/utilities/__tests__/separateOperations-test.js index cbdfd02fa7f..a2d4a657587 100644 --- a/src/utilities/__tests__/separateOperations-test.js +++ b/src/utilities/__tests__/separateOperations-test.js @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; import { parse } from '../../language/parser'; import { print } from '../../language/printer'; diff --git a/src/utilities/__tests__/stripIgnoredCharacters-test.js b/src/utilities/__tests__/stripIgnoredCharacters-test.js index c0c6fe67dc8..51e4c32a51b 100644 --- a/src/utilities/__tests__/stripIgnoredCharacters-test.js +++ b/src/utilities/__tests__/stripIgnoredCharacters-test.js @@ -3,7 +3,8 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../jsutils/dedent'; +import dedent from '../../__testUtils__/dedent'; + import invariant from '../../jsutils/invariant'; import { parse } from '../../language/parser'; From 437cc1b9ebbc7390f1916574f588d77984b87d6a Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Fri, 22 May 2020 00:50:25 +0300 Subject: [PATCH 43/63] ESLint: Forbid usage of test utils inside production code (#2573) --- .eslintrc.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 1bc9b09dfe2..dc2d8d6295b 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -138,7 +138,12 @@ rules: import/named: error import/default: error import/namespace: error - import/no-restricted-paths: off + import/no-restricted-paths: + - error + - basePath: './' + zones: + - { target: './src', from: 'src/__testUtils__' } + - { target: './src', from: 'src/__fixtures__' } import/no-absolute-path: error import/no-dynamic-require: error import/no-internal-modules: off @@ -626,7 +631,8 @@ overrides: rules: node/no-unpublished-import: off node/no-unpublished-require: off - import/no-extraneous-dependencies: off + import/no-restricted-paths: off + import/no-extraneous-dependencies: [error, { devDependencies: true }] import/no-nodejs-modules: off no-restricted-syntax: off - files: 'resources/**' @@ -639,7 +645,7 @@ overrides: node/no-sync: off node/global-require: off import/no-dynamic-require: off - import/no-extraneous-dependencies: off + import/no-extraneous-dependencies: [error, { devDependencies: true }] import/no-nodejs-modules: off import/no-commonjs: off no-await-in-loop: off From 541a44936a91e0fdeb7e8283db85662e0dd77fe7 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Fri, 22 May 2020 13:26:52 +0300 Subject: [PATCH 44/63] blockString-test: add fuzzing test for 'printBlockString' (#2574) --- .babelrc.json | 6 +- .../__tests__/genFuzzStrings-test.js | 82 +++++++++++++++++++ .../__tests__/inspectStr-test.js | 21 +++++ src/__testUtils__/genFuzzStrings.js | 31 +++++++ src/__testUtils__/inspectStr.js | 14 ++++ src/language/__tests__/blockString-test.js | 61 ++++++++++++++ .../__tests__/stripIgnoredCharacters-test.js | 66 ++++++--------- 7 files changed, 239 insertions(+), 42 deletions(-) create mode 100644 src/__testUtils__/__tests__/genFuzzStrings-test.js create mode 100644 src/__testUtils__/__tests__/inspectStr-test.js create mode 100644 src/__testUtils__/genFuzzStrings.js create mode 100644 src/__testUtils__/inspectStr.js diff --git a/.babelrc.json b/.babelrc.json index d98d03a0ae1..fafcc33869f 100644 --- a/.babelrc.json +++ b/.babelrc.json @@ -6,7 +6,11 @@ ], "overrides": [ { - "exclude": ["**/__tests__/**/*", "**/__fixtures__/**/*"], + "exclude": [ + "src/__testUtils__/**/*", + "**/__tests__/**/*", + "**/__fixtures__/**/*" + ], "presets": ["@babel/preset-env"], "plugins": [ ["@babel/plugin-transform-classes", { "loose": true }], diff --git a/src/__testUtils__/__tests__/genFuzzStrings-test.js b/src/__testUtils__/__tests__/genFuzzStrings-test.js new file mode 100644 index 00000000000..0e9ec2b1892 --- /dev/null +++ b/src/__testUtils__/__tests__/genFuzzStrings-test.js @@ -0,0 +1,82 @@ +// @flow strict + +import { expect } from 'chai'; +import { describe, it } from 'mocha'; + +import genFuzzStrings from '../genFuzzStrings'; + +function expectFuzzStrings(options) { + return expect(Array.from(genFuzzStrings(options))); +} + +describe('genFuzzStrings', () => { + it('always provide empty string', () => { + expectFuzzStrings({ allowedChars: [], maxLength: 0 }).to.deep.equal(['']); + expectFuzzStrings({ allowedChars: [], maxLength: 1 }).to.deep.equal(['']); + expectFuzzStrings({ allowedChars: ['a'], maxLength: 0 }).to.deep.equal([ + '', + ]); + }); + + it('generate strings with single character', () => { + expectFuzzStrings({ allowedChars: ['a'], maxLength: 1 }).to.deep.equal([ + '', + 'a', + ]); + + expectFuzzStrings({ + allowedChars: ['a', 'b', 'c'], + maxLength: 1, + }).to.deep.equal(['', 'a', 'b', 'c']); + }); + + it('generate strings with multiple character', () => { + expectFuzzStrings({ allowedChars: ['a'], maxLength: 2 }).to.deep.equal([ + '', + 'a', + 'aa', + ]); + + expectFuzzStrings({ + allowedChars: ['a', 'b', 'c'], + maxLength: 2, + }).to.deep.equal([ + '', + 'a', + 'b', + 'c', + 'aa', + 'ab', + 'ac', + 'ba', + 'bb', + 'bc', + 'ca', + 'cb', + 'cc', + ]); + }); + + it('generate strings longer than possible number of characters', () => { + expectFuzzStrings({ + allowedChars: ['a', 'b'], + maxLength: 3, + }).to.deep.equal([ + '', + 'a', + 'b', + 'aa', + 'ab', + 'ba', + 'bb', + 'aaa', + 'aab', + 'aba', + 'abb', + 'baa', + 'bab', + 'bba', + 'bbb', + ]); + }); +}); diff --git a/src/__testUtils__/__tests__/inspectStr-test.js b/src/__testUtils__/__tests__/inspectStr-test.js new file mode 100644 index 00000000000..ba7e9f36880 --- /dev/null +++ b/src/__testUtils__/__tests__/inspectStr-test.js @@ -0,0 +1,21 @@ +// @flow strict + +import { expect } from 'chai'; +import { describe, it } from 'mocha'; + +import inspectStr from '../inspectStr'; + +describe('inspectStr', () => { + it('handles null and undefined values', () => { + expect(inspectStr(null)).to.equal('null'); + expect(inspectStr(undefined)).to.equal('null'); + }); + + it('correctly print various strings', () => { + expect(inspectStr('')).to.equal('``'); + expect(inspectStr('a')).to.equal('`a`'); + expect(inspectStr('"')).to.equal('`"`'); + expect(inspectStr("'")).to.equal("`'`"); + expect(inspectStr('\\"')).to.equal('`\\"`'); + }); +}); diff --git a/src/__testUtils__/genFuzzStrings.js b/src/__testUtils__/genFuzzStrings.js new file mode 100644 index 00000000000..b8258a75fe2 --- /dev/null +++ b/src/__testUtils__/genFuzzStrings.js @@ -0,0 +1,31 @@ +// @flow strict + +/** + * Generator that produces all possible combinations of allowed characters. + */ +export default function* genFuzzStrings(options: {| + allowedChars: Array, + maxLength: number, +|}): Generator { + const { allowedChars, maxLength } = options; + const numAllowedChars = allowedChars.length; + + let numCombinations = 0; + for (let length = 1; length <= maxLength; ++length) { + numCombinations += numAllowedChars ** length; + } + + yield ''; // special case for empty string + for (let combination = 0; combination < numCombinations; ++combination) { + let permutation = ''; + + let leftOver = combination; + while (leftOver >= 0) { + const reminder = leftOver % numAllowedChars; + permutation = allowedChars[reminder] + permutation; + leftOver = (leftOver - reminder) / numAllowedChars - 1; + } + + yield permutation; + } +} diff --git a/src/__testUtils__/inspectStr.js b/src/__testUtils__/inspectStr.js new file mode 100644 index 00000000000..1c2061888f8 --- /dev/null +++ b/src/__testUtils__/inspectStr.js @@ -0,0 +1,14 @@ +// @flow strict + +/** + * Special inspect function to produce readable string literal for error messages in tests + */ +export default function inspectStr(str: ?string): string { + if (str == null) { + return 'null'; + } + return JSON.stringify(str) + .replace(/^"|"$/g, '`') + .replace(/\\"/g, '"') + .replace(/\\\\/g, '\\'); +} diff --git a/src/language/__tests__/blockString-test.js b/src/language/__tests__/blockString-test.js index efd7abbd457..f4968cdafc0 100644 --- a/src/language/__tests__/blockString-test.js +++ b/src/language/__tests__/blockString-test.js @@ -3,6 +3,14 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; +import dedent from '../../__testUtils__/dedent'; +import inspectStr from '../../__testUtils__/inspectStr'; +import genFuzzStrings from '../../__testUtils__/genFuzzStrings'; + +import invariant from '../../jsutils/invariant'; + +import { Lexer } from '../lexer'; +import { Source } from '../source'; import { dedentBlockStringValue, getBlockStringIndentation, @@ -181,4 +189,57 @@ describe('printBlockString', () => { ), ); }); + + it('correctly print random strings', () => { + // Testing with length >5 is taking exponentially more time. However it is + // highly recommended to test with increased limit if you make any change. + for (const fuzzStr of genFuzzStrings({ + allowedChars: ['\n', '\t', ' ', '"', 'a', '\\'], + maxLength: 5, + })) { + const testStr = '"""' + fuzzStr + '"""'; + + let testValue; + try { + testValue = lexValue(testStr); + } catch (e) { + continue; // skip invalid values + } + invariant(typeof testValue === 'string'); + + const printedValue = lexValue(printBlockString(testValue)); + + invariant( + testValue === printedValue, + dedent` + Expected lexValue(printBlockString(${inspectStr(testValue)})) + to equal ${inspectStr(testValue)} + but got ${inspectStr(printedValue)} + `, + ); + + const printedMultilineString = lexValue( + printBlockString(testValue, ' ', true), + ); + + invariant( + testValue === printedMultilineString, + dedent` + Expected lexValue(printBlockString(${inspectStr( + testValue, + )}, ' ', true)) + to equal ${inspectStr(testValue)} + but got ${inspectStr(printedMultilineString)} + `, + ); + } + + function lexValue(str) { + const lexer = new Lexer(new Source(str)); + const value = lexer.advance().value; + + invariant(lexer.advance().kind === '', 'Expected EOF'); + return value; + } + }); }); diff --git a/src/utilities/__tests__/stripIgnoredCharacters-test.js b/src/utilities/__tests__/stripIgnoredCharacters-test.js index 51e4c32a51b..cd4e675dc99 100644 --- a/src/utilities/__tests__/stripIgnoredCharacters-test.js +++ b/src/utilities/__tests__/stripIgnoredCharacters-test.js @@ -4,6 +4,8 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; import dedent from '../../__testUtils__/dedent'; +import inspectStr from '../../__testUtils__/inspectStr'; +import genFuzzStrings from '../../__testUtils__/genFuzzStrings'; import invariant from '../../jsutils/invariant'; @@ -67,13 +69,6 @@ function lexValue(str) { return value; } -// istanbul ignore next (called only to make error messages for failing tests) -function inspectStr(str) { - return (JSON.stringify(str) ?? '') - .replace(/^"|"$/g, '`') - .replace(/\\"/g, '"'); -} - function expectStripped(docString) { return { toEqual(expected) { @@ -441,45 +436,34 @@ describe('stripIgnoredCharacters', () => { expectStrippedString('"""\na\n b"""').toStayTheSame(); expectStrippedString('"""\n a\n b"""').toEqual('"""a\nb"""'); expectStrippedString('"""\na\n b\nc"""').toEqual('"""a\n b\nc"""'); + }); + it('strips ignored characters inside random block strings', () => { // Testing with length >5 is taking exponentially more time. However it is // highly recommended to test with increased limit if you make any change. - const maxCombinationLength = 5; - const possibleChars = ['\n', ' ', '"', 'a', '\\']; - const numPossibleChars = possibleChars.length; - let numCombinations = 1; - for (let length = 1; length < maxCombinationLength; ++length) { - numCombinations *= numPossibleChars; - for (let combination = 0; combination < numCombinations; ++combination) { - let testStr = '"""'; - - let leftOver = combination; - for (let i = 0; i < length; ++i) { - const reminder = leftOver % numPossibleChars; - testStr += possibleChars[reminder]; - leftOver = (leftOver - reminder) / numPossibleChars; - } - - testStr += '"""'; - - let testValue; - try { - testValue = lexValue(testStr); - } catch (e) { - continue; // skip invalid values - } + for (const fuzzStr of genFuzzStrings({ + allowedChars: ['\n', '\t', ' ', '"', 'a', '\\'], + maxLength: 5, + })) { + const testStr = '"""' + fuzzStr + '"""'; + + let testValue; + try { + testValue = lexValue(testStr); + } catch (e) { + continue; // skip invalid values + } - const strippedValue = lexValue(stripIgnoredCharacters(testStr)); + const strippedValue = lexValue(stripIgnoredCharacters(testStr)); - invariant( - testValue === strippedValue, - dedent` - Expected lexValue(stripIgnoredCharacters(${inspectStr(testStr)})) - to equal ${inspectStr(testValue)} - but got ${inspectStr(strippedValue)} - `, - ); - } + invariant( + testValue === strippedValue, + dedent` + Expected lexValue(stripIgnoredCharacters(${inspectStr(testStr)})) + to equal ${inspectStr(testValue)} + but got ${inspectStr(strippedValue)} + `, + ); } }); From 8a0346fbb5ad9bd2b21d6192c15ba36caf1eed43 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Fri, 22 May 2020 15:55:41 +0300 Subject: [PATCH 45/63] Move fuzzing tests into separate files (#2575) --- .github/workflows/ci.yml | 28 +++++++- .nycrc.yml | 1 + package.json | 1 + src/language/__tests__/blockString-fuzz.js | 68 +++++++++++++++++++ src/language/__tests__/blockString-test.js | 61 ----------------- .../__tests__/stripIgnoredCharacters-fuzz.js | 53 +++++++++++++++ .../__tests__/stripIgnoredCharacters-test.js | 30 -------- 7 files changed, 150 insertions(+), 92 deletions(-) create mode 100644 src/language/__tests__/blockString-fuzz.js create mode 100644 src/utilities/__tests__/stripIgnoredCharacters-fuzz.js diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f40d9880d8..436d5852541 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,6 +48,32 @@ jobs: - name: Build package run: npm run build + fuzz: + name: Run fuzzing tests on Node v${{ matrix.node_version }} + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Setup Node.js v${{ matrix.node_version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node_version }} + + - name: Cache Node.js modules + uses: actions/cache@v1 + with: + path: ~/.npm + key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.OS }}-node- + + - name: Install Dependencies + run: npm ci + + - name: Run Tests + run: npm run fuzzonly + coverage: name: Measure test coverage runs-on: ubuntu-latest @@ -114,7 +140,7 @@ jobs: github.event_name == 'push' && github.repository == 'graphql/graphql-js' && github.ref == 'refs/heads/master' - needs: [test, lint] + needs: [test, fuzz, lint] steps: - name: Checkout repo uses: actions/checkout@v2 diff --git a/.nycrc.yml b/.nycrc.yml index b0574562715..ad74db4ae24 100644 --- a/.nycrc.yml +++ b/.nycrc.yml @@ -3,6 +3,7 @@ include: - 'src/' exclude: - 'src/polyfills' + - '**/*-fuzz.js' - '**/*-benchmark.js' - '**/*.d.ts' - 'src/validation/rules/ExecutableDefinitions.js' diff --git a/package.json b/package.json index bdf39204e30..7c4da5ead3d 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "scripts": { "test": "npm run prettier:check && npm run lint && npm run check && npm run testonly && npm run check:ts && npm run check:spelling", "test:ci": "npm run prettier:check && npm run lint -- --no-cache && npm run check && npm run testonly:cover && npm run check:ts && npm run check:spelling && npm run build", + "fuzzonly": "mocha --full-trace src/**/__tests__/**/*-fuzz.js", "testonly": "mocha --full-trace src/**/__tests__/**/*-test.js", "testonly:cover": "nyc npm run testonly", "lint": "eslint --cache --ext .js,.ts src resources", diff --git a/src/language/__tests__/blockString-fuzz.js b/src/language/__tests__/blockString-fuzz.js new file mode 100644 index 00000000000..7f11302e6d1 --- /dev/null +++ b/src/language/__tests__/blockString-fuzz.js @@ -0,0 +1,68 @@ +// @flow strict + +import { describe, it } from 'mocha'; + +import dedent from '../../__testUtils__/dedent'; +import inspectStr from '../../__testUtils__/inspectStr'; +import genFuzzStrings from '../../__testUtils__/genFuzzStrings'; + +import invariant from '../../jsutils/invariant'; + +import { Lexer } from '../lexer'; +import { Source } from '../source'; +import { printBlockString } from '../blockString'; + +function lexValue(str) { + const lexer = new Lexer(new Source(str)); + const value = lexer.advance().value; + + invariant(lexer.advance().kind === '', 'Expected EOF'); + return value; +} + +describe('printBlockString', () => { + it('correctly print random strings', () => { + // Testing with length >7 is taking exponentially more time. However it is + // highly recommended to test with increased limit if you make any change. + for (const fuzzStr of genFuzzStrings({ + allowedChars: ['\n', '\t', ' ', '"', 'a', '\\'], + maxLength: 7, + })) { + const testStr = '"""' + fuzzStr + '"""'; + + let testValue; + try { + testValue = lexValue(testStr); + } catch (e) { + continue; // skip invalid values + } + invariant(typeof testValue === 'string'); + + const printedValue = lexValue(printBlockString(testValue)); + + invariant( + testValue === printedValue, + dedent` + Expected lexValue(printBlockString(${inspectStr(testValue)})) + to equal ${inspectStr(testValue)} + but got ${inspectStr(printedValue)} + `, + ); + + const printedMultilineString = lexValue( + printBlockString(testValue, ' ', true), + ); + + invariant( + testValue === printedMultilineString, + dedent` + Expected lexValue(printBlockString(${inspectStr( + testValue, + )}, ' ', true)) + to equal ${inspectStr(testValue)} + but got ${inspectStr(printedMultilineString)} + `, + ); + } + }).timeout(20000); +}); diff --git a/src/language/__tests__/blockString-test.js b/src/language/__tests__/blockString-test.js index f4968cdafc0..efd7abbd457 100644 --- a/src/language/__tests__/blockString-test.js +++ b/src/language/__tests__/blockString-test.js @@ -3,14 +3,6 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import dedent from '../../__testUtils__/dedent'; -import inspectStr from '../../__testUtils__/inspectStr'; -import genFuzzStrings from '../../__testUtils__/genFuzzStrings'; - -import invariant from '../../jsutils/invariant'; - -import { Lexer } from '../lexer'; -import { Source } from '../source'; import { dedentBlockStringValue, getBlockStringIndentation, @@ -189,57 +181,4 @@ describe('printBlockString', () => { ), ); }); - - it('correctly print random strings', () => { - // Testing with length >5 is taking exponentially more time. However it is - // highly recommended to test with increased limit if you make any change. - for (const fuzzStr of genFuzzStrings({ - allowedChars: ['\n', '\t', ' ', '"', 'a', '\\'], - maxLength: 5, - })) { - const testStr = '"""' + fuzzStr + '"""'; - - let testValue; - try { - testValue = lexValue(testStr); - } catch (e) { - continue; // skip invalid values - } - invariant(typeof testValue === 'string'); - - const printedValue = lexValue(printBlockString(testValue)); - - invariant( - testValue === printedValue, - dedent` - Expected lexValue(printBlockString(${inspectStr(testValue)})) - to equal ${inspectStr(testValue)} - but got ${inspectStr(printedValue)} - `, - ); - - const printedMultilineString = lexValue( - printBlockString(testValue, ' ', true), - ); - - invariant( - testValue === printedMultilineString, - dedent` - Expected lexValue(printBlockString(${inspectStr( - testValue, - )}, ' ', true)) - to equal ${inspectStr(testValue)} - but got ${inspectStr(printedMultilineString)} - `, - ); - } - - function lexValue(str) { - const lexer = new Lexer(new Source(str)); - const value = lexer.advance().value; - - invariant(lexer.advance().kind === '', 'Expected EOF'); - return value; - } - }); }); diff --git a/src/utilities/__tests__/stripIgnoredCharacters-fuzz.js b/src/utilities/__tests__/stripIgnoredCharacters-fuzz.js new file mode 100644 index 00000000000..c853e1e7689 --- /dev/null +++ b/src/utilities/__tests__/stripIgnoredCharacters-fuzz.js @@ -0,0 +1,53 @@ +// @flow strict + +import { describe, it } from 'mocha'; + +import dedent from '../../__testUtils__/dedent'; +import inspectStr from '../../__testUtils__/inspectStr'; +import genFuzzStrings from '../../__testUtils__/genFuzzStrings'; + +import invariant from '../../jsutils/invariant'; + +import { Lexer } from '../../language/lexer'; +import { Source } from '../../language/source'; + +import { stripIgnoredCharacters } from '../stripIgnoredCharacters'; + +function lexValue(str) { + const lexer = new Lexer(new Source(str)); + const value = lexer.advance().value; + + invariant(lexer.advance().kind === '', 'Expected EOF'); + return value; +} + +describe('stripIgnoredCharacters', () => { + it('strips ignored characters inside random block strings', () => { + // Testing with length >7 is taking exponentially more time. However it is + // highly recommended to test with increased limit if you make any change. + for (const fuzzStr of genFuzzStrings({ + allowedChars: ['\n', '\t', ' ', '"', 'a', '\\'], + maxLength: 7, + })) { + const testStr = '"""' + fuzzStr + '"""'; + + let testValue; + try { + testValue = lexValue(testStr); + } catch (e) { + continue; // skip invalid values + } + + const strippedValue = lexValue(stripIgnoredCharacters(testStr)); + + invariant( + testValue === strippedValue, + dedent` + Expected lexValue(stripIgnoredCharacters(${inspectStr(testStr)})) + to equal ${inspectStr(testValue)} + but got ${inspectStr(strippedValue)} + `, + ); + } + }).timeout(20000); +}); diff --git a/src/utilities/__tests__/stripIgnoredCharacters-test.js b/src/utilities/__tests__/stripIgnoredCharacters-test.js index cd4e675dc99..8ac48694f00 100644 --- a/src/utilities/__tests__/stripIgnoredCharacters-test.js +++ b/src/utilities/__tests__/stripIgnoredCharacters-test.js @@ -5,7 +5,6 @@ import { describe, it } from 'mocha'; import dedent from '../../__testUtils__/dedent'; import inspectStr from '../../__testUtils__/inspectStr'; -import genFuzzStrings from '../../__testUtils__/genFuzzStrings'; import invariant from '../../jsutils/invariant'; @@ -438,35 +437,6 @@ describe('stripIgnoredCharacters', () => { expectStrippedString('"""\na\n b\nc"""').toEqual('"""a\n b\nc"""'); }); - it('strips ignored characters inside random block strings', () => { - // Testing with length >5 is taking exponentially more time. However it is - // highly recommended to test with increased limit if you make any change. - for (const fuzzStr of genFuzzStrings({ - allowedChars: ['\n', '\t', ' ', '"', 'a', '\\'], - maxLength: 5, - })) { - const testStr = '"""' + fuzzStr + '"""'; - - let testValue; - try { - testValue = lexValue(testStr); - } catch (e) { - continue; // skip invalid values - } - - const strippedValue = lexValue(stripIgnoredCharacters(testStr)); - - invariant( - testValue === strippedValue, - dedent` - Expected lexValue(stripIgnoredCharacters(${inspectStr(testStr)})) - to equal ${inspectStr(testValue)} - but got ${inspectStr(strippedValue)} - `, - ); - } - }); - it('strips kitchen sink query but maintains the exact same AST', () => { const strippedQuery = stripIgnoredCharacters(kitchenSinkQuery); expect(stripIgnoredCharacters(strippedQuery)).to.equal(strippedQuery); From 47ac276f21598db5690f287f2f0ea41bbdeef4ca Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Fri, 22 May 2020 21:22:43 +0300 Subject: [PATCH 46/63] ESLint: Enable 'dot-notation' rule (#2576) --- .eslintrc.yml | 5 +++-- resources/gen-changelog.js | 2 +- src/jsutils/__tests__/inspect-test.js | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index dc2d8d6295b..6c8bf922b6e 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -247,7 +247,7 @@ rules: default-case: off default-case-last: error default-param-last: error - dot-notation: off + dot-notation: error eqeqeq: [error, smart] grouped-accessor-pairs: error guard-for-in: error @@ -583,6 +583,7 @@ overrides: # Disable conflicting ESLint rules and enable TS-compatible ones default-param-last: off + dot-notation: off lines-between-class-members: off no-array-constructor: off no-dupe-class-members: off @@ -594,6 +595,7 @@ overrides: require-await: off no-return-await: off '@typescript-eslint/default-param-last': error + '@typescript-eslint/dot-notation': error '@typescript-eslint/lines-between-class-members': [error, always, { exceptAfterSingleLine: true }] '@typescript-eslint/no-array-constructor': error @@ -608,7 +610,6 @@ overrides: '@typescript-eslint/return-await': error # Disable for JS, Flow and TS - '@typescript-eslint/dot-notation': off # TODO consider '@typescript-eslint/init-declarations': off '@typescript-eslint/no-magic-numbers': off '@typescript-eslint/no-use-before-define': off diff --git a/resources/gen-changelog.js b/resources/gen-changelog.js index 19e8bfda853..34d77a6ab9b 100644 --- a/resources/gen-changelog.js +++ b/resources/gen-changelog.js @@ -37,7 +37,7 @@ const labelsConfig = { fold: true, }, }; -const GH_TOKEN = process.env['GH_TOKEN']; +const { GH_TOKEN } = process.env; if (!GH_TOKEN) { console.error('Must provide GH_TOKEN as environment variable!'); diff --git a/src/jsutils/__tests__/inspect-test.js b/src/jsutils/__tests__/inspect-test.js index 61809039151..7b35289f13d 100644 --- a/src/jsutils/__tests__/inspect-test.js +++ b/src/jsutils/__tests__/inspect-test.js @@ -81,8 +81,8 @@ describe('inspect', () => { expect(inspect({ a: { b: { c: 1 } } })).to.equal('{ a: { b: [Object] } }'); const map = Object.create(null); - map['a'] = true; - map['b'] = null; + map.a = true; + map.b = null; expect(inspect(map)).to.equal('{ a: true, b: null }'); }); From e796c947119f490e2ae45fe11c72d415bdd15afa Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sun, 24 May 2020 00:22:51 +0300 Subject: [PATCH 47/63] CI: Fix copy-paster errors in 'fuzz' flow (#2578) --- .github/workflows/ci.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 436d5852541..b79b63916e9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,16 +49,14 @@ jobs: run: npm run build fuzz: - name: Run fuzzing tests on Node v${{ matrix.node_version }} + name: Run fuzzing tests runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v2 - - name: Setup Node.js v${{ matrix.node_version }} + - name: Setup Node.js uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node_version }} - name: Cache Node.js modules uses: actions/cache@v1 From cf9ee096f62f01c181dfe980a236dfdca1149934 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sun, 24 May 2020 01:16:45 +0300 Subject: [PATCH 48/63] Update deps (#2579) --- .eslintrc.yml | 5 +- package-lock.json | 131 +++++++++++++++++++++++++++------------------- package.json | 12 ++--- 3 files changed, 85 insertions(+), 63 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 6c8bf922b6e..22d1ddef543 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -190,7 +190,7 @@ rules: import/dynamic-import-chunkname: off ############################################################################## - # ESLint builtin rules list based on `v7.0.x` + # ESLint builtin rules list based on `v7.1.x` ############################################################################## # Possible Errors @@ -219,6 +219,7 @@ rules: no-inner-declarations: [error, both] no-invalid-regexp: error no-irregular-whitespace: error + no-loss-of-precision: error no-misleading-character-class: error no-obj-calls: error no-prototype-builtins: error @@ -500,7 +501,7 @@ overrides: flowtype/no-types-missing-file-annotation: off ########################################################################## - # `@typescript-eslint/eslint-plugin` rule list based on `v2.34.x` + # `@typescript-eslint/eslint-plugin` rule list based on `v3.0.x` ########################################################################## # Supported Rules diff --git a/package-lock.json b/package-lock.json index 825c186559e..0d410f40b4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -971,6 +971,19 @@ "npm-registry-client": "^8.6.0", "tar": "^2.2.2", "tar-stream": "1.6.2" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } } }, "@istanbuljs/load-nyc-config": { @@ -1067,9 +1080,9 @@ "dev": true }, "@types/node": { - "version": "12.12.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.39.tgz", - "integrity": "sha512-pADGfwnDkr6zagDwEiCVE4yQrv7XDkoeVa4OfA9Ju/zRTk6YNDLGtQbkdL4/56mCQQCs4AhNrBIag6jrp7ZuOg==", + "version": "12.12.42", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.42.tgz", + "integrity": "sha512-R/9QdYFLL9dE9l5cWWzWIZByVGFd7lk7JVOJ7KD+E1SJ4gni7XJRLz9QTjyYQiHIqEAgku9VgxdLjMlhhUaAFg==", "dev": true }, "@types/parsimmon": { @@ -1079,45 +1092,54 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", - "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.0.0.tgz", + "integrity": "sha512-lcZ0M6jD4cqGccYOERKdMtg+VWpoq3NSnWVxpc/AwAy0zhkUYVioOUZmfNqiNH8/eBNGhCn6HXd6mKIGRgNc1Q==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "2.34.0", + "@typescript-eslint/experimental-utils": "3.0.0", "functional-red-black-tree": "^1.0.1", "regexpp": "^3.0.0", + "semver": "^7.3.2", "tsutils": "^3.17.1" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } } }, "@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.0.0.tgz", + "integrity": "sha512-BN0vmr9N79M9s2ctITtChRuP1+Dls0x/wlg0RXW1yQ7WJKPurg6X3Xirv61J2sjPif4F8SLsFMs5Nzte0WYoTQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", + "@typescript-eslint/typescript-estree": "3.0.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", - "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.0.0.tgz", + "integrity": "sha512-8RRCA9KLxoFNO0mQlrLZA0reGPd/MsobxZS/yPFj+0/XgMdS8+mO8mF3BDj2ZYQj03rkayhSJtF1HAohQ3iylw==", "dev": true, "requires": { "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.34.0", - "@typescript-eslint/typescript-estree": "2.34.0", + "@typescript-eslint/experimental-utils": "3.0.0", + "@typescript-eslint/typescript-estree": "3.0.0", "eslint-visitor-keys": "^1.1.0" } }, "@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.0.0.tgz", + "integrity": "sha512-nevQvHyNghsfLrrByzVIH4ZG3NROgJ8LZlfh3ddwPPH4CH7W4GAiSx5qu+xHuX5pWsq6q/eqMc1io840ZhAnUg==", "dev": true, "requires": { "debug": "^4.1.1", @@ -2373,16 +2395,17 @@ } }, "dts-critic": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.2.1.tgz", - "integrity": "sha512-jNCWcrOduMsEUDXTZd+qWN7Nig52OgPVPL2IRJ7QQTx0MdYASEwqkoBdPrcEY/ClkKZ+rSjZi/xjBiNmRObuRg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.2.3.tgz", + "integrity": "sha512-CErYGgQiloLH0PZ/vrLH5+WgpPbHiOj77qFF+6pGuGtlQzb43oFUSS9Qetr4y9fAg2ZOG9ZvGp7h+jhh0kkbAg==", "dev": true, "requires": { "@definitelytyped/header-parser": "0.0.34", "command-exists": "^1.2.8", "rimraf": "^3.0.2", "semver": "^6.2.0", - "typescript": "^3.7.5", + "tmp": "^0.2.1", + "typescript": "^3.9.2", "yargs": "^12.0.5" }, "dependencies": { @@ -2475,6 +2498,15 @@ "ansi-regex": "^3.0.0" } }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, "yargs": { "version": "12.0.5", "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", @@ -2498,38 +2530,27 @@ } }, "dtslint": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.2.tgz", - "integrity": "sha512-U+1EcZpnzBsPqIqTVNEk12/K5oHnbUppvws4rLYoy9rmUjSkDVJqaMqEWJXTXPuqWy1Rp/Ky2rI53XRcMFJaeQ==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.4.tgz", + "integrity": "sha512-D9qwC0N945ge+CENZ1Dtm6I72fc8dAgQpyAde1XoiChR+mk8dC9uzToJNORe7SI0P3dSSULofwjsg7rzQ/iplw==", "dev": true, "requires": { "@definitelytyped/header-parser": "0.0.34", "@definitelytyped/typescript-versions": "0.0.34", "@definitelytyped/utils": "0.0.34", - "dts-critic": "^3.2.1", + "dts-critic": "^3.2.3", "fs-extra": "^6.0.1", "json-stable-stringify": "^1.0.1", "strip-json-comments": "^2.0.1", "tslint": "5.14.0", - "typescript": "^4.0.0-dev.20200516", + "typescript": "^4.0.0-dev.20200522", "yargs": "^15.1.0" }, "dependencies": { - "fs-extra": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", - "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "typescript": { - "version": "4.0.0-dev.20200516", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.0-dev.20200516.tgz", - "integrity": "sha512-IAtM0E+nnb64K+KwtQrvBDPTTOlRSdYJjyx1NOfNBUk7G34Bln26NQ/0jdCfvTOpxa/S6mQ9oDnHiC1PJ+UpkA==", + "version": "4.0.0-dev.20200522", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.0-dev.20200522.tgz", + "integrity": "sha512-wCvtYKDPX3F0SxaFe9OLEBguK2/w4Jis7tvPKQLifSmrMjp7BA57z8qlYFd1OQxOUWmizYqiyYWDSlMtWeED6Q==", "dev": true } } @@ -2617,9 +2638,9 @@ "dev": true }, "eslint": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.0.0.tgz", - "integrity": "sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.1.0.tgz", + "integrity": "sha512-DfS3b8iHMK5z/YLSme8K5cge168I8j8o1uiVmFCgnnjxZQbCGyraF8bMl7Ju4yfBmCuxD7shOF7eqGkcuIHfsA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -3266,12 +3287,12 @@ "dev": true }, "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", + "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", + "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } @@ -4307,9 +4328,9 @@ } }, "mocha": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.2.tgz", - "integrity": "sha512-o96kdRKMKI3E8U0bjnfqW4QMk12MwZ4mhdBTf+B5a1q9+aq2HRnj+3ZdJu0B/ZhJeK78MgYuv6L8d/rA5AeBJA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", "dev": true, "requires": { "ansi-colors": "3.2.3", @@ -5984,9 +6005,9 @@ } }, "typescript": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.2.tgz", - "integrity": "sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw==", + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz", + "integrity": "sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==", "dev": true }, "unicode-canonical-property-names-ecmascript": { diff --git a/package.json b/package.json index 7c4da5ead3d..6767be0e649 100644 --- a/package.json +++ b/package.json @@ -50,22 +50,22 @@ "@babel/plugin-transform-flow-strip-types": "7.9.0", "@babel/preset-env": "7.9.6", "@babel/register": "7.9.0", - "@typescript-eslint/eslint-plugin": "2.34.0", - "@typescript-eslint/parser": "2.34.0", + "@typescript-eslint/eslint-plugin": "3.0.0", + "@typescript-eslint/parser": "3.0.0", "babel-eslint": "10.1.0", "chai": "4.2.0", "cspell": "4.0.63", - "dtslint": "3.6.2", - "eslint": "7.0.0", + "dtslint": "3.6.4", + "eslint": "7.1.0", "eslint-plugin-flowtype": "5.1.0", "eslint-plugin-graphql-internal": "file:./resources/eslint-rules", "eslint-plugin-import": "2.20.2", "eslint-plugin-istanbul": "0.1.1", "eslint-plugin-node": "11.1.0", "flow-bin": "0.125.1", - "mocha": "7.1.2", + "mocha": "7.2.0", "nyc": "15.0.1", "prettier": "2.0.5", - "typescript": "3.9.2" + "typescript": "3.9.3" } } From 10bd0d08dd1c30825ed741b748cd2d9e98477570 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sun, 24 May 2020 02:24:31 +0300 Subject: [PATCH 49/63] resources: correctly report errors in top level premisses (#2580) --- resources/benchmark.js | 5 ++++- resources/gen-changelog.js | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/resources/benchmark.js b/resources/benchmark.js index 6fd283f7b7b..ae1e7f19706 100644 --- a/resources/benchmark.js +++ b/resources/benchmark.js @@ -309,5 +309,8 @@ function bold(str) { // Get the revisions and make things happen! if (require.main === module) { const { benchmarkPatterns, revisions } = getArguments(process.argv.slice(2)); - prepareAndRunBenchmarks(benchmarkPatterns, revisions); + prepareAndRunBenchmarks(benchmarkPatterns, revisions).catch((error) => { + console.error(error); + process.exit(1); + }); } diff --git a/resources/gen-changelog.js b/resources/gen-changelog.js index 34d77a6ab9b..6879fa59198 100644 --- a/resources/gen-changelog.js +++ b/resources/gen-changelog.js @@ -60,7 +60,10 @@ const [, githubOrg, githubRepo] = repoURLMatch; getChangeLog() .then((changelog) => process.stdout.write(changelog)) - .catch((error) => console.error(error)); + .catch((error) => { + console.error(error); + process.exit(1); + }); function getChangeLog() { const { version } = packageJSON; From 0e98824d2377be4e7070d51979c75827172981a5 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sun, 24 May 2020 02:37:23 +0300 Subject: [PATCH 50/63] ci: add benchmark job (#2581) --- .github/workflows/ci.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b79b63916e9..fe49bc98631 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -131,6 +131,32 @@ jobs: - name: Run Tests run: npm run testonly + benchmark: + name: Run benchmark + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v2 + with: + fetch-depth: 2 + + - name: Setup Node.js + uses: actions/setup-node@v1 + + - name: Cache Node.js modules + uses: actions/cache@v1 + with: + path: ~/.npm + key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.OS }}-node- + + - name: Install Dependencies + run: npm ci + + - name: Run Benchmark + run: 'npm run benchmark -- --revs HEAD HEAD~1' + deploy-to-npm-branch: name: Deploy to `npm` branch runs-on: ubuntu-latest From 4e6eef4cc130fd76c58eb8a0978df23369ca7f4c Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sun, 24 May 2020 13:26:31 +0300 Subject: [PATCH 51/63] ts: enable more tslint checks (#2583) --- src/error/GraphQLError.d.ts | 2 +- src/language/visitor.d.ts | 5 +++-- src/tslint.json | 7 ------- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/error/GraphQLError.d.ts b/src/error/GraphQLError.d.ts index d8886a181ec..f27c7af2159 100644 --- a/src/error/GraphQLError.d.ts +++ b/src/error/GraphQLError.d.ts @@ -13,7 +13,7 @@ import { SourceLocation } from '../language/location'; export class GraphQLError extends Error { constructor( message: string, - nodes?: ReadonlyArray | ASTNode | undefined, + nodes?: ReadonlyArray | ASTNode, source?: Maybe, positions?: Maybe>, path?: Maybe>, diff --git a/src/language/visitor.d.ts b/src/language/visitor.d.ts index d5b46182a61..fadc23cfd79 100644 --- a/src/language/visitor.d.ts +++ b/src/language/visitor.d.ts @@ -31,7 +31,7 @@ type ShapeMapVisitor = { * during the visitor's traversal. */ export type VisitFn = ( - /** The current node being visiting.*/ + /** The current node being visiting. */ node: TVisitedNode, /** The index or key to this node from the parent node or Array. */ key: string | number | undefined, @@ -39,7 +39,8 @@ export type VisitFn = ( parent: TAnyNode | ReadonlyArray | undefined, /** The key path to get to this node from the root node. */ path: ReadonlyArray, - /** All nodes and Arrays visited before reaching parent of this node. + /** + * All nodes and Arrays visited before reaching parent of this node. * These correspond to array indices in `path`. * Note: ancestors includes arrays which contain the parent of visited node. */ diff --git a/src/tslint.json b/src/tslint.json index 8c08a13eb39..03f44b44e0c 100644 --- a/src/tslint.json +++ b/src/tslint.json @@ -4,17 +4,10 @@ // All are TODOs "array-type": false, "interface-over-type-literal": false, - "jsdoc-format": false, "no-any-union": false, - "no-consecutive-blank-lines": false, - "no-duplicate-imports": false, - "no-empty-interface": false, - "no-redundant-undefined": false, "no-unnecessary-generics": false, - "semicolon": false, "strict-export-declare-modifiers": false, "unified-signatures": false, - "use-default-type-parameter": false, "void-return": false } } From 5ceb8a6e9f57fb716abab0b18d6d364e024d7864 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sun, 24 May 2020 13:35:28 +0300 Subject: [PATCH 52/63] ts: use `typeof` instead of private types (#2584) --- src/language/directiveLocation.d.ts | 9 ++------- src/language/kinds.d.ts | 9 ++------- src/language/tokenKind.d.ts | 6 ++---- src/utilities/findBreakingChanges.d.ts | 18 ++++-------------- 4 files changed, 10 insertions(+), 32 deletions(-) diff --git a/src/language/directiveLocation.d.ts b/src/language/directiveLocation.d.ts index 31365f5901d..225e129cd8c 100644 --- a/src/language/directiveLocation.d.ts +++ b/src/language/directiveLocation.d.ts @@ -1,12 +1,7 @@ /** * The set of allowed directive location values. */ -export const DirectiveLocation: _DirectiveLocation; - -/** - * @internal - */ -type _DirectiveLocation = { +export const DirectiveLocation: { // Request Definitions QUERY: 'QUERY'; MUTATION: 'MUTATION'; @@ -34,4 +29,4 @@ type _DirectiveLocation = { /** * The enum type representing the directive location values. */ -export type DirectiveLocationEnum = _DirectiveLocation[keyof _DirectiveLocation]; +export type DirectiveLocationEnum = typeof DirectiveLocation[keyof typeof DirectiveLocation]; diff --git a/src/language/kinds.d.ts b/src/language/kinds.d.ts index e655af00d8d..35a72399237 100644 --- a/src/language/kinds.d.ts +++ b/src/language/kinds.d.ts @@ -1,12 +1,7 @@ /** * The set of allowed kind values for AST nodes. */ -export const Kind: _Kind; - -/** - * @internal - */ -type _Kind = { +export const Kind: { // Name NAME: 'Name'; @@ -76,4 +71,4 @@ type _Kind = { /** * The enum type representing the possible kind values of AST nodes. */ -export type KindEnum = _Kind[keyof _Kind]; +export type KindEnum = typeof Kind[keyof typeof Kind]; diff --git a/src/language/tokenKind.d.ts b/src/language/tokenKind.d.ts index 9919487e905..fa27e232938 100644 --- a/src/language/tokenKind.d.ts +++ b/src/language/tokenKind.d.ts @@ -2,9 +2,7 @@ * An exported enum describing the different kinds of tokens that the * lexer emits. */ -export const TokenKind: _TokenKind; - -type _TokenKind = { +export const TokenKind: { SOF: ''; EOF: ''; BANG: '!'; @@ -32,4 +30,4 @@ type _TokenKind = { /** * The enum type representing the token kinds values. */ -export type TokenKindEnum = _TokenKind[keyof _TokenKind]; +export type TokenKindEnum = typeof TokenKind[keyof typeof TokenKind]; diff --git a/src/utilities/findBreakingChanges.d.ts b/src/utilities/findBreakingChanges.d.ts index 8d9f71a702c..df35805f176 100644 --- a/src/utilities/findBreakingChanges.d.ts +++ b/src/utilities/findBreakingChanges.d.ts @@ -1,11 +1,6 @@ import { GraphQLSchema } from '../type/schema'; -export const BreakingChangeType: _BreakingChangeType; - -/** - * @internal - */ -type _BreakingChangeType = { +export const BreakingChangeType: { TYPE_REMOVED: 'TYPE_REMOVED'; TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND'; TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION'; @@ -24,12 +19,7 @@ type _BreakingChangeType = { DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED'; }; -export const DangerousChangeType: _DangerousChangeType; - -/** - * @internal - */ -type _DangerousChangeType = { +export const DangerousChangeType: { VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM'; TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION'; OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED'; @@ -39,12 +29,12 @@ type _DangerousChangeType = { }; export interface BreakingChange { - type: keyof _BreakingChangeType; + type: keyof typeof BreakingChangeType; description: string; } export interface DangerousChange { - type: keyof _DangerousChangeType; + type: keyof typeof DangerousChangeType; description: string; } From 4b7ab47c3f4ea6be99c3d9754b21fe626f7c7177 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sun, 24 May 2020 16:27:43 +0300 Subject: [PATCH 53/63] ts: switch more types to interfaces (#2585) --- src/execution/execute.d.ts | 4 ++-- src/jsutils/Path.d.ts | 4 ++-- src/language/ast.d.ts | 4 ++-- src/tslint.json | 1 - src/type/definition.d.ts | 24 +++++++++++++----------- src/type/schema.d.ts | 8 +++++--- src/validation/ValidationContext.d.ts | 4 ++-- 7 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/execution/execute.d.ts b/src/execution/execute.d.ts index 46a1bc60e57..240f3b5713f 100644 --- a/src/execution/execute.d.ts +++ b/src/execution/execute.d.ts @@ -48,7 +48,7 @@ export interface ExecutionResult { data?: { [key: string]: any } | null; } -export type ExecutionArgs = { +export interface ExecutionArgs { schema: GraphQLSchema; document: DocumentNode; rootValue?: any; @@ -57,7 +57,7 @@ export type ExecutionArgs = { operationName?: Maybe; fieldResolver?: Maybe>; typeResolver?: Maybe>; -}; +} /** * Implements the "Evaluating requests" section of the GraphQL specification. diff --git a/src/jsutils/Path.d.ts b/src/jsutils/Path.d.ts index ef8f10a5104..28bba41712b 100644 --- a/src/jsutils/Path.d.ts +++ b/src/jsutils/Path.d.ts @@ -1,7 +1,7 @@ -export type Path = { +export interface Path { prev: Path | undefined; key: string | number; -}; +} /** * Given a Path and a key, return a new Path containing the new key. diff --git a/src/language/ast.d.ts b/src/language/ast.d.ts index 889ff101b5b..61cb9f4eb53 100644 --- a/src/language/ast.d.ts +++ b/src/language/ast.d.ts @@ -535,12 +535,12 @@ export interface DirectiveDefinitionNode { export type TypeSystemExtensionNode = SchemaExtensionNode | TypeExtensionNode; -export type SchemaExtensionNode = { +export interface SchemaExtensionNode { readonly kind: 'SchemaExtension'; readonly loc?: Location; readonly directives?: ReadonlyArray; readonly operationTypes?: ReadonlyArray; -}; +} // Type Extensions diff --git a/src/tslint.json b/src/tslint.json index 03f44b44e0c..4e8447ae33c 100644 --- a/src/tslint.json +++ b/src/tslint.json @@ -3,7 +3,6 @@ "rules": { // All are TODOs "array-type": false, - "interface-over-type-literal": false, "no-any-union": false, "no-unnecessary-generics": false, "strict-export-declare-modifiers": false, diff --git a/src/type/definition.d.ts b/src/type/definition.d.ts index 1af67e3f4d4..c2293ec70a5 100644 --- a/src/type/definition.d.ts +++ b/src/type/definition.d.ts @@ -470,9 +470,9 @@ export interface GraphQLFieldConfig< astNode?: Maybe; } -export type GraphQLFieldConfigArgumentMap = { +export interface GraphQLFieldConfigArgumentMap { [key: string]: GraphQLArgumentConfig; -}; +} export interface GraphQLArgumentConfig { description?: Maybe; @@ -482,9 +482,9 @@ export interface GraphQLArgumentConfig { astNode?: Maybe; } -export type GraphQLFieldConfigMap = { +export interface GraphQLFieldConfigMap { [key: string]: GraphQLFieldConfig; -}; +} export interface GraphQLField< TSource, @@ -514,9 +514,9 @@ export interface GraphQLArgument { export function isRequiredArgument(arg: GraphQLArgument): boolean; -export type GraphQLFieldMap = { +export interface GraphQLFieldMap { [key: string]: GraphQLField; -}; +} /** * Interface Type Definition @@ -693,9 +693,9 @@ export interface GraphQLEnumTypeConfig { extensionASTNodes?: Maybe>; } -export type GraphQLEnumValueConfigMap = { +export interface GraphQLEnumValueConfigMap { [key: string]: GraphQLEnumValueConfig; -}; +} export interface GraphQLEnumValueConfig { description?: Maybe; @@ -773,9 +773,9 @@ export interface GraphQLInputFieldConfig { astNode?: Maybe; } -export type GraphQLInputFieldConfigMap = { +export interface GraphQLInputFieldConfigMap { [key: string]: GraphQLInputFieldConfig; -}; +} export interface GraphQLInputField { name: string; @@ -788,4 +788,6 @@ export interface GraphQLInputField { export function isRequiredInputField(field: GraphQLInputField): boolean; -export type GraphQLInputFieldMap = { [key: string]: GraphQLInputField }; +export interface GraphQLInputFieldMap { + [key: string]: GraphQLInputField; +} diff --git a/src/type/schema.d.ts b/src/type/schema.d.ts index 7f36dab382f..5a834f1bbf5 100644 --- a/src/type/schema.d.ts +++ b/src/type/schema.d.ts @@ -89,12 +89,14 @@ export class GraphQLSchema { }; } -type TypeMap = { [key: string]: GraphQLNamedType }; +interface TypeMap { + [key: string]: GraphQLNamedType; +} -type InterfaceImplementations = { +interface InterfaceImplementations { objects: ReadonlyArray; interfaces: ReadonlyArray; -}; +} export interface GraphQLSchemaValidationOptions { /** diff --git a/src/validation/ValidationContext.d.ts b/src/validation/ValidationContext.d.ts index 1591a468b21..b349ce6fd1d 100644 --- a/src/validation/ValidationContext.d.ts +++ b/src/validation/ValidationContext.d.ts @@ -21,11 +21,11 @@ import { import { TypeInfo } from '../utilities/TypeInfo'; type NodeWithSelectionSet = OperationDefinitionNode | FragmentDefinitionNode; -type VariableUsage = { +interface VariableUsage { readonly node: VariableNode; readonly type: Maybe; readonly defaultValue: Maybe; -}; +} /** * An instance of this class is passed as the "this" context to all validators, From 1dbf65b425f81cac152c5b75efd856920c2c2798 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Mon, 25 May 2020 23:08:02 +0300 Subject: [PATCH 54/63] ts: used named export for 'Maybe' type (#2586) --- src/error/GraphQLError.d.ts | 2 +- src/error/locatedError.d.ts | 2 +- src/execution/execute.d.ts | 3 ++- src/execution/values.d.ts | 3 ++- src/graphql.d.ts | 3 ++- src/language/visitor.d.ts | 2 +- src/subscription/subscribe.d.ts | 3 ++- src/tsutils/Maybe.d.ts | 6 +----- src/type/definition.d.ts | 3 ++- src/type/directives.d.ts | 2 +- src/type/schema.d.ts | 2 +- src/utilities/TypeInfo.d.ts | 3 ++- src/utilities/astFromValue.d.ts | 3 ++- src/utilities/extendSchema.d.ts | 3 ++- src/utilities/getIntrospectionQuery.d.ts | 3 ++- src/utilities/getOperationAST.d.ts | 3 ++- src/utilities/valueFromAST.d.ts | 3 ++- src/utilities/valueFromASTUntyped.d.ts | 3 ++- src/validation/ValidationContext.d.ts | 3 ++- src/validation/validate.d.ts | 2 +- 20 files changed, 33 insertions(+), 24 deletions(-) diff --git a/src/error/GraphQLError.d.ts b/src/error/GraphQLError.d.ts index f27c7af2159..9d22dc48c43 100644 --- a/src/error/GraphQLError.d.ts +++ b/src/error/GraphQLError.d.ts @@ -1,4 +1,4 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; import { ASTNode } from '../language/ast'; import { Source } from '../language/source'; diff --git a/src/error/locatedError.d.ts b/src/error/locatedError.d.ts index 5e9d02dffc7..8941e9ed75e 100644 --- a/src/error/locatedError.d.ts +++ b/src/error/locatedError.d.ts @@ -1,4 +1,4 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; import { ASTNode } from '../language/ast'; diff --git a/src/execution/execute.d.ts b/src/execution/execute.d.ts index 240f3b5713f..3be852f1643 100644 --- a/src/execution/execute.d.ts +++ b/src/execution/execute.d.ts @@ -1,4 +1,5 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; + import { PromiseOrValue } from '../jsutils/PromiseOrValue'; import { Path } from '../jsutils/Path'; diff --git a/src/execution/values.d.ts b/src/execution/values.d.ts index 82e2ce8cbe6..7c0d866fc9f 100644 --- a/src/execution/values.d.ts +++ b/src/execution/values.d.ts @@ -1,4 +1,5 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; + import { GraphQLError } from '../error/GraphQLError'; import { FieldNode, diff --git a/src/graphql.d.ts b/src/graphql.d.ts index c4ef398ba93..18a7d3a22ce 100644 --- a/src/graphql.d.ts +++ b/src/graphql.d.ts @@ -1,4 +1,5 @@ -import Maybe from './tsutils/Maybe'; +import { Maybe } from './tsutils/Maybe'; + import { Source } from './language/source'; import { GraphQLSchema } from './type/schema'; import { GraphQLFieldResolver, GraphQLTypeResolver } from './type/definition'; diff --git a/src/language/visitor.d.ts b/src/language/visitor.d.ts index fadc23cfd79..85552963ff8 100644 --- a/src/language/visitor.d.ts +++ b/src/language/visitor.d.ts @@ -1,4 +1,4 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; import { ASTNode, ASTKindToNode } from './ast'; diff --git a/src/subscription/subscribe.d.ts b/src/subscription/subscribe.d.ts index f9af6c7e695..f5a65b001bf 100644 --- a/src/subscription/subscribe.d.ts +++ b/src/subscription/subscribe.d.ts @@ -1,4 +1,5 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; + import { DocumentNode } from '../language/ast'; import { ExecutionResult } from '../execution/execute'; import { GraphQLSchema } from '../type/schema'; diff --git a/src/tsutils/Maybe.d.ts b/src/tsutils/Maybe.d.ts index eb9563a3826..e8b5e217d01 100644 --- a/src/tsutils/Maybe.d.ts +++ b/src/tsutils/Maybe.d.ts @@ -1,6 +1,2 @@ // Conveniently represents flow's "Maybe" type https://flow.org/en/docs/types/maybe/ -type Maybe = null | undefined | T; - -// See https://github.com/typescript-eslint/typescript-eslint/issues/131 -// eslint-disable-next-line no-undef -export default Maybe; +export type Maybe = null | undefined | T; diff --git a/src/type/definition.d.ts b/src/type/definition.d.ts index c2293ec70a5..fbb8a2cc4b4 100644 --- a/src/type/definition.d.ts +++ b/src/type/definition.d.ts @@ -1,7 +1,8 @@ // FIXME /* eslint-disable import/no-cycle */ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; + import { PromiseOrValue } from '../jsutils/PromiseOrValue'; import { Path } from '../jsutils/Path'; diff --git a/src/type/directives.d.ts b/src/type/directives.d.ts index 4c6801485d5..270c956ebd2 100644 --- a/src/type/directives.d.ts +++ b/src/type/directives.d.ts @@ -1,7 +1,7 @@ // FIXME /* eslint-disable import/no-cycle */ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; import { DirectiveDefinitionNode } from '../language/ast'; import { DirectiveLocationEnum } from '../language/directiveLocation'; diff --git a/src/type/schema.d.ts b/src/type/schema.d.ts index 5a834f1bbf5..f0e4e70c2ec 100644 --- a/src/type/schema.d.ts +++ b/src/type/schema.d.ts @@ -1,7 +1,7 @@ // FIXME /* eslint-disable import/no-cycle */ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; import { SchemaDefinitionNode, SchemaExtensionNode } from '../language/ast'; diff --git a/src/utilities/TypeInfo.d.ts b/src/utilities/TypeInfo.d.ts index 4f9b4265d6f..e8468cea8b3 100644 --- a/src/utilities/TypeInfo.d.ts +++ b/src/utilities/TypeInfo.d.ts @@ -1,4 +1,5 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; + import { Visitor } from '../language/visitor'; import { ASTNode, ASTKindToNode, FieldNode } from '../language/ast'; import { GraphQLSchema } from '../type/schema'; diff --git a/src/utilities/astFromValue.d.ts b/src/utilities/astFromValue.d.ts index ed84eb458f1..7135c8bc1e2 100644 --- a/src/utilities/astFromValue.d.ts +++ b/src/utilities/astFromValue.d.ts @@ -1,4 +1,5 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; + import { ValueNode } from '../language/ast'; import { GraphQLInputType } from '../type/definition'; diff --git a/src/utilities/extendSchema.d.ts b/src/utilities/extendSchema.d.ts index a7fa97c84f0..7b409837de4 100644 --- a/src/utilities/extendSchema.d.ts +++ b/src/utilities/extendSchema.d.ts @@ -1,4 +1,5 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; + import { Location, DocumentNode, StringValueNode } from '../language/ast'; import { GraphQLSchemaValidationOptions, diff --git a/src/utilities/getIntrospectionQuery.d.ts b/src/utilities/getIntrospectionQuery.d.ts index 6e2a9e50548..e643e6493ef 100644 --- a/src/utilities/getIntrospectionQuery.d.ts +++ b/src/utilities/getIntrospectionQuery.d.ts @@ -1,4 +1,5 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; + import { DirectiveLocationEnum } from '../language/directiveLocation'; export interface IntrospectionOptions { diff --git a/src/utilities/getOperationAST.d.ts b/src/utilities/getOperationAST.d.ts index 9f72b7eeca6..b960b1b3d4b 100644 --- a/src/utilities/getOperationAST.d.ts +++ b/src/utilities/getOperationAST.d.ts @@ -1,4 +1,5 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; + import { DocumentNode, OperationDefinitionNode } from '../language/ast'; /** diff --git a/src/utilities/valueFromAST.d.ts b/src/utilities/valueFromAST.d.ts index bef11b75d33..d63e3d154d5 100644 --- a/src/utilities/valueFromAST.d.ts +++ b/src/utilities/valueFromAST.d.ts @@ -1,4 +1,5 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; + import { ValueNode } from '../language/ast'; import { GraphQLInputType } from '../type/definition'; diff --git a/src/utilities/valueFromASTUntyped.d.ts b/src/utilities/valueFromASTUntyped.d.ts index ab7512e465b..0452f5dcc89 100644 --- a/src/utilities/valueFromASTUntyped.d.ts +++ b/src/utilities/valueFromASTUntyped.d.ts @@ -1,4 +1,5 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; + import { ValueNode } from '../language/ast'; /** diff --git a/src/validation/ValidationContext.d.ts b/src/validation/ValidationContext.d.ts index b349ce6fd1d..72492bdfcc3 100644 --- a/src/validation/ValidationContext.d.ts +++ b/src/validation/ValidationContext.d.ts @@ -1,4 +1,5 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; + import { GraphQLError } from '../error/GraphQLError'; import { ASTVisitor } from '../language/visitor'; import { diff --git a/src/validation/validate.d.ts b/src/validation/validate.d.ts index 9230c528148..0dec47af293 100644 --- a/src/validation/validate.d.ts +++ b/src/validation/validate.d.ts @@ -1,4 +1,4 @@ -import Maybe from '../tsutils/Maybe'; +import { Maybe } from '../tsutils/Maybe'; import { GraphQLError } from '../error/GraphQLError'; From 7a327a6e2045e75c577be924694e6642d3e28e14 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Tue, 26 May 2020 11:20:16 +0300 Subject: [PATCH 55/63] ts: cleanup definition files (#2587) --- src/execution/execute.d.ts | 2 +- src/tslint.json | 5 +---- src/type/definition.d.ts | 3 +++ src/validation/validate.d.ts | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/execution/execute.d.ts b/src/execution/execute.d.ts index 3be852f1643..858262474f2 100644 --- a/src/execution/execute.d.ts +++ b/src/execution/execute.d.ts @@ -148,7 +148,7 @@ export function resolveFieldValueOrError( resolveFn: GraphQLFieldResolver, source: any, info: GraphQLResolveInfo, -): Error | any; +): any; /** * If a resolveType function is not given, then a default resolve behavior is diff --git a/src/tslint.json b/src/tslint.json index 4e8447ae33c..17654bb8185 100644 --- a/src/tslint.json +++ b/src/tslint.json @@ -1,12 +1,9 @@ { "extends": "dtslint/dtslint.json", "rules": { - // All are TODOs "array-type": false, - "no-any-union": false, - "no-unnecessary-generics": false, "strict-export-declare-modifiers": false, - "unified-signatures": false, + "no-unnecessary-generics": false, "void-return": false } } diff --git a/src/type/definition.d.ts b/src/type/definition.d.ts index fbb8a2cc4b4..55cef7349b4 100644 --- a/src/type/definition.d.ts +++ b/src/type/definition.d.ts @@ -241,12 +241,15 @@ export function isNullableType(type: any): type is GraphQLNullableType; export function assertNullableType(type: any): GraphQLNullableType; +// FIXME Disabled because of https://github.com/yaacovCR/graphql-tools-fork/issues/40#issuecomment-586671219 +// tslint:disable:unified-signatures export function getNullableType(type: undefined): undefined; export function getNullableType(type: T): T; export function getNullableType( // eslint-disable-next-line @typescript-eslint/unified-signatures type: GraphQLNonNull, ): T; +// tslint:enable:unified-signatures /** * These named types do not include modifiers like List or NonNull. diff --git a/src/validation/validate.d.ts b/src/validation/validate.d.ts index 0dec47af293..7e2581b0107 100644 --- a/src/validation/validate.d.ts +++ b/src/validation/validate.d.ts @@ -49,7 +49,7 @@ export function validateSDL( * * @internal */ -export function assertValidSDL(documentAST: DocumentNode): undefined; +export function assertValidSDL(documentAST: DocumentNode): void; /** * Utility function which asserts a SDL document is valid by throwing an error @@ -60,4 +60,4 @@ export function assertValidSDL(documentAST: DocumentNode): undefined; export function assertValidSDLExtension( documentAST: DocumentNode, schema: GraphQLSchema, -): undefined; +): void; From a3d2e95a4080729767fbdf7e04c4a31d1634f127 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Fri, 29 May 2020 01:53:12 +0300 Subject: [PATCH 56/63] Update deps (#2590) --- package-lock.json | 2207 ++++++++++++++++++++++++++++++++++++--------- package.json | 16 +- 2 files changed, 1792 insertions(+), 431 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0d410f40b4c..3a2e123a24e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,30 +14,30 @@ } }, "@babel/compat-data": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.6.tgz", - "integrity": "sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.1.tgz", + "integrity": "sha512-CHvCj7So7iCkGKPRFUfryXIkU2gSBw7VSZFYLsqVhrS47269VK2Hfi9S/YcublPMW8k1u2bQBlbDruoQEm4fgw==", "dev": true, "requires": { - "browserslist": "^4.11.1", + "browserslist": "^4.12.0", "invariant": "^2.2.4", "semver": "^5.5.0" } }, "@babel/core": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", - "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.6", - "@babel/parser": "^7.9.6", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.1.tgz", + "integrity": "sha512-u8XiZ6sMXW/gPmoP5ijonSUln4unazG291X0XAQ5h0s8qnAFr6BRRZGUEK+jtRWdmB0NTJQt7Uga25q8GetIIg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helpers": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -46,6 +46,120 @@ "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/generator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", + "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", + "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/traverse": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", + "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/generator": { @@ -61,67 +175,394 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz", + "integrity": "sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz", + "integrity": "sha512-cQpVq48EkYxUU0xozpGCLla3wlkdRRqLWu1ksFMXA9CM5KQmyyRpSEsYXbao7JUkOw/tAaYKCaYyZq6HOFYtyw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-explode-assignable-expression": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-compilation-targets": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz", - "integrity": "sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.1.tgz", + "integrity": "sha512-YuF8IrgSmX/+MV2plPkjEnzlC2wf+gaok8ehMNN0jodF3/sejZauExqpEVGbJua62oaWoNYIXwz4RmAsVcGyHw==", "dev": true, "requires": { - "@babel/compat-data": "^7.9.6", - "browserslist": "^4.11.1", + "@babel/compat-data": "^7.10.1", + "browserslist": "^4.12.0", "invariant": "^2.2.4", "levenary": "^1.1.1", "semver": "^5.5.0" } }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.1.tgz", + "integrity": "sha512-bwhdehBJZt84HuPUcP1HaTLuc/EywVS8rc3FgsEPDcivg+DCW+SHuLHVkYOmcBA1ZfI+Z/oZjQc/+bPmIO7uAA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-member-expression-to-functions": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", + "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", - "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz", + "integrity": "sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-regex": "^7.8.3", + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-regex": "^7.10.1", "regexpu-core": "^4.7.0" } }, "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", - "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz", + "integrity": "sha512-+5odWpX+OnvkD0Zmq7panrMuAGQBu6aPUgvMzuMGo4R+jUOvealEj2hiqI6WhxgKrTpFoFj0+VdsuA8KDxHBDg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/helper-function-name": "^7.10.1", + "@babel/types": "^7.10.1", "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", + "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz", + "integrity": "sha512-vcUJ3cDjLjvkKzt6rHrl767FeE7pMEYfPanq5L16GRtrXIoznc0HykNW2aEYkcnP76P0isoqJ34dDMFZwzEpJg==", "dev": true, "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/generator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", + "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", + "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/traverse": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", + "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-function-name": { @@ -145,104 +586,529 @@ } }, "@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz", + "integrity": "sha512-vLm5srkU8rI6X3+aQ1rQJyfjvCBLXP8cAGeuw04zeAM2ItKb1e7pmVmLyHb4sDaAYnLL13RHOZPLEtcGZ5xvjg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz", + "integrity": "sha512-u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", - "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz", + "integrity": "sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-module-transforms": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", - "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz", + "integrity": "sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.6", - "@babel/types": "^7.9.0", + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-simple-access": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1", "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", + "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz", + "integrity": "sha512-a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true }, "@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz", + "integrity": "sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==", "dev": true, "requires": { "lodash": "^4.17.13" } }, "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz", + "integrity": "sha512-RfX1P8HqsfgmJ6CwaXGKMAqbYdlleqglvVtht0HGPMSsy2V6MqLlOJVF/0Qyb/m2ZCi2z3q3+s6Pv7R/dQuZ6A==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-wrap-function": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/generator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", + "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", + "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/traverse": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", + "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-replace-supers": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz", - "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz", + "integrity": "sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6" + "@babel/helper-member-expression-to-functions": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/generator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", + "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", + "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/traverse": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", + "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", - "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz", + "integrity": "sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", + "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-split-export-declaration": { @@ -261,26 +1127,254 @@ "dev": true }, "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz", + "integrity": "sha512-C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-function-name": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/generator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", + "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", + "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/traverse": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", + "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helpers": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz", - "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz", + "integrity": "sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6" + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/generator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", + "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", + "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/traverse": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", + "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/highlight": { @@ -301,95 +1395,115 @@ "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz", + "integrity": "sha512-vzZE12ZTdB336POZjmpblWfNNRpMSua45EYnRigE2XsZxcXcIyly2ixnTJasJE4Zq3U7t2d8rRF7XRUuzHxbOw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-remap-async-to-generator": "^7.10.1", "@babel/plugin-syntax-async-generators": "^7.8.0" } }, + "@babel/plugin-proposal-class-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz", + "integrity": "sha512-sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz", + "integrity": "sha512-Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz", + "integrity": "sha512-m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-json-strings": "^7.8.0" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz", + "integrity": "sha512-56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", - "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz", + "integrity": "sha512-jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-numeric-separator": "^7.10.1" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz", - "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz", + "integrity": "sha512-Z+Qri55KiQkHh7Fc4BW6o+QBuTagbOp9txE+4U1i79u9oWlf2npkiDx+Rf3iK3lbcHBuNy9UOkwuR5wOMH3LIQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.9.5" + "@babel/plugin-transform-parameters": "^7.10.1" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz", + "integrity": "sha512-VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", - "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz", + "integrity": "sha512-dqQj475q8+/avvok72CF3AOSV/SGEcH29zT5hhohqqvvZ2+boQoOr7iGldBG5YXTO2qgCgc2B3WvVLUdbeMlGA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, + "@babel/plugin-proposal-private-methods": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz", + "integrity": "sha512-RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", - "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz", + "integrity": "sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.8", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-syntax-async-generators": { @@ -401,6 +1515,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz", + "integrity": "sha512-Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -411,12 +1534,12 @@ } }, "@babel/plugin-syntax-flow": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz", - "integrity": "sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.1.tgz", + "integrity": "sha512-b3pWVncLBYoPP60UOTc7NMlbtsHQ6ITim78KQejNHK6WJ2mzV5kCcg4mIWpasAfJEgwVTibwo2e+FU7UEIKQUg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-syntax-json-strings": { @@ -438,12 +1561,12 @@ } }, "@babel/plugin-syntax-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", - "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz", + "integrity": "sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-syntax-object-rest-spread": { @@ -474,206 +1597,367 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz", + "integrity": "sha512-hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz", + "integrity": "sha512-6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz", + "integrity": "sha512-XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-remap-async-to-generator": "^7.10.1" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz", + "integrity": "sha512-B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz", + "integrity": "sha512-8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "lodash": "^4.17.13" } }, "@babel/plugin-transform-classes": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz", - "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-split-export-declaration": "^7.8.3", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz", + "integrity": "sha512-P9V0YIh+ln/B3RStPoXpEQ/CoAxQIhRSUn7aXqQ+FZJ2u8+oCtjIXR3+X0vsSD8zv+mb56K7wZW1XiDTDGiDRQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-define-map": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", + "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz", + "integrity": "sha512-mqSrGjp3IefMsXIenBfGcPXxJxweQe2hEIwMQvjtiDQ9b1IBvDUjkAtV/HMXX47/vXf14qDNedXsIiNd1FmkaQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-destructuring": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz", - "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz", + "integrity": "sha512-V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz", + "integrity": "sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz", + "integrity": "sha512-wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz", + "integrity": "sha512-lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz", - "integrity": "sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.1.tgz", + "integrity": "sha512-i4o0YwiJBIsIx7/liVCZ3Q2WkWr1/Yu39PksBOnh/khW2SwIFsGa5Ze+MSon5KbDfrEHP9NeyefAgvUSXzaEkw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-flow": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-flow": "^7.10.1" } }, "@babel/plugin-transform-for-of": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", - "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz", + "integrity": "sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz", + "integrity": "sha512-//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", + "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz", + "integrity": "sha512-qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz", + "integrity": "sha512-UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz", - "integrity": "sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz", + "integrity": "sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz", - "integrity": "sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz", + "integrity": "sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-simple-access": "^7.10.1", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz", - "integrity": "sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz", + "integrity": "sha512-ewNKcj1TQZDL3YnO85qh9zo1YF1CHgmSTlRQgHqe63oTrMI85cthKtZjAiZSsSNjPQ5NCaYo5QkbYqEw1ZBgZA==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-hoist-variables": "^7.10.1", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", - "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz", + "integrity": "sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-named-capturing-groups-regex": { @@ -686,184 +1970,244 @@ } }, "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz", + "integrity": "sha512-MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz", + "integrity": "sha512-WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1" } }, "@babel/plugin-transform-parameters": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz", - "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz", + "integrity": "sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz", + "integrity": "sha512-Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-regenerator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", - "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz", + "integrity": "sha512-B3+Y2prScgJ2Bh/2l9LJxKbb8C8kRfsG4AdPT+n7ixBHIxJaIG8bi8tgjxUMege1+WqSJ+7gu1YeoMVO3gPWzw==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz", + "integrity": "sha512-qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz", + "integrity": "sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz", + "integrity": "sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz", + "integrity": "sha512-j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-regex": "^7.10.1" } }, "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz", + "integrity": "sha512-t7B/3MQf5M1T9hPCRG28DNGZUuxAuDqLYS03rJrIk2prj/UV7Z6FOneijhQhnv/Xa039vidXeVbvjK2SK5f7Gg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz", + "integrity": "sha512-qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz", + "integrity": "sha512-zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz", + "integrity": "sha512-Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/preset-env": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz", - "integrity": "sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.9.6", - "@babel/helper-compilation-targets": "^7.9.6", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-numeric-separator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.9.6", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.1.tgz", + "integrity": "sha512-bGWNfjfXRLnqbN2T4lB3pMfoic8dkRrmHpVZamSFHzGy5xklyHTobZ28TVUD2grhE5WDnu67tBj8oslIhkiOMQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.1", + "@babel/helper-compilation-targets": "^7.10.1", + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-proposal-async-generator-functions": "^7.10.1", + "@babel/plugin-proposal-class-properties": "^7.10.1", + "@babel/plugin-proposal-dynamic-import": "^7.10.1", + "@babel/plugin-proposal-json-strings": "^7.10.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", + "@babel/plugin-proposal-numeric-separator": "^7.10.1", + "@babel/plugin-proposal-object-rest-spread": "^7.10.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.1", + "@babel/plugin-proposal-optional-chaining": "^7.10.1", + "@babel/plugin-proposal-private-methods": "^7.10.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.1", "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.1", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-json-strings": "^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.1", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.9.5", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.9.5", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.9.0", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.9.6", - "@babel/plugin-transform-modules-commonjs": "^7.9.6", - "@babel/plugin-transform-modules-systemjs": "^7.9.6", - "@babel/plugin-transform-modules-umd": "^7.9.0", + "@babel/plugin-syntax-top-level-await": "^7.10.1", + "@babel/plugin-transform-arrow-functions": "^7.10.1", + "@babel/plugin-transform-async-to-generator": "^7.10.1", + "@babel/plugin-transform-block-scoped-functions": "^7.10.1", + "@babel/plugin-transform-block-scoping": "^7.10.1", + "@babel/plugin-transform-classes": "^7.10.1", + "@babel/plugin-transform-computed-properties": "^7.10.1", + "@babel/plugin-transform-destructuring": "^7.10.1", + "@babel/plugin-transform-dotall-regex": "^7.10.1", + "@babel/plugin-transform-duplicate-keys": "^7.10.1", + "@babel/plugin-transform-exponentiation-operator": "^7.10.1", + "@babel/plugin-transform-for-of": "^7.10.1", + "@babel/plugin-transform-function-name": "^7.10.1", + "@babel/plugin-transform-literals": "^7.10.1", + "@babel/plugin-transform-member-expression-literals": "^7.10.1", + "@babel/plugin-transform-modules-amd": "^7.10.1", + "@babel/plugin-transform-modules-commonjs": "^7.10.1", + "@babel/plugin-transform-modules-systemjs": "^7.10.1", + "@babel/plugin-transform-modules-umd": "^7.10.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.9.5", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.10.1", + "@babel/plugin-transform-object-super": "^7.10.1", + "@babel/plugin-transform-parameters": "^7.10.1", + "@babel/plugin-transform-property-literals": "^7.10.1", + "@babel/plugin-transform-regenerator": "^7.10.1", + "@babel/plugin-transform-reserved-words": "^7.10.1", + "@babel/plugin-transform-shorthand-properties": "^7.10.1", + "@babel/plugin-transform-spread": "^7.10.1", + "@babel/plugin-transform-sticky-regex": "^7.10.1", + "@babel/plugin-transform-template-literals": "^7.10.1", + "@babel/plugin-transform-typeof-symbol": "^7.10.1", + "@babel/plugin-transform-unicode-escapes": "^7.10.1", + "@babel/plugin-transform-unicode-regex": "^7.10.1", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.9.6", - "browserslist": "^4.11.1", + "@babel/types": "^7.10.1", + "browserslist": "^4.12.0", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", "levenary": "^1.1.1", "semver": "^5.5.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", + "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/preset-modules": { @@ -880,9 +2224,9 @@ } }, "@babel/register": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.9.0.tgz", - "integrity": "sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.10.1.tgz", + "integrity": "sha512-sl96+kB3IA2B9EzpwwBmYadOT14vw3KaXOknGDbJaZCOj52GDA4Tivudq9doCJcB+bEIKCEARZYwRgBBsCGXyg==", "dev": true, "requires": { "find-cache-dir": "^2.0.0", @@ -893,9 +2237,9 @@ } }, "@babel/runtime": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", - "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.1.tgz", + "integrity": "sha512-nQbbCbQc9u/rpg1XCxoMYQTbSMVZjCDxErQ1ClCn9Pvcmv1lGads19ep0a2VsEiIJeHqjZley6EQGEC3Yo1xMA==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" @@ -941,29 +2285,29 @@ } }, "@definitelytyped/header-parser": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.34.tgz", - "integrity": "sha512-/yTifMAhYKB8SFH3pSlAQmcBzrk7UyqpEz9/vJKaMKdzRpJrxmc1zWMP+hwJtJTVCjAK+Ul4m3i1GZQrTZfymw==", + "version": "0.0.35", + "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.35.tgz", + "integrity": "sha512-tlfQzjptRPS7ukWzOyUB/srJ3HuQf6OIkK4OOu5kVX6pS+oQRKqCBDS7afwKsGOCP198jT6gwDuuGJeojmFCBg==", "dev": true, "requires": { - "@definitelytyped/typescript-versions": "^0.0.34", + "@definitelytyped/typescript-versions": "^0.0.35", "@types/parsimmon": "^1.10.1", "parsimmon": "^1.13.0" } }, "@definitelytyped/typescript-versions": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.34.tgz", - "integrity": "sha512-7IqWcbHKYbfY8Lt7AigXDa29cbz3gynzBHMjwMUCeLnex8D682M6OW8uBLouvVHCr+YENL58tQB3dn0Zos8mFQ==", + "version": "0.0.35", + "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.35.tgz", + "integrity": "sha512-avSJ8C5KPAYjAF2BkJbrIP3WaTKWM10LT+PepKFr0WXAjObUp8Ds7k8yweEpsRdUTjcL1YIzsusk9NOvAIVY2w==", "dev": true }, "@definitelytyped/utils": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.34.tgz", - "integrity": "sha512-C1mlA9ixRfv7PPmO99hJZ8Ii2roKY+7GoIwBPh5uYSF6WfABoVlzyWX3LsF6fy1MwpZbempC+r81iDm2QeYTsw==", + "version": "0.0.35", + "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.35.tgz", + "integrity": "sha512-dw5sLbmyiPG0vFmrSe7cNpPWd1XgKWVT4FzRvZuf7L3heAzx+tshGs8vU5t8tAuQNFCvbtvacXRhN0OywqogTg==", "dev": true, "requires": { - "@definitelytyped/typescript-versions": "^0.0.34", + "@definitelytyped/typescript-versions": "^0.0.35", "@types/node": "^12.12.29", "charm": "^1.0.2", "fs-extra": "^8.1.0", @@ -1092,12 +2436,12 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.0.0.tgz", - "integrity": "sha512-lcZ0M6jD4cqGccYOERKdMtg+VWpoq3NSnWVxpc/AwAy0zhkUYVioOUZmfNqiNH8/eBNGhCn6HXd6mKIGRgNc1Q==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.0.2.tgz", + "integrity": "sha512-ER3bSS/A/pKQT/hjMGCK8UQzlL0yLjuCZ/G8CDFJFVTfl3X65fvq2lNYqOG8JPTfrPa2RULCdwfOyFjZEMNExQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "3.0.0", + "@typescript-eslint/experimental-utils": "3.0.2", "functional-red-black-tree": "^1.0.1", "regexpp": "^3.0.0", "semver": "^7.3.2", @@ -1113,33 +2457,33 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.0.0.tgz", - "integrity": "sha512-BN0vmr9N79M9s2ctITtChRuP1+Dls0x/wlg0RXW1yQ7WJKPurg6X3Xirv61J2sjPif4F8SLsFMs5Nzte0WYoTQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.0.2.tgz", + "integrity": "sha512-4Wc4EczvoY183SSEnKgqAfkj1eLtRgBQ04AAeG+m4RhTVyaazxc1uI8IHf0qLmu7xXe9j1nn+UoDJjbmGmuqXQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "3.0.0", + "@typescript-eslint/typescript-estree": "3.0.2", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.0.0.tgz", - "integrity": "sha512-8RRCA9KLxoFNO0mQlrLZA0reGPd/MsobxZS/yPFj+0/XgMdS8+mO8mF3BDj2ZYQj03rkayhSJtF1HAohQ3iylw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.0.2.tgz", + "integrity": "sha512-80Z7s83e8QXHNUspqVlWwb4t5gdz/1bBBmafElbK1wwAwiD/yvJsFyHRxlEpNrt4rdK6eB3p+2WEFkEDHAKk9w==", "dev": true, "requires": { "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "3.0.0", - "@typescript-eslint/typescript-estree": "3.0.0", + "@typescript-eslint/experimental-utils": "3.0.2", + "@typescript-eslint/typescript-estree": "3.0.2", "eslint-visitor-keys": "^1.1.0" } }, "@typescript-eslint/typescript-estree": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.0.0.tgz", - "integrity": "sha512-nevQvHyNghsfLrrByzVIH4ZG3NROgJ8LZlfh3ddwPPH4CH7W4GAiSx5qu+xHuX5pWsq6q/eqMc1io840ZhAnUg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.0.2.tgz", + "integrity": "sha512-cs84mxgC9zQ6viV8MEcigfIKQmKtBkZNDYf8Gru2M+MhnA6z9q0NFMZm2IEzKqAwN8lY5mFVd1Z8DiHj6zQ3Tw==", "dev": true, "requires": { "debug": "^4.1.1", @@ -1350,9 +2694,9 @@ "dev": true }, "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", "dev": true }, "babel-code-frame": { @@ -1581,9 +2925,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001058", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001058.tgz", - "integrity": "sha512-UiRZmBYd1HdVVdFKy7PuLVx9e2NS7SMyx7QpWvFjiklYrLJKpLd19cRnRNqlw4zYa7vVejS3c8JUVobX241zHQ==", + "version": "1.0.30001066", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz", + "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==", "dev": true }, "caseless": { @@ -2409,6 +3753,23 @@ "yargs": "^12.0.5" }, "dependencies": { + "@definitelytyped/header-parser": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.34.tgz", + "integrity": "sha512-/yTifMAhYKB8SFH3pSlAQmcBzrk7UyqpEz9/vJKaMKdzRpJrxmc1zWMP+hwJtJTVCjAK+Ul4m3i1GZQrTZfymw==", + "dev": true, + "requires": { + "@definitelytyped/typescript-versions": "^0.0.34", + "@types/parsimmon": "^1.10.1", + "parsimmon": "^1.13.0" + } + }, + "@definitelytyped/typescript-versions": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.34.tgz", + "integrity": "sha512-7IqWcbHKYbfY8Lt7AigXDa29cbz3gynzBHMjwMUCeLnex8D682M6OW8uBLouvVHCr+YENL58tQB3dn0Zos8mFQ==", + "dev": true + }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", @@ -2530,27 +3891,27 @@ } }, "dtslint": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.4.tgz", - "integrity": "sha512-D9qwC0N945ge+CENZ1Dtm6I72fc8dAgQpyAde1XoiChR+mk8dC9uzToJNORe7SI0P3dSSULofwjsg7rzQ/iplw==", + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.7.tgz", + "integrity": "sha512-0Ap/EjQ8s17SzsjL9mf07pYuGO5yL1wWPKr5TbrRdguNHdbDxd8gVyuF3L3lVanXIg6bwEXmU+umUjSY7nFx4w==", "dev": true, "requires": { - "@definitelytyped/header-parser": "0.0.34", - "@definitelytyped/typescript-versions": "0.0.34", - "@definitelytyped/utils": "0.0.34", + "@definitelytyped/header-parser": "^0.0.35", + "@definitelytyped/typescript-versions": "^0.0.35", + "@definitelytyped/utils": "^0.0.35", "dts-critic": "^3.2.3", "fs-extra": "^6.0.1", "json-stable-stringify": "^1.0.1", "strip-json-comments": "^2.0.1", "tslint": "5.14.0", - "typescript": "^4.0.0-dev.20200522", + "typescript": "^4.0.0-dev.20200528", "yargs": "^15.1.0" }, "dependencies": { "typescript": { - "version": "4.0.0-dev.20200522", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.0-dev.20200522.tgz", - "integrity": "sha512-wCvtYKDPX3F0SxaFe9OLEBguK2/w4Jis7tvPKQLifSmrMjp7BA57z8qlYFd1OQxOUWmizYqiyYWDSlMtWeED6Q==", + "version": "4.0.0-dev.20200528", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.0-dev.20200528.tgz", + "integrity": "sha512-tQE2cCwjRGYSO8g8ghX6k1HKvOz5LAafQEzhFwUwN0frqBOuuS7c5/Cdgjct0Sci/7LLuFLP+gg59LiIb1BtkQ==", "dev": true } } @@ -2566,9 +3927,9 @@ } }, "electron-to-chromium": { - "version": "1.3.437", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.437.tgz", - "integrity": "sha512-PBQn2q68ErqMyBUABh9Gh8R6DunGky8aB5y3N5lPM7OVpldwyUbAK5AX9WcwE/5F6ceqvQ+iQLYkJYRysAs6Bg==", + "version": "1.3.453", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.453.tgz", + "integrity": "sha512-IQbCfjJR0NDDn/+vojTlq7fPSREcALtF8M1n01gw7nQghCtfFYrJ2dfhsp8APr8bANoFC8vRTFVXMOGpT0eetw==", "dev": true }, "emoji-regex": { @@ -2884,9 +4245,9 @@ } }, "eslint-plugin-flowtype": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.1.0.tgz", - "integrity": "sha512-avZ1nHs0vadDTPvgGbggLWvktqI7urjZ1fcK8P+AXJkTuOSBmNje/vMtbfXgs85d32nMYioD7LoLNZiEULZ8lA==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.1.3.tgz", + "integrity": "sha512-UU+BbIxBflqJ171yxbd/HcOktCmOdhXbchIVIq/yBvKpLZXvfzNDOyJGcnuQYLaH840hdoIdU/bqxhoW6I0rIQ==", "dev": true, "requires": { "lodash": "^4.17.15", @@ -4592,9 +5953,9 @@ } }, "node-releases": { - "version": "1.1.55", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.55.tgz", - "integrity": "sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w==", + "version": "1.1.57", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.57.tgz", + "integrity": "sha512-ZQmnWS7adi61A9JsllJ2gdj2PauElcjnOwTp2O011iGzoakTxUsDGSe+6vD7wXbKdqhSFymC0OSx35aAMhrSdw==", "dev": true }, "normalize-package-data": { @@ -5322,9 +6683,9 @@ } }, "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", "dev": true }, "regjsparser": { diff --git a/package.json b/package.json index 6767be0e649..fcdaa385989 100644 --- a/package.json +++ b/package.json @@ -46,18 +46,18 @@ }, "dependencies": {}, "devDependencies": { - "@babel/core": "7.9.6", - "@babel/plugin-transform-flow-strip-types": "7.9.0", - "@babel/preset-env": "7.9.6", - "@babel/register": "7.9.0", - "@typescript-eslint/eslint-plugin": "3.0.0", - "@typescript-eslint/parser": "3.0.0", + "@babel/core": "7.10.1", + "@babel/plugin-transform-flow-strip-types": "7.10.1", + "@babel/preset-env": "7.10.1", + "@babel/register": "7.10.1", + "@typescript-eslint/eslint-plugin": "3.0.2", + "@typescript-eslint/parser": "3.0.2", "babel-eslint": "10.1.0", "chai": "4.2.0", "cspell": "4.0.63", - "dtslint": "3.6.4", + "dtslint": "3.6.7", "eslint": "7.1.0", - "eslint-plugin-flowtype": "5.1.0", + "eslint-plugin-flowtype": "5.1.3", "eslint-plugin-graphql-internal": "file:./resources/eslint-rules", "eslint-plugin-import": "2.20.2", "eslint-plugin-istanbul": "0.1.1", From a1c7a9bd81dbfc96568ddc7bd3268a59cb3a4d72 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Fri, 29 May 2020 02:07:16 +0300 Subject: [PATCH 57/63] gitignore: remove unused entry (#2592) --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 12418e3053f..973e93731ca 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ # https://help.github.com/articles/ignoring-files/#create-a-global-gitignore # https://www.gitignore.io/ -.nyc_output .eslintcache node_modules coverage From d31a3b9c7db4be6b25fb570db2e11d79fb0d0869 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Fri, 29 May 2020 02:11:29 +0300 Subject: [PATCH 58/63] package.json: remove yarn from engines (#2593) --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index fcdaa385989..eb44c823b74 100644 --- a/package.json +++ b/package.json @@ -21,8 +21,7 @@ "graphql-js" ], "engines": { - "node": ">= 10.x", - "yarn": "YARN NO LONGER USED - use npm instead." + "node": ">= 10.x" }, "scripts": { "test": "npm run prettier:check && npm run lint && npm run check && npm run testonly && npm run check:ts && npm run check:spelling", From eb0120a4d76e9a6b256cfe388715cfbe5ffa1a79 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Fri, 29 May 2020 10:58:25 +0300 Subject: [PATCH 59/63] Exported `Token` and `Location` as ES6 classes (#2594) Reported here: https://github.com/graphql/graphql-js/pull/2233#issuecomment-621312122 --- src/index.d.ts | 4 ++-- src/index.js | 4 ++-- src/language/index.js | 3 +-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/index.d.ts b/src/index.d.ts index 385db0784e0..14a1551b4f8 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -172,7 +172,9 @@ export { // Parse and operate on GraphQL language source files. export { + Token, Source, + Location, getLocation, // Print source location printLocation, @@ -208,8 +210,6 @@ export { export { ParseOptions, SourceLocation, - Location, - Token, TokenKindEnum, KindEnum, DirectiveLocationEnum, diff --git a/src/index.js b/src/index.js index e16edf24ebe..8e2d9f4dd49 100644 --- a/src/index.js +++ b/src/index.js @@ -173,7 +173,9 @@ export type { // Parse and operate on GraphQL language source files. export { + Token, Source, + Location, getLocation, // Print source location printLocation, @@ -209,8 +211,6 @@ export { export type { ParseOptions, SourceLocation, - Location, - Token, TokenKindEnum, KindEnum, DirectiveLocationEnum, diff --git a/src/language/index.js b/src/language/index.js index 0ce8ff6097f..60fd9750773 100644 --- a/src/language/index.js +++ b/src/language/index.js @@ -23,9 +23,8 @@ export { print } from './printer'; export { visit, visitInParallel, getVisitFn, BREAK } from './visitor'; export type { ASTVisitor, Visitor, VisitFn, VisitorKeyMap } from './visitor'; +export { Location, Token } from './ast'; export type { - Location, - Token, ASTNode, ASTKindToNode, // Each kind of AST node From 4f35752df58d99150ed6a9ba128984f902170537 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sat, 30 May 2020 12:21:21 +0300 Subject: [PATCH 60/63] Update deps (#2595) --- package-lock.json | 51 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3a2e123a24e..7761d208eed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2285,29 +2285,29 @@ } }, "@definitelytyped/header-parser": { - "version": "0.0.35", - "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.35.tgz", - "integrity": "sha512-tlfQzjptRPS7ukWzOyUB/srJ3HuQf6OIkK4OOu5kVX6pS+oQRKqCBDS7afwKsGOCP198jT6gwDuuGJeojmFCBg==", + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.36.tgz", + "integrity": "sha512-rzlKeKfNLa+uAvEn64bhSc/ULbOUFepxcpV8WcobVH00Jiknu3gPOTOSnT9CgCLNtKYrcOCUTWmXkt0nV02t7g==", "dev": true, "requires": { - "@definitelytyped/typescript-versions": "^0.0.35", + "@definitelytyped/typescript-versions": "^0.0.36", "@types/parsimmon": "^1.10.1", "parsimmon": "^1.13.0" } }, "@definitelytyped/typescript-versions": { - "version": "0.0.35", - "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.35.tgz", - "integrity": "sha512-avSJ8C5KPAYjAF2BkJbrIP3WaTKWM10LT+PepKFr0WXAjObUp8Ds7k8yweEpsRdUTjcL1YIzsusk9NOvAIVY2w==", + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.36.tgz", + "integrity": "sha512-ci+468ddCIOaAUGVJvVQ6RdHRC6qfkvQgZ4CuITyZJx0n6qrUU+iEqXIuoIb9Nq9yuhHu6UwK9kg5OXCfahFog==", "dev": true }, "@definitelytyped/utils": { - "version": "0.0.35", - "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.35.tgz", - "integrity": "sha512-dw5sLbmyiPG0vFmrSe7cNpPWd1XgKWVT4FzRvZuf7L3heAzx+tshGs8vU5t8tAuQNFCvbtvacXRhN0OywqogTg==", + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.36.tgz", + "integrity": "sha512-gBmPS02uONxbQw1uV5TE4O+HmRNrQSLSjKPAYfsRn2Mnan4mCZAXrdfp3Zburj0xQyEtCt0SEDe2Px3txZJOKQ==", "dev": true, "requires": { - "@definitelytyped/typescript-versions": "^0.0.35", + "@definitelytyped/typescript-versions": "^0.0.36", "@types/node": "^12.12.29", "charm": "^1.0.2", "fs-extra": "^8.1.0", @@ -3739,9 +3739,9 @@ } }, "dts-critic": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.2.3.tgz", - "integrity": "sha512-CErYGgQiloLH0PZ/vrLH5+WgpPbHiOj77qFF+6pGuGtlQzb43oFUSS9Qetr4y9fAg2ZOG9ZvGp7h+jhh0kkbAg==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.2.4.tgz", + "integrity": "sha512-KdW/qVKydHF8HkFBe3hNqXRIDUwSqioTOxVAUS7tbo0++vlRNq7wluCfTgi5J26bS1L4ybJvN22BBVRR5Cp2wQ==", "dev": true, "requires": { "@definitelytyped/header-parser": "0.0.34", @@ -3749,7 +3749,6 @@ "rimraf": "^3.0.2", "semver": "^6.2.0", "tmp": "^0.2.1", - "typescript": "^3.9.2", "yargs": "^12.0.5" }, "dependencies": { @@ -3891,27 +3890,27 @@ } }, "dtslint": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.7.tgz", - "integrity": "sha512-0Ap/EjQ8s17SzsjL9mf07pYuGO5yL1wWPKr5TbrRdguNHdbDxd8gVyuF3L3lVanXIg6bwEXmU+umUjSY7nFx4w==", + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.9.tgz", + "integrity": "sha512-m3inh2igjzQnoJX6cf7DcGaejUwAca4ok7mWTDV5dhFvdCGsHkFabdwdm6vGyhq0Xzo/lV4G1RFdU5tRAsHggQ==", "dev": true, "requires": { - "@definitelytyped/header-parser": "^0.0.35", - "@definitelytyped/typescript-versions": "^0.0.35", - "@definitelytyped/utils": "^0.0.35", - "dts-critic": "^3.2.3", + "@definitelytyped/header-parser": "^0.0.36", + "@definitelytyped/typescript-versions": "^0.0.36", + "@definitelytyped/utils": "^0.0.36", + "dts-critic": "^3.2.4", "fs-extra": "^6.0.1", "json-stable-stringify": "^1.0.1", "strip-json-comments": "^2.0.1", "tslint": "5.14.0", - "typescript": "^4.0.0-dev.20200528", + "typescript": "^4.0.0-dev.20200529", "yargs": "^15.1.0" }, "dependencies": { "typescript": { - "version": "4.0.0-dev.20200528", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.0-dev.20200528.tgz", - "integrity": "sha512-tQE2cCwjRGYSO8g8ghX6k1HKvOz5LAafQEzhFwUwN0frqBOuuS7c5/Cdgjct0Sci/7LLuFLP+gg59LiIb1BtkQ==", + "version": "4.0.0-dev.20200529", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.0-dev.20200529.tgz", + "integrity": "sha512-qbj0Vwyul/++S2H40s+WzGKmW8+Z6NQci4DZL2j/gxrm03jur/UVa3UeDkxVO22vggP90VYIqeTdBHx5FgQvrQ==", "dev": true } } diff --git a/package.json b/package.json index eb44c823b74..9ee12e11e0e 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "babel-eslint": "10.1.0", "chai": "4.2.0", "cspell": "4.0.63", - "dtslint": "3.6.7", + "dtslint": "3.6.9", "eslint": "7.1.0", "eslint-plugin-flowtype": "5.1.3", "eslint-plugin-graphql-internal": "file:./resources/eslint-rules", From 019b279c851a40c23d1d77c8ec8e807e1d36c6e4 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Tue, 2 Jun 2020 19:20:21 +0300 Subject: [PATCH 61/63] ci: update 'cache' action (#2596) --- .github/workflows/ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fe49bc98631..8f8d5656c2b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: uses: actions/setup-node@v1 - name: Cache Node.js modules - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ~/.npm key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} @@ -32,7 +32,7 @@ jobs: run: npm run check - name: Cache TS versions - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ~/.dts key: ${{ runner.OS }}-dts-${{ hashFiles('**/package-lock.json') }} @@ -59,7 +59,7 @@ jobs: uses: actions/setup-node@v1 - name: Cache Node.js modules - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ~/.npm key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} @@ -83,7 +83,7 @@ jobs: uses: actions/setup-node@v1 - name: Cache Node.js modules - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ~/.npm key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} @@ -118,7 +118,7 @@ jobs: node-version: ${{ matrix.node_version }} - name: Cache Node.js modules - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ~/.npm key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} @@ -144,7 +144,7 @@ jobs: uses: actions/setup-node@v1 - name: Cache Node.js modules - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ~/.npm key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} @@ -173,7 +173,7 @@ jobs: uses: actions/setup-node@v1 - name: Cache Node.js modules - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ~/.npm key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} From d10cf6c24b70d861ddb233272e86e1d5193529c2 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Tue, 2 Jun 2020 19:32:51 +0300 Subject: [PATCH 62/63] Update dtslint (#2602) --- package-lock.json | 21 ++++++--------------- package.json | 2 +- src/tslint.json | 4 +--- 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7761d208eed..782a9cb849e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2424,9 +2424,9 @@ "dev": true }, "@types/node": { - "version": "12.12.42", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.42.tgz", - "integrity": "sha512-R/9QdYFLL9dE9l5cWWzWIZByVGFd7lk7JVOJ7KD+E1SJ4gni7XJRLz9QTjyYQiHIqEAgku9VgxdLjMlhhUaAFg==", + "version": "12.12.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.43.tgz", + "integrity": "sha512-KUyZdkGCnVPuXfsKmDUu2XLui65LZIJ2s0M57noy5e+ixUT2oK33ep7zlvgzI8LElcWqbf8AR+o/3GqAPac2zA==", "dev": true }, "@types/parsimmon": { @@ -3890,9 +3890,9 @@ } }, "dtslint": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.9.tgz", - "integrity": "sha512-m3inh2igjzQnoJX6cf7DcGaejUwAca4ok7mWTDV5dhFvdCGsHkFabdwdm6vGyhq0Xzo/lV4G1RFdU5tRAsHggQ==", + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.10.tgz", + "integrity": "sha512-QGSX0nNBLWnw3N9MJKJ8OtmU/r439bwS53RF+vnM4Vt62vCDGQa2yKEBMWpnTS2Few38i7y+UgrfL2OAPepkUw==", "dev": true, "requires": { "@definitelytyped/header-parser": "^0.0.36", @@ -3903,16 +3903,7 @@ "json-stable-stringify": "^1.0.1", "strip-json-comments": "^2.0.1", "tslint": "5.14.0", - "typescript": "^4.0.0-dev.20200529", "yargs": "^15.1.0" - }, - "dependencies": { - "typescript": { - "version": "4.0.0-dev.20200529", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.0-dev.20200529.tgz", - "integrity": "sha512-qbj0Vwyul/++S2H40s+WzGKmW8+Z6NQci4DZL2j/gxrm03jur/UVa3UeDkxVO22vggP90VYIqeTdBHx5FgQvrQ==", - "dev": true - } } }, "ecc-jsbn": { diff --git a/package.json b/package.json index 9ee12e11e0e..d757bee48d4 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "babel-eslint": "10.1.0", "chai": "4.2.0", "cspell": "4.0.63", - "dtslint": "3.6.9", + "dtslint": "3.6.10", "eslint": "7.1.0", "eslint-plugin-flowtype": "5.1.3", "eslint-plugin-graphql-internal": "file:./resources/eslint-rules", diff --git a/src/tslint.json b/src/tslint.json index 17654bb8185..0d7a24bcdef 100644 --- a/src/tslint.json +++ b/src/tslint.json @@ -2,8 +2,6 @@ "extends": "dtslint/dtslint.json", "rules": { "array-type": false, - "strict-export-declare-modifiers": false, - "no-unnecessary-generics": false, - "void-return": false + "strict-export-declare-modifiers": false } } From 056a6e4469754ab1d4a5ba62482ace7d7ffc20de Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Wed, 3 Jun 2020 17:01:12 +0300 Subject: [PATCH 63/63] Update deps (#2603) --- .eslintrc.yml | 3 +- .flowconfig | 2 +- package-lock.json | 558 +++++++++++++++++++++++----------------------- package.json | 12 +- 4 files changed, 293 insertions(+), 282 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 22d1ddef543..f357e7d83d9 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -509,7 +509,8 @@ overrides: '@typescript-eslint/adjacent-overload-signatures': error '@typescript-eslint/array-type': [error, { default: generic }] '@typescript-eslint/await-thenable': error - '@typescript-eslint/ban-ts-comment': error + '@typescript-eslint/ban-ts-comment': + [error, { 'ts-expect-error': 'allow-with-description' }] '@typescript-eslint/ban-types': error '@typescript-eslint/class-literal-property-style': off '@typescript-eslint/consistent-type-assertions': diff --git a/.flowconfig b/.flowconfig index ecd0c672b3a..9b6cc9e48de 100644 --- a/.flowconfig +++ b/.flowconfig @@ -39,4 +39,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)?)\\) suppress_comment=\\(.\\|\n\\)*\\$DisableFlowOnNegativeTest [version] -^0.125.0 +^0.126.0 diff --git a/package-lock.json b/package-lock.json index 782a9cb849e..39a55df5988 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,19 +25,19 @@ } }, "@babel/core": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.1.tgz", - "integrity": "sha512-u8XiZ6sMXW/gPmoP5ijonSUln4unazG291X0XAQ5h0s8qnAFr6BRRZGUEK+jtRWdmB0NTJQt7Uga25q8GetIIg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.2.tgz", + "integrity": "sha512-KQmV9yguEjQsXqyOUGKjS4+3K8/DlOCE2pZcq4augdQmtTy5iv5EHtmMSJ7V4c1BIPjuwtZYqYLCq9Ga+hGBRQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.1", - "@babel/generator": "^7.10.1", + "@babel/generator": "^7.10.2", "@babel/helper-module-transforms": "^7.10.1", "@babel/helpers": "^7.10.1", - "@babel/parser": "^7.10.1", + "@babel/parser": "^7.10.2", "@babel/template": "^7.10.1", "@babel/traverse": "^7.10.1", - "@babel/types": "^7.10.1", + "@babel/types": "^7.10.2", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -58,12 +58,12 @@ } }, "@babel/generator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", - "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", "dev": true, "requires": { - "@babel/types": "^7.10.1", + "@babel/types": "^7.10.2", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -116,9 +116,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/template": { @@ -150,9 +150,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -190,9 +190,9 @@ "dev": true }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -219,9 +219,9 @@ "dev": true }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -232,9 +232,9 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.1.tgz", - "integrity": "sha512-YuF8IrgSmX/+MV2plPkjEnzlC2wf+gaok8ehMNN0jodF3/sejZauExqpEVGbJua62oaWoNYIXwz4RmAsVcGyHw==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz", + "integrity": "sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==", "dev": true, "requires": { "@babel/compat-data": "^7.10.1", @@ -245,9 +245,9 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.1.tgz", - "integrity": "sha512-bwhdehBJZt84HuPUcP1HaTLuc/EywVS8rc3FgsEPDcivg+DCW+SHuLHVkYOmcBA1ZfI+Z/oZjQc/+bPmIO7uAA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz", + "integrity": "sha512-5C/QhkGFh1vqcziq1vAL6SI9ymzUp8BCYjFpvYVhWP4DlATIb3u5q3iUd35mvlyGs8fO7hckkW7i0tmH+5+bvQ==", "dev": true, "requires": { "@babel/helper-function-name": "^7.10.1", @@ -314,9 +314,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/template": { @@ -331,9 +331,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -412,9 +412,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/template": { @@ -429,9 +429,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -461,12 +461,12 @@ } }, "@babel/generator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", - "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", "dev": true, "requires": { - "@babel/types": "^7.10.1", + "@babel/types": "^7.10.2", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -519,9 +519,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/template": { @@ -553,9 +553,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -601,9 +601,9 @@ "dev": true }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -629,9 +629,9 @@ "dev": true }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -657,9 +657,9 @@ "dev": true }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -720,9 +720,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/template": { @@ -737,9 +737,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -765,9 +765,9 @@ "dev": true }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -815,12 +815,12 @@ } }, "@babel/generator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", - "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", "dev": true, "requires": { - "@babel/types": "^7.10.1", + "@babel/types": "^7.10.2", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -873,9 +873,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/template": { @@ -907,9 +907,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -941,12 +941,12 @@ } }, "@babel/generator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", - "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", "dev": true, "requires": { - "@babel/types": "^7.10.1", + "@babel/types": "^7.10.2", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -999,9 +999,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/template": { @@ -1033,9 +1033,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -1082,9 +1082,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/template": { @@ -1099,9 +1099,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -1148,12 +1148,12 @@ } }, "@babel/generator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", - "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", "dev": true, "requires": { - "@babel/types": "^7.10.1", + "@babel/types": "^7.10.2", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -1206,9 +1206,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/template": { @@ -1240,9 +1240,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -1273,12 +1273,12 @@ } }, "@babel/generator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", - "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", "dev": true, "requires": { - "@babel/types": "^7.10.1", + "@babel/types": "^7.10.2", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -1331,9 +1331,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/template": { @@ -1365,9 +1365,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -1716,9 +1716,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/template": { @@ -1733,9 +1733,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -1868,9 +1868,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/template": { @@ -1885,9 +1885,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -2014,9 +2014,9 @@ "dev": true }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -2120,13 +2120,13 @@ } }, "@babel/preset-env": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.1.tgz", - "integrity": "sha512-bGWNfjfXRLnqbN2T4lB3pMfoic8dkRrmHpVZamSFHzGy5xklyHTobZ28TVUD2grhE5WDnu67tBj8oslIhkiOMQ==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.2.tgz", + "integrity": "sha512-MjqhX0RZaEgK/KueRzh+3yPSk30oqDKJ5HP5tqTSB1e2gzGS3PLy7K0BIpnp78+0anFuSwOeuCf1zZO7RzRvEA==", "dev": true, "requires": { "@babel/compat-data": "^7.10.1", - "@babel/helper-compilation-targets": "^7.10.1", + "@babel/helper-compilation-targets": "^7.10.2", "@babel/helper-module-imports": "^7.10.1", "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-proposal-async-generator-functions": "^7.10.1", @@ -2183,7 +2183,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.10.1", "@babel/plugin-transform-unicode-regex": "^7.10.1", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.10.1", + "@babel/types": "^7.10.2", "browserslist": "^4.12.0", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", @@ -2198,9 +2198,9 @@ "dev": true }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.1", @@ -2237,9 +2237,9 @@ } }, "@babel/runtime": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.1.tgz", - "integrity": "sha512-nQbbCbQc9u/rpg1XCxoMYQTbSMVZjCDxErQ1ClCn9Pvcmv1lGads19ep0a2VsEiIJeHqjZley6EQGEC3Yo1xMA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz", + "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" @@ -2284,60 +2284,15 @@ "to-fast-properties": "^2.0.0" } }, - "@definitelytyped/header-parser": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.36.tgz", - "integrity": "sha512-rzlKeKfNLa+uAvEn64bhSc/ULbOUFepxcpV8WcobVH00Jiknu3gPOTOSnT9CgCLNtKYrcOCUTWmXkt0nV02t7g==", - "dev": true, - "requires": { - "@definitelytyped/typescript-versions": "^0.0.36", - "@types/parsimmon": "^1.10.1", - "parsimmon": "^1.13.0" - } - }, - "@definitelytyped/typescript-versions": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.36.tgz", - "integrity": "sha512-ci+468ddCIOaAUGVJvVQ6RdHRC6qfkvQgZ4CuITyZJx0n6qrUU+iEqXIuoIb9Nq9yuhHu6UwK9kg5OXCfahFog==", - "dev": true - }, - "@definitelytyped/utils": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.36.tgz", - "integrity": "sha512-gBmPS02uONxbQw1uV5TE4O+HmRNrQSLSjKPAYfsRn2Mnan4mCZAXrdfp3Zburj0xQyEtCt0SEDe2Px3txZJOKQ==", - "dev": true, - "requires": { - "@definitelytyped/typescript-versions": "^0.0.36", - "@types/node": "^12.12.29", - "charm": "^1.0.2", - "fs-extra": "^8.1.0", - "fstream": "^1.0.12", - "npm-registry-client": "^8.6.0", - "tar": "^2.2.2", - "tar-stream": "1.6.2" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, "@istanbuljs/load-nyc-config": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", - "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { "camelcase": "^5.3.1", "find-up": "^4.1.0", + "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" }, @@ -2436,12 +2391,12 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.0.2.tgz", - "integrity": "sha512-ER3bSS/A/pKQT/hjMGCK8UQzlL0yLjuCZ/G8CDFJFVTfl3X65fvq2lNYqOG8JPTfrPa2RULCdwfOyFjZEMNExQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.1.0.tgz", + "integrity": "sha512-D52KwdgkjYc+fmTZKW7CZpH5ZBJREJKZXRrveMiRCmlzZ+Rw9wRVJ1JAmHQ9b/+Ehy1ZeaylofDB9wwXUt83wg==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "3.0.2", + "@typescript-eslint/experimental-utils": "3.1.0", "functional-red-black-tree": "^1.0.1", "regexpp": "^3.0.0", "semver": "^7.3.2", @@ -2457,33 +2412,33 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.0.2.tgz", - "integrity": "sha512-4Wc4EczvoY183SSEnKgqAfkj1eLtRgBQ04AAeG+m4RhTVyaazxc1uI8IHf0qLmu7xXe9j1nn+UoDJjbmGmuqXQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.1.0.tgz", + "integrity": "sha512-Zf8JVC2K1svqPIk1CB/ehCiWPaERJBBokbMfNTNRczCbQSlQXaXtO/7OfYz9wZaecNvdSvVADt6/XQuIxhC79w==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "3.0.2", + "@typescript-eslint/typescript-estree": "3.1.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.0.2.tgz", - "integrity": "sha512-80Z7s83e8QXHNUspqVlWwb4t5gdz/1bBBmafElbK1wwAwiD/yvJsFyHRxlEpNrt4rdK6eB3p+2WEFkEDHAKk9w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.1.0.tgz", + "integrity": "sha512-NcDSJK8qTA2tPfyGiPes9HtVKLbksmuYjlgGAUs7Ld2K0swdWibnCq9IJx9kJN8JJdgUJSorFiGaPHBgH81F/Q==", "dev": true, "requires": { "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "3.0.2", - "@typescript-eslint/typescript-estree": "3.0.2", + "@typescript-eslint/experimental-utils": "3.1.0", + "@typescript-eslint/typescript-estree": "3.1.0", "eslint-visitor-keys": "^1.1.0" } }, "@typescript-eslint/typescript-estree": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.0.2.tgz", - "integrity": "sha512-cs84mxgC9zQ6viV8MEcigfIKQmKtBkZNDYf8Gru2M+MhnA6z9q0NFMZm2IEzKqAwN8lY5mFVd1Z8DiHj6zQ3Tw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.1.0.tgz", + "integrity": "sha512-+4nfYauqeQvK55PgFrmBWFVYb6IskLyOosYEmhH3mSVhfBp9AIJnjExdgDmKWoOBHRcPM8Ihfm2BFpZf0euUZQ==", "dev": true, "requires": { "debug": "^4.1.1", @@ -3738,43 +3693,128 @@ "is-obj": "^2.0.0" } }, - "dts-critic": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.2.4.tgz", - "integrity": "sha512-KdW/qVKydHF8HkFBe3hNqXRIDUwSqioTOxVAUS7tbo0++vlRNq7wluCfTgi5J26bS1L4ybJvN22BBVRR5Cp2wQ==", + "dtslint": { + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.10.tgz", + "integrity": "sha512-QGSX0nNBLWnw3N9MJKJ8OtmU/r439bwS53RF+vnM4Vt62vCDGQa2yKEBMWpnTS2Few38i7y+UgrfL2OAPepkUw==", "dev": true, "requires": { - "@definitelytyped/header-parser": "0.0.34", - "command-exists": "^1.2.8", - "rimraf": "^3.0.2", - "semver": "^6.2.0", - "tmp": "^0.2.1", - "yargs": "^12.0.5" + "@definitelytyped/header-parser": "^0.0.36", + "@definitelytyped/typescript-versions": "^0.0.36", + "@definitelytyped/utils": "^0.0.36", + "dts-critic": "^3.2.4", + "fs-extra": "^6.0.1", + "json-stable-stringify": "^1.0.1", + "strip-json-comments": "^2.0.1", + "tslint": "5.14.0", + "yargs": "^15.1.0" }, "dependencies": { "@definitelytyped/header-parser": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.34.tgz", - "integrity": "sha512-/yTifMAhYKB8SFH3pSlAQmcBzrk7UyqpEz9/vJKaMKdzRpJrxmc1zWMP+hwJtJTVCjAK+Ul4m3i1GZQrTZfymw==", + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.36.tgz", + "integrity": "sha512-rzlKeKfNLa+uAvEn64bhSc/ULbOUFepxcpV8WcobVH00Jiknu3gPOTOSnT9CgCLNtKYrcOCUTWmXkt0nV02t7g==", "dev": true, "requires": { - "@definitelytyped/typescript-versions": "^0.0.34", + "@definitelytyped/typescript-versions": "^0.0.36", "@types/parsimmon": "^1.10.1", "parsimmon": "^1.13.0" } }, "@definitelytyped/typescript-versions": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.34.tgz", - "integrity": "sha512-7IqWcbHKYbfY8Lt7AigXDa29cbz3gynzBHMjwMUCeLnex8D682M6OW8uBLouvVHCr+YENL58tQB3dn0Zos8mFQ==", + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.36.tgz", + "integrity": "sha512-ci+468ddCIOaAUGVJvVQ6RdHRC6qfkvQgZ4CuITyZJx0n6qrUU+iEqXIuoIb9Nq9yuhHu6UwK9kg5OXCfahFog==", "dev": true }, + "@definitelytyped/utils": { + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.36.tgz", + "integrity": "sha512-gBmPS02uONxbQw1uV5TE4O+HmRNrQSLSjKPAYfsRn2Mnan4mCZAXrdfp3Zburj0xQyEtCt0SEDe2Px3txZJOKQ==", + "dev": true, + "requires": { + "@definitelytyped/typescript-versions": "^0.0.36", + "@types/node": "^12.12.29", + "charm": "^1.0.2", + "fs-extra": "^8.1.0", + "fstream": "^1.0.12", + "npm-registry-client": "^8.6.0", + "tar": "^2.2.2", + "tar-stream": "1.6.2" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, + "dts-critic": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.2.4.tgz", + "integrity": "sha512-KdW/qVKydHF8HkFBe3hNqXRIDUwSqioTOxVAUS7tbo0++vlRNq7wluCfTgi5J26bS1L4ybJvN22BBVRR5Cp2wQ==", + "dev": true, + "requires": { + "@definitelytyped/header-parser": "0.0.34", + "command-exists": "^1.2.8", + "rimraf": "^3.0.2", + "semver": "^6.2.0", + "tmp": "^0.2.1", + "yargs": "^12.0.5" + }, + "dependencies": { + "@definitelytyped/header-parser": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.34.tgz", + "integrity": "sha512-/yTifMAhYKB8SFH3pSlAQmcBzrk7UyqpEz9/vJKaMKdzRpJrxmc1zWMP+hwJtJTVCjAK+Ul4m3i1GZQrTZfymw==", + "dev": true, + "requires": { + "@definitelytyped/typescript-versions": "^0.0.34", + "@types/parsimmon": "^1.10.1", + "parsimmon": "^1.13.0" + } + }, + "@definitelytyped/typescript-versions": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.34.tgz", + "integrity": "sha512-7IqWcbHKYbfY8Lt7AigXDa29cbz3gynzBHMjwMUCeLnex8D682M6OW8uBLouvVHCr+YENL58tQB3dn0Zos8mFQ==", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "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" + } + } + } + }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -3866,46 +3906,9 @@ "requires": { "rimraf": "^3.0.0" } - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "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" - } } } }, - "dtslint": { - "version": "3.6.10", - "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.10.tgz", - "integrity": "sha512-QGSX0nNBLWnw3N9MJKJ8OtmU/r439bwS53RF+vnM4Vt62vCDGQa2yKEBMWpnTS2Few38i7y+UgrfL2OAPepkUw==", - "dev": true, - "requires": { - "@definitelytyped/header-parser": "^0.0.36", - "@definitelytyped/typescript-versions": "^0.0.36", - "@definitelytyped/utils": "^0.0.36", - "dts-critic": "^3.2.4", - "fs-extra": "^6.0.1", - "json-stable-stringify": "^1.0.1", - "strip-json-comments": "^2.0.1", - "tslint": "5.14.0", - "yargs": "^15.1.0" - } - }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -3917,9 +3920,9 @@ } }, "electron-to-chromium": { - "version": "1.3.453", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.453.tgz", - "integrity": "sha512-IQbCfjJR0NDDn/+vojTlq7fPSREcALtF8M1n01gw7nQghCtfFYrJ2dfhsp8APr8bANoFC8vRTFVXMOGpT0eetw==", + "version": "1.3.456", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.456.tgz", + "integrity": "sha512-jaVZ9+8HG2qvEN7c9r5EVguvhtevITJou4L10XuqoiZUoXIMF5qLG1pB9raP3WFcME4exDZRq1b6qyCA+u5Vew==", "dev": true }, "emoji-regex": { @@ -4550,9 +4553,9 @@ "dev": true }, "flow-bin": { - "version": "0.125.1", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.125.1.tgz", - "integrity": "sha512-jEury9NTXylxQEOAXLWEE945BjBwYcMwwKVnb+5XORNwMQE7i5hQYF0ysYfsaaYOa7rW/U16rHBfwLuaZfWV7A==", + "version": "0.126.0", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.126.0.tgz", + "integrity": "sha512-91nCLt3B0drolW9bXmTssNxhshkkGDwokVyuquBA7TeHMCajbMNxm77JI0JydzHEv9xa6nMbBJXYyM6XW8Jzgg==", "dev": true }, "foreground-child": { @@ -4566,9 +4569,9 @@ }, "dependencies": { "cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -4726,6 +4729,12 @@ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, "get-stdin": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", @@ -5250,9 +5259,9 @@ }, "dependencies": { "cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -6027,9 +6036,9 @@ "dev": true }, "nyc": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", - "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, "requires": { "@istanbuljs/load-nyc-config": "^1.0.0", @@ -6040,6 +6049,7 @@ "find-cache-dir": "^3.2.0", "find-up": "^4.1.0", "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", "glob": "^7.1.6", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-hook": "^3.0.0", diff --git a/package.json b/package.json index d757bee48d4..66751771c63 100644 --- a/package.json +++ b/package.json @@ -45,12 +45,12 @@ }, "dependencies": {}, "devDependencies": { - "@babel/core": "7.10.1", + "@babel/core": "7.10.2", "@babel/plugin-transform-flow-strip-types": "7.10.1", - "@babel/preset-env": "7.10.1", + "@babel/preset-env": "7.10.2", "@babel/register": "7.10.1", - "@typescript-eslint/eslint-plugin": "3.0.2", - "@typescript-eslint/parser": "3.0.2", + "@typescript-eslint/eslint-plugin": "3.1.0", + "@typescript-eslint/parser": "3.1.0", "babel-eslint": "10.1.0", "chai": "4.2.0", "cspell": "4.0.63", @@ -61,9 +61,9 @@ "eslint-plugin-import": "2.20.2", "eslint-plugin-istanbul": "0.1.1", "eslint-plugin-node": "11.1.0", - "flow-bin": "0.125.1", + "flow-bin": "0.126.0", "mocha": "7.2.0", - "nyc": "15.0.1", + "nyc": "15.1.0", "prettier": "2.0.5", "typescript": "3.9.3" }