diff --git a/circle.yml b/circle.yml index d0d2d871b0cb..62304fb1e862 100644 --- a/circle.yml +++ b/circle.yml @@ -318,11 +318,10 @@ jobs: - run: command: ls -la types working_directory: cli - - run: - command: ls -la chai - working_directory: cli/types - run: command: yarn lerna exec --scope cypress "yarn dtslint" + - run: + command: yarn type-check --ignore-progress - store-npm-logs "server-unit-tests": diff --git a/cli/package.json b/cli/package.json index a0ea40aa905c..b9275049473b 100644 --- a/cli/package.json +++ b/cli/package.json @@ -22,6 +22,16 @@ "dependencies": { "@cypress/listr-verbose-renderer": "0.4.1", "@cypress/xvfb": "1.2.4", + "@types/blob-util": "1.3.3", + "@types/bluebird": "3.5.29", + "@types/chai": "4.2.7", + "@types/chai-jquery": "1.1.40", + "@types/jquery": "3.3.31", + "@types/lodash": "4.14.149", + "@types/minimatch": "3.0.3", + "@types/mocha": "5.2.7", + "@types/sinon": "7.5.1", + "@types/sinon-chai": "3.2.3", "@types/sizzle": "2.3.2", "arch": "2.1.1", "bluebird": "3.7.2", @@ -60,16 +70,6 @@ "devDependencies": { "@cypress/sinon-chai": "1.1.0", "@packages/root": "*", - "@types/blob-util": "1.3.3", - "@types/bluebird": "3.5.29", - "@types/chai": "4.2.7", - "@types/chai-jquery": "1.1.40", - "@types/jquery": "3.3.31", - "@types/lodash": "4.14.149", - "@types/minimatch": "3.0.3", - "@types/mocha": "5.2.7", - "@types/sinon": "7.5.1", - "@types/sinon-chai": "3.2.3", "babel-cli": "6.26.0", "babel-preset-es2015": "6.24.1", "chai": "3.5.0", diff --git a/cli/scripts/post-install.js b/cli/scripts/post-install.js index 3115d45c332f..a4f46e8a5bdb 100644 --- a/cli/scripts/post-install.js +++ b/cli/scripts/post-install.js @@ -1,64 +1,28 @@ -#!/usr/bin/env node - -const { includeTypes } = require('./utils') -const shell = require('shelljs') -const { join } = require('path') -const resolvePkg = require('resolve-pkg') - -shell.set('-v') // verbose -shell.set('-e') // any error is fatal - -// We include the TypeScript definitions for the bundled 3rd party tools -// thus we need to copy them from "dev" dependencies into our types folder -// and we need to sometimes tweak these types files to use relative paths -// This ensures that globals like Cypress.$, Cypress._ etc are property typed -// yet we do not install "@types/.." packages with "npm install cypress" -// because they can conflict with user's own libraries - -includeTypes.forEach((folder) => { - const source = resolvePkg(`@types/${folder}`, { cwd: join(__dirname, '..', '..') }) - - shell.cp('-R', source, 'types') +const fs = require('../lib/fs') +const path = require('path') + +/** + * https://github.com/cypress-io/cypress/pull/5780 + * Folder names in "node_modules/@types" that were copied to cli/types to generate index.d.ts. + * They cause type errors in type checker. So, they should be removed. + */ +const includeTypes = [ + 'blob-util', + 'bluebird', + 'lodash', + 'mocha', + 'minimatch', + 'sinon', + 'sinon-chai', + 'chai', + 'chai-jquery', + 'jquery', +] + +includeTypes.forEach((t) => { + const dir = path.join(__dirname, '../types', t) + + if (fs.existsSync(dir)) { + fs.removeSync(dir) + } }) - -// jQuery v3.3.x includes "dist" folder that just references back to itself -// causing dtslint to think there are double definitions. Remove that folder. -const typesJqueryDistFolder = join('types', 'jquery', 'dist') - -shell.rm('-rf', typesJqueryDistFolder) - -// fix paths to Chai, jQuery and other types to be relative -shell.sed( - '-i', - '', - '', - join('types', 'chai-jquery', 'index.d.ts'), -) - -shell.sed( - '-i', - '', - '', - join('types', 'chai-jquery', 'index.d.ts'), -) - -const sinonChaiFilename = join('types', 'sinon-chai', 'index.d.ts') - -shell.sed( - '-i', - '', - '', - sinonChaiFilename, -) - -// also use relative import via path for sinon-chai -// there is reference comment line we need to fix to be relative -shell.sed( - '-i', - '', - '', - sinonChaiFilename, -) - -// and an import sinon line to be changed to relative path -shell.sed('-i', 'from \'sinon\';', 'from \'../sinon\';', sinonChaiFilename) diff --git a/cli/scripts/start-build.js b/cli/scripts/start-build.js index b9263973e5f0..7040e4a9d5bc 100755 --- a/cli/scripts/start-build.js +++ b/cli/scripts/start-build.js @@ -1,7 +1,5 @@ #!/usr/bin/env node -const { includeTypes } = require('./utils') -const { join } = require('path') const shell = require('shelljs') shell.set('-v') // verbose @@ -15,12 +13,6 @@ shell.cp('NPM_README.md', 'build/README.md') shell.cp('.release.json', 'build/.release.json') // copies our typescript definitions shell.cp('-R', 'types/*.ts', 'build/types/') -// copies 3rd party typescript definitions -includeTypes.forEach((folder) => { - const source = join('types', folder) - - shell.cp('-R', source, 'build/types') -}) shell.exec('babel lib -d build/lib') shell.exec('babel index.js -o build/index.js') diff --git a/cli/scripts/utils.js b/cli/scripts/utils.js deleted file mode 100644 index 8c215081d438..000000000000 --- a/cli/scripts/utils.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Folder names in "node_modules/@types" that we should include - * when we bundle Cypress NPM package. These folder have ".d.ts" - * definition files that we will need to include with our NPM package. - */ -const includeTypes = [ - 'blob-util', - 'bluebird', - 'lodash', - 'mocha', - 'minimatch', - 'sinon', - 'sinon-chai', - 'chai', - 'chai-jquery', - 'jquery', -] - -module.exports = { includeTypes } diff --git a/cli/types/cy-blob-util.d.ts b/cli/types/cy-blob-util.d.ts deleted file mode 100644 index a70481fa30fc..000000000000 --- a/cli/types/cy-blob-util.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -// Shim definition to export a namespace. Cypress is actually a global module -// so import/export isn't allowed there. We import here and define a global module -// so that Cypress can get and use the Blob type - -// tslint:disable-next-line:no-implicit-dependencies -import * as blobUtil from './blob-util' - -export = BlobUtil -export as namespace BlobUtil - -declare namespace BlobUtil { - type BlobUtilStatic = typeof blobUtil -} diff --git a/cli/types/cy-bluebird.d.ts b/cli/types/cy-bluebird.d.ts deleted file mode 100644 index c729bd79c026..000000000000 --- a/cli/types/cy-bluebird.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// Shim definition to export a namespace. Cypress is actually a global module -// so import/export isn't allowed there. We import here and define a global module -// so that Cypress can get and use the Blob type -import BluebirdStatic = require('./bluebird') - -export = Bluebird -export as namespace Bluebird - -declare namespace Bluebird { - type BluebirdStatic = typeof BluebirdStatic -} diff --git a/cli/types/cy-chai.d.ts b/cli/types/cy-chai.d.ts deleted file mode 100644 index 8cd40e8e3668..000000000000 --- a/cli/types/cy-chai.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Shim definition to export a namespace. Cypress is actually a global module -// so import/export isn't allowed there. We import here and define a global module -/// -declare namespace Chai { - interface Include { - html(html: string): Assertion - text(text: string): Assertion - value(text: string): Assertion - } -} diff --git a/cli/types/cy-minimatch.d.ts b/cli/types/cy-minimatch.d.ts deleted file mode 100644 index f94e54e3d92b..000000000000 --- a/cli/types/cy-minimatch.d.ts +++ /dev/null @@ -1,96 +0,0 @@ -// I was trying to avoid relying on "import" of actual module from "minimatch" -// because it would not work in test project, and the only reliable way -// to get around type errors finally was to copy the minimal minimatch function -// definition from "minimatch/index.d.ts" here and just keep it in our code - -export = Minimatch -export as namespace Minimatch - -interface MinimatchOptions { - /** - * Dump a ton of stuff to stderr. - * - * @default false - */ - debug?: boolean - - /** - * Do not expand {a,b} and {1..3} brace sets. - * - * @default false - */ - nobrace?: boolean - - /** - * Disable ** matching against multiple folder names. - * - * @default false - */ - noglobstar?: boolean - - /** - * Allow patterns to match filenames starting with a period, - * even if the pattern does not explicitly have a period in that spot. - * - * @default false - */ - dot?: boolean - - /** - * Disable "extglob" style patterns like +(a|b). - * - * @default false - */ - noext?: boolean - - /** - * Perform a case-insensitive match. - * - * @default false - */ - nocase?: boolean - - /** - * When a match is not found by minimatch.match, - * return a list containing the pattern itself if this option is set. - * Otherwise, an empty list is returned if there are no matches. - * - * @default false - */ - nonull?: boolean - - /** - * If set, then patterns without slashes will be matched against - * the basename of the path if it contains slashes. - * - * @default false - */ - matchBase?: boolean - - /** - * Suppress the behavior of treating # - * at the start of a pattern as a comment. - * - * @default false - */ - nocomment?: boolean - - /** - * Suppress the behavior of treating a leading ! character as negation. - * - * @default false - */ - nonegate?: boolean - - /** - * Returns from negate expressions the same as if they were not negated. - * (Ie, true on a hit, false on a miss.) - * - * @default false - */ - flipNegate?: boolean -} - -declare namespace Minimatch { - function minimatch(target: string, pattern: string, options?: MinimatchOptions): boolean -} diff --git a/cli/types/cy-moment.d.ts b/cli/types/cy-moment.d.ts deleted file mode 100644 index d68f10b9b574..000000000000 --- a/cli/types/cy-moment.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import moment = require('moment') -export = Moment -export as namespace Moment - -declare namespace Moment { - type MomentStatic = typeof moment -} diff --git a/cli/types/index.d.ts b/cli/types/index.d.ts index fe0dfa9c2aad..23226d15ecf1 100644 --- a/cli/types/index.d.ts +++ b/cli/types/index.d.ts @@ -4,47 +4,52 @@ // Mike Woudenberg // Robbert van Markus // Nicholas Boll -// TypeScript Version: 2.9 +// TypeScript Version: 3.0 // Updated by the Cypress team: https://www.cypress.io/about/ -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// +/// +/// +/// +/// +/// +/// +/// +/// +/// // jQuery includes dependency "sizzle" that provides types // so we include it too in "node_modules/sizzle". // This way jQuery can load it using 'reference types="sizzle"' directive -// "moment" types are with "node_modules/moment" -/// - // load ambient declaration for "cypress" NPM module // hmm, how to load it better? /// // Cypress, cy, Log inherits EventEmitter. type EventEmitter2 = import("eventemitter2").EventEmitter2 +type Bluebird = import("bluebird") type Nullable = T | null interface EventEmitter extends EventEmitter2 { proxyTo: (cy: Cypress.cy) => null emitMap: (eventName: string, args: any[]) => Array<(...args: any[]) => any> - emitThen: (eventName: string, args: any[]) => Bluebird.BluebirdStatic + emitThen: (eventName: string, args: any[]) => Bluebird } // Cypress adds chai expect and assert to global declare const expect: Chai.ExpectStatic declare const assert: Chai.AssertStatic +// Cypress extension of chai +declare namespace Chai { + interface Include { + html(html: string): Assertion + text(text: string): Assertion + value(text: string): Assertion + } +} + declare namespace Cypress { type FileContents = string | any[] | object type HistoryDirection = "back" | "forward" @@ -182,13 +187,13 @@ declare namespace Cypress { * @example * Cypress.Blob.method() */ - Blob: BlobUtil.BlobUtilStatic + Blob: typeof import('blob-util') /** * Cypress automatically includes minimatch and exposes it as Cypress.minimatch. * * @see https://on.cypress.io/minimatch */ - minimatch: typeof Minimatch.minimatch + minimatch: typeof import('minimatch') /** * Cypress automatically includes moment.js and exposes it as Cypress.moment. * @@ -197,7 +202,7 @@ declare namespace Cypress { * @example * const todaysDate = Cypress.moment().format("MMM DD, YYYY") */ - moment: Moment.MomentStatic + moment: typeof import('moment') /** * Cypress automatically includes Bluebird and exposes it as Cypress.Promise. * @@ -206,7 +211,7 @@ declare namespace Cypress { * @example * new Cypress.Promise((resolve, reject) => { ... }) */ - Promise: Bluebird.BluebirdStatic + Promise: typeof import('bluebird') /** * Cypress version string. i.e. "1.1.2" * @see https://on.cypress.io/version diff --git a/package.json b/package.json index d889d2d14cf2..77cb721310aa 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "test-unit": "lerna exec yarn test-unit --ignore \"'@packages/{coffee,desktop-gui,driver,root,static,web-config}'\"", "pretest-watch": "yarn ensure-deps", "test-watch": "lerna exec yarn test-watch --ignore \"'@packages/{coffee,desktop-gui,driver,root,static,web-config}'\"", + "type-check": "node scripts/type_check", "verify:mocha:results": "node ./scripts/verify_mocha_results", "prewatch": "yarn ensure-deps", "watch": "lerna exec yarn watch --parallel --stream" @@ -88,6 +89,8 @@ "@types/chai-enzyme": "0.6.7", "@types/classnames": "2.2.9", "@types/debug": "4.1.5", + "@types/enzyme": "3.9.1", + "@types/enzyme-adapter-react-16": "1.0.5", "@types/execa": "0.9.0", "@types/fs-extra": "8.0.1", "@types/glob": "7.1.1", @@ -96,7 +99,8 @@ "@types/mini-css-extract-plugin": "0.8.0", "@types/mocha": "5.2.7", "@types/node": "12.12.21", - "@types/ramda": "0.26.38", + "@types/ramda": "0.25.47", + "@types/react": "16.9.23", "@types/react-dom": "16.9.4", "@types/request-promise": "4.1.45", "@types/sinon-chai": "3.2.3", @@ -121,6 +125,7 @@ "decaffeinate": "6.0.9", "del": "3.0.0", "electron-builder": "20.39.0", + "enzyme-adapter-react-16": "1.12.1", "eslint": "6.8.0", "eslint-plugin-cypress": "2.10.3", "eslint-plugin-json-format": "2.0.0", @@ -150,6 +155,7 @@ "lazy-ass": "1.6.0", "lerna": "3.18.3", "lint-staged": "9.4.1", + "listr": "0.14.3", "lodash": "4.17.15", "make-empty-github-commit": "1.2.0", "mocha": "3.5.3", diff --git a/packages/driver/src/cy/keyboard.ts b/packages/driver/src/cy/keyboard.ts index 820bff45b99c..6f951fb07de6 100644 --- a/packages/driver/src/cy/keyboard.ts +++ b/packages/driver/src/cy/keyboard.ts @@ -7,6 +7,8 @@ import { USKeyboard } from '../cypress/UsKeyboardLayout' import * as $dom from '../dom' import * as $document from '../dom/document' import * as $elements from '../dom/elements' +// eslint-disable-next-line no-duplicate-imports +import { HTMLTextLikeElement, HTMLTextLikeInputElement } from '../dom/elements' import * as $selection from '../dom/selection' import $window from '../dom/window' @@ -583,6 +585,7 @@ const keyToModifierMap = { } export interface typeOptions { + id: string $el: JQuery chars: string force?: boolean @@ -601,7 +604,6 @@ export interface typeOptions { onNoMatchingSpecialChars?: Function onBeforeSpecialCharAction?: Function prevValue?: string - id?: string } export class Keyboard { @@ -735,7 +737,7 @@ export class Keyboard { // simulatedDefaultOnly keys will not send any events, and cannot be canceled if (key.simulatedDefaultOnly) { - key.simulatedDefault!(activeEl, key, options) + key.simulatedDefault!(activeEl as HTMLTextLikeElement, key, options) return null } @@ -1124,7 +1126,7 @@ export class Keyboard { return } - return simulatedDefault(el, key, options) + return simulatedDefault(el as HTMLTextLikeElement, key, options) } } diff --git a/packages/driver/src/dom/elements.ts b/packages/driver/src/dom/elements.ts index 15275d34c770..0768a3f1819d 100644 --- a/packages/driver/src/dom/elements.ts +++ b/packages/driver/src/dom/elements.ts @@ -638,7 +638,7 @@ const isAttached = function ($el) { // is technically bound to a different document // but c'mon const isIn = (el) => { - return $.contains(doc, el) + return $.contains(doc as any, el) } // make sure the document is currently diff --git a/packages/reporter/package.json b/packages/reporter/package.json index cb45a9fa38c3..3114e7ff358f 100644 --- a/packages/reporter/package.json +++ b/packages/reporter/package.json @@ -21,7 +21,6 @@ "@packages/socket": "*", "@packages/web-config": "*", "@types/chai-enzyme": "0.6.7", - "@types/enzyme": "3.10.4", "chai": "3.5.0", "chai-enzyme": "1.0.0-beta.1", "classnames": "2.2.6", diff --git a/packages/reporter/src/commands/command.tsx b/packages/reporter/src/commands/command.tsx index f638446b589e..f11084c16d1a 100644 --- a/packages/reporter/src/commands/command.tsx +++ b/packages/reporter/src/commands/command.tsx @@ -98,12 +98,16 @@ const Aliases = observer(({ model, aliasesWithDuplicates }: AliasesProps) => { ) }) -const Message = observer(({ model }) => ( +interface MessageProps { + model: CommandModel +} + +const Message = observer(({ model }: MessageProps) => ( )) diff --git a/packages/reporter/src/global.d.ts b/packages/reporter/src/global.d.ts new file mode 100644 index 000000000000..442d8a8132b7 --- /dev/null +++ b/packages/reporter/src/global.d.ts @@ -0,0 +1 @@ +declare const expect: Chai.ExpectStatic diff --git a/packages/reporter/src/header/header.spec.tsx b/packages/reporter/src/header/header.spec.tsx index ce0b2575c0ae..3c415f7b1482 100644 --- a/packages/reporter/src/header/header.spec.tsx +++ b/packages/reporter/src/header/header.spec.tsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, { ReactElement } from 'react' import { shallow } from 'enzyme' import sinon, { SinonSpy } from 'sinon' @@ -24,7 +24,7 @@ describe('
', () => { it('renders a tooltip around focus tests button', () => { const title = shallow(
) .find('Tooltip') - .prop('title') + .prop('title') const component = shallow(title) diff --git a/packages/reporter/src/hooks/hook-model.spec.ts b/packages/reporter/src/hooks/hook-model.spec.ts index fda9b2154bb8..7d9ebb070427 100644 --- a/packages/reporter/src/hooks/hook-model.spec.ts +++ b/packages/reporter/src/hooks/hook-model.spec.ts @@ -1,4 +1,5 @@ import sinon from 'sinon' + import Hook from './hook-model' import CommandModel from '../commands/command-model' diff --git a/packages/reporter/src/lib/scroller.ts b/packages/reporter/src/lib/scroller.ts index cdca715fd7d1..0440faae704b 100644 --- a/packages/reporter/src/lib/scroller.ts +++ b/packages/reporter/src/lib/scroller.ts @@ -129,7 +129,7 @@ export class Scroller { this._container = null this._userScroll = true this._userScrollCount = 0 - clearTimeout(this._countUserScrollsTimeout) + clearTimeout(this._countUserScrollsTimeout as TimeoutID) this._countUserScrollsTimeout = undefined } } diff --git a/packages/reporter/src/runnables/runnables-store.ts b/packages/reporter/src/runnables/runnables-store.ts index 01cff455568a..8b88e2f4eed8 100644 --- a/packages/reporter/src/runnables/runnables-store.ts +++ b/packages/reporter/src/runnables/runnables-store.ts @@ -26,6 +26,8 @@ interface Props { export type LogProps = AgentProps | CommandProps | RouteProps +export type RunnableArray = Array + type Log = AgentModel | CommandModel | RouteModel export interface RootRunnable { @@ -38,7 +40,7 @@ type TestOrSuite = T extends TestProps ? TestProps : SuiteProps class RunnablesStore { @observable isReady = defaults.isReady - @observable runnables: Array = [] + @observable runnables: RunnableArray = [] hasTests: boolean = false hasSingleTest: boolean = false diff --git a/packages/reporter/src/runnables/runnables.spec.tsx b/packages/reporter/src/runnables/runnables.spec.tsx index c9b7c4eb0984..c117c1a72c78 100644 --- a/packages/reporter/src/runnables/runnables.spec.tsx +++ b/packages/reporter/src/runnables/runnables.spec.tsx @@ -128,7 +128,7 @@ describe('', () => { context('', () => { it('renders a runnable for each runnable in model', () => { - const component = shallow() + const component = shallow() expect(component.find('Runnable').length).to.equal(2) }) diff --git a/packages/reporter/src/runnables/runnables.tsx b/packages/reporter/src/runnables/runnables.tsx index bc508eb7fb92..c21f0bf167b0 100644 --- a/packages/reporter/src/runnables/runnables.tsx +++ b/packages/reporter/src/runnables/runnables.tsx @@ -5,7 +5,7 @@ import React, { Component } from 'react' import AnError, { Error } from '../errors/an-error' import Runnable from './runnable-and-suite' -import { RunnablesStore } from './runnables-store' +import { RunnablesStore, RunnableArray } from './runnables-store' import { Scroller } from '../lib/scroller' import { AppState } from '../lib/app-state' @@ -16,7 +16,11 @@ const noTestsError = (specPath: string) => ({ message: 'We could not detect any tests in the above file. Write some tests and re-run.', }) -const RunnablesList = observer(({ runnables }) => ( +interface RunnablesListProps { + runnables: RunnableArray +} + +const RunnablesList = observer(({ runnables }: RunnablesListProps) => (
    {_.map(runnables, (runnable) => )} diff --git a/packages/reporter/tsconfig.json b/packages/reporter/tsconfig.json index 7b265c136b17..91ca16afbdd2 100644 --- a/packages/reporter/tsconfig.json +++ b/packages/reporter/tsconfig.json @@ -9,6 +9,7 @@ */ "allowJs": true, "jsx": "react", + "outDir": "dist", "noImplicitAny": true, "noImplicitThis": true, "preserveWatchOutput": true, @@ -45,12 +46,6 @@ // "baseUrl": "../", /* Base directory to resolve non-absolute module names. */ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": ["../driver/src"], /* List of root folders whose combined content represents the structure of the project at runtime. */ - "typeRoots": [ - "../driver/node_modules", - "../../cli/types/index.d.ts", - "../driver/src", - "./node_modules" - ], /* List of folders to include type definitions from. */ // "types": [], /* Type declaration files to be included in compilation. */ "allowSyntheticDefaultImports": true, "esModuleInterop": true, diff --git a/packages/runner/package.json b/packages/runner/package.json index ce43cf1ed8c9..a61d0e5e373a 100644 --- a/packages/runner/package.json +++ b/packages/runner/package.json @@ -21,8 +21,6 @@ "@packages/reporter": "*", "@packages/socket": "*", "@packages/web-config": "*", - "@types/enzyme": "3.10.4", - "@types/react": "16.9.21", "ansi-to-html": "0.6.14", "bluebird": "3.5.0", "chai": "4.2.0", diff --git a/packages/runner/tsconfig.json b/packages/runner/tsconfig.json index 6e3efcf1d5cc..0cee70cbaa64 100644 --- a/packages/runner/tsconfig.json +++ b/packages/runner/tsconfig.json @@ -9,6 +9,7 @@ */ "allowJs": true, "jsx": "react", + "outDir": "dist", "noImplicitAny": false, "noImplicitThis": false, "preserveWatchOutput": true, @@ -45,12 +46,6 @@ // "baseUrl": "../", /* Base directory to resolve non-absolute module names. */ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": ["../driver/src"], /* List of root folders whose combined content represents the structure of the project at runtime. */ - "typeRoots": [ - "../driver/node_modules", - "../../cli", - "../driver/src", - "./node_modules", - ], /* List of folders to include type definitions from. */ // "types": [], /* Type declaration files to be included in compilation. */ "allowSyntheticDefaultImports": true, "esModuleInterop": true, diff --git a/packages/ui-components/tsconfig.json b/packages/ui-components/tsconfig.json index 046d5dca1994..4987f019216e 100644 --- a/packages/ui-components/tsconfig.json +++ b/packages/ui-components/tsconfig.json @@ -45,12 +45,6 @@ // "baseUrl": "../", /* Base directory to resolve non-absolute module names. */ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": ["../driver/src"], /* List of root folders whose combined content represents the structure of the project at runtime. */ - "typeRoots": [ - "../driver/node_modules", - "../../cli/types/index.d.ts", - "../driver/src", - "./node_modules" - ], /* List of folders to include type definitions from. */ // "types": [], /* Type declaration files to be included in compilation. */ "allowSyntheticDefaultImports": true, "esModuleInterop": true, diff --git a/packages/web-config/node-jsdom-setup.ts b/packages/web-config/node-jsdom-setup.ts index cbe9ae758ca3..87de82d75b14 100644 --- a/packages/web-config/node-jsdom-setup.ts +++ b/packages/web-config/node-jsdom-setup.ts @@ -1,6 +1,9 @@ import mockRequire from 'mock-require' import { JSDOM } from 'jsdom' import * as ansiEscapes from 'ansi-escapes' +import enzyme from 'enzyme' +import EnzymeAdapter from 'enzyme-adapter-react-16' +import ChaiEnzyme from 'chai-enzyme' declare global { module NodeJS { @@ -10,12 +13,21 @@ declare global { } } +interface RegisterDeps { + enzyme: typeof enzyme + EnzymeAdapter: typeof EnzymeAdapter + chaiEnzyme: typeof ChaiEnzyme + requireOverride: (...args: any[]) => any +} + +type TimeoutID = number + export const register = ({ enzyme, EnzymeAdapter, chaiEnzyme, requireOverride, -}) => { +}: RegisterDeps) => { const jsdom = new JSDOM('') const { window } = jsdom @@ -24,28 +36,31 @@ export const register = ({ // const chaiEnzyme = require('chai-enzyme') global.window = window - global.document = window.document - window.Selection = { prototype: { isCollapsed: {} } } + global.document = window.document; + + // DOMWindow doesn't have Selection yet. + (window as any).Selection = { prototype: { isCollapsed: {} } } + global.navigator = { userAgent: 'node.js', } - global.requestAnimationFrame = function (callback) { + global.requestAnimationFrame = function (callback: ((...args: any[]) => void)) { return setTimeout(callback, 0) } - global.cancelAnimationFrame = function (id) { + global.cancelAnimationFrame = function (id: TimeoutID) { clearTimeout(id) } - Object.keys(window.document.defaultView).forEach((property) => { + Object.keys(window.document.defaultView as Record).forEach((property) => { if ( property === 'localStorage' || property === 'sessionStorage' || typeof global[property] !== 'undefined' ) return - global[property] = window.document.defaultView[property] + global[property] = (window.document.defaultView as Record)[property] }) // enzyme, and therefore chai-enzyme, needs to be required after @@ -63,7 +78,7 @@ export const register = ({ const overrideRequire = () => { const _load = Module._load - Module._load = function (...args) { + Module._load = function (...args: any[]) { let browserPkg = args if (requireOverride) { @@ -107,7 +122,7 @@ after(() => { process.stdout.write(ansiEscapes.cursorShow) }) -export const returnMockRequire = (name, modExport = {}) => { +export const returnMockRequire = (name: string, modExport: object = {}) => { mockRequire(name, modExport) return require(name) diff --git a/packages/web-config/package.json b/packages/web-config/package.json index b859122d040c..9cf7e1a91952 100644 --- a/packages/web-config/package.json +++ b/packages/web-config/package.json @@ -13,6 +13,8 @@ "@packages/coffee": "*", "@types/copy-webpack-plugin": "5.0.0", "@types/html-webpack-plugin": "3.2.1", + "@types/jsdom": "^12.2.4", + "@types/mock-require": "^2.0.0", "@types/webpack": "4.41.0", "ansi-escapes": "4.3.0", "autoprefixer": "9.7.4", diff --git a/scripts/type_check.js b/scripts/type_check.js new file mode 100644 index 000000000000..409f83eb4859 --- /dev/null +++ b/scripts/type_check.js @@ -0,0 +1,93 @@ +const fs = require('fs') +const path = require('path') +const execa = require('execa') +const Listr = require('listr') +const commander = require('commander') + +const program = new commander.Command() + +program.usage('[options]') + +program +.option('-p, --project ', 'projects to check types (separated by commas)') +.option('--skip-lib-check', 'skip type checking of all declaration files (*.d.ts)') +.option('--ignore-progress', 'do not show progress') +.action((...args) => { + const projects = [] + const packageRoot = path.join(__dirname, '../packages') + const getPackagePath = (name) => { + if (name !== 'cli') { + return path.join(packageRoot, name) + } + + throw new Error(`type-check command doesn't check cli types. Use "npm run dtslint" in "cli" directory instead.`) + } + const addProject = (name) => { + return projects.push({ + name, + path: getPackagePath(name), + }) + } + + if (program.project) { + program.project.split(',').forEach((p) => addProject(p)) + } else { + fs.readdirSync(packageRoot).forEach((file) => { + const packagePath = getPackagePath(file) + + if (fs.lstatSync(packagePath).isDirectory() && fs.existsSync(path.join(packagePath, 'tsconfig.json'))) { + addProject(file) + } + }) + } + + const options = ['--noEmit', '--pretty'] + + if (program.skipLibCheck) { + options.push('--skipLibCheck') + } + + const tasks = new Listr(projects.map((proj) => { + return { + title: proj.name, + task: () => { + const cwd = proj.path + const tsc = require.resolve('typescript/bin/tsc') + + return execa(tsc, options, { + cwd, + }).catch((err) => { + throw { + name: proj.name, + err, + } + }) + }, + } + }), { + concurrent: 4, + exitOnError: false, + renderer: program.ignoreProgress ? 'silent' : 'default', + }) + + tasks.run() + .then(() => { + log('') + log('Type check passed successfully.') + }) + .catch((err) => { + process.exitCode = 1 + + err.errors.forEach((e) => { + log('') + log(`${e.name} failed\n${e.err.stdout}`) + }) + }) +}) + +const log = (msg) => { + // eslint-disable-next-line no-console + console.log(msg) +} + +program.parse(process.argv) diff --git a/yarn.lock b/yarn.lock index 3843e457a16e..14ebb1ee76b6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -106,9 +106,9 @@ source-map "^0.5.0" "@babel/generator@^7.4.0", "@babel/generator@^7.4.4", "@babel/generator@^7.8.0", "@babel/generator@^7.8.4", "@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== + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.8.tgz#cdcd58caab730834cee9eeadb729e833b625da3e" + integrity sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg== dependencies: "@babel/types" "^7.8.7" jsesc "^2.5.1" @@ -170,14 +170,14 @@ "@babel/helper-replace-supers" "^7.8.6" "@babel/helper-split-export-declaration" "^7.8.3" -"@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" @@ -330,9 +330,9 @@ js-tokens "^4.0.0" "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5", "@babel/parser@^7.8.0", "@babel/parser@^7.8.4", "@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== + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.8.tgz#4c3b7ce36db37e0629be1f0d50a571d2f86f6cd4" + integrity sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA== "@babel/plugin-proposal-async-generator-functions@^7.2.0", "@babel/plugin-proposal-async-generator-functions@^7.8.3": version "7.8.3" @@ -441,11 +441,11 @@ "@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.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== + 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.2.0", "@babel/plugin-syntax-async-generators@^7.8.0": @@ -585,9 +585,9 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-destructuring@^7.4.4", "@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" @@ -711,9 +711,9 @@ "@babel/helper-replace-supers" "^7.8.3" "@babel/plugin-transform-parameters@^7.4.4", "@babel/plugin-transform-parameters@^7.8.4", "@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.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.8.tgz#0381de466c85d5404565243660c4496459525daf" + integrity sha512-hC4Ld/Ulpf1psQciWWwdnUspQoQco2bMzSrwU6TmzRlvoYQe4rQFy9vnCZDTlVeCQj0JPfL+1RX0V8hCJvkgBA== dependencies: "@babel/helper-call-delegate" "^7.8.7" "@babel/helper-get-function-arity" "^7.8.3" @@ -3176,9 +3176,9 @@ universal-user-agent "^4.0.0" "@octokit/types@^2.0.0", "@octokit/types@^2.0.1": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.3.2.tgz#63c1a786c65236a8b059024d0343353e260d5215" - integrity sha512-3nyOEch20ISn6MbVt/mBeDOkxO4ljx3oV+CnYNUT8n0JtUuMs0LpewZXpZ4ZWarI72qKc/YkxK9dkfjpncxuvg== + version "2.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.5.0.tgz#f1bbd147e662ae2c79717d518aac686e58257773" + integrity sha512-KEnLwOfdXzxPNL34fj508bhi9Z9cStyN7qY1kOfVahmqtAfrWw6Oq3P4R+dtsg0lYtZdWBpUrS/Ixmd5YILSww== dependencies: "@types/node" ">= 8" @@ -3409,9 +3409,9 @@ "@types/jquery" "*" "@types/chai@*": - version "4.2.10" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.10.tgz#1122da40faabb81795580dc9f06c1e71e2ebbbe4" - integrity sha512-TlWWgb21+0LdkuFqEqfmy7NEgfB/7Jjux15fWQAh3P93gbmXuwTM/vxEdzW89APIcI2BgKR48yjeAkdeH+4qvQ== + version "4.2.11" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.11.tgz#d3614d6c5f500142358e6ed24e1bf16657536c50" + integrity sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw== "@types/chai@4.2.7": version "4.2.7" @@ -3477,6 +3477,13 @@ resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== +"@types/enzyme-adapter-react-16@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.5.tgz#1bf30a166f49be69eeda4b81e3f24113c8b4e9d5" + integrity sha512-K7HLFTkBDN5RyRmU90JuYt8OWEY2iKUn43SDWEoBOXd/PowUWjLZ3Q6qMBiQuZeFYK/TOstaZxsnI0fXoAfLpg== + dependencies: + "@types/enzyme" "*" + "@types/enzyme@*": version "3.10.5" resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.5.tgz#fe7eeba3550369eed20e7fb565bfb74eec44f1f0" @@ -3485,10 +3492,10 @@ "@types/cheerio" "*" "@types/react" "*" -"@types/enzyme@3.10.4": - version "3.10.4" - resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.4.tgz#dd4961042381a7c0f6637ce25fec3f773ce489dd" - integrity sha512-P5XpxcIt9KK8QUH4al4ttfJfIHg6xmN9ZjyUzRSzAsmDYwRXLI05ng/flZOPXrEXmp8ZYiN8/tEXYK5KSOQk3w== +"@types/enzyme@3.9.1": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.9.1.tgz#3a0ce07e30066dbc26cd3474c8e680af2d249e26" + integrity sha512-CasnOP73BFE3/5JvGkod+oQtGOD1+CVWz9BV2iAqDFJ+sofL5gTiizSr8ZM3lpDY27ptC8yjAdrUCdv8diKKqw== dependencies: "@types/cheerio" "*" "@types/react" "*" @@ -3607,6 +3614,15 @@ dependencies: "@types/sizzle" "*" +"@types/jsdom@^12.2.4": + version "12.2.4" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-12.2.4.tgz#845cd4d43f95b8406d9b724ec30c03edadcd9528" + integrity sha512-q+De3S/Ri6U9uPx89YA1XuC+QIBgndIfvBaaJG0pRT8Oqa75k4Mr7G9CRZjIvlbLGIukO/31DFGFJYlQBmXf/A== + dependencies: + "@types/node" "*" + "@types/tough-cookie" "*" + parse5 "^4.0.0" + "@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" @@ -3661,10 +3677,17 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== +"@types/mock-require@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mock-require/-/mock-require-2.0.0.tgz#57a4f0db0b4b6274f610a2d2c20beb3c842181e1" + integrity sha512-nOgjoE5bBiDeiA+z41i95makyHUSMWQMOPocP+J67Pqx/68HAXaeWN1NFtrAYYV6LrISIZZ8vKHm/a50k0f6Sg== + dependencies: + "@types/node" "*" + "@types/node@*", "@types/node@>= 8": - version "13.9.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.0.tgz#5b6ee7a77faacddd7de719017d0bc12f52f81589" - integrity sha512-0ARSQootUG1RljH2HncpsY2TJBfGQIKOOi7kxzUY6z54ePu/ZD+wJA8zI2Q6v8rol2qpG/rvqsReco8zNMPvhQ== + version "13.9.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.1.tgz#96f606f8cd67fb018847d9b61e93997dabdefc72" + integrity sha512-E6M6N0blf/jiZx8Q3nb0vNaswQeEyn0XlupO+xN6DtJ6r6IT4nXrTry7zhIfYvFCl3/8Cu6WIysmUBKiqV0bqQ== "@types/node@12.12.21": version "12.12.21" @@ -3677,9 +3700,9 @@ integrity sha512-iZeh1EgupfmAAOASk580R1SL5lWF3CsBVgVH0395qyNF8fhO16xy1UwAav2PdGxIIsYRn7RzJgMGjdsvam6YYg== "@types/node@^12.0.12": - version "12.12.29" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.29.tgz#46275f028b4e463b9ac5fefc1d08bc66cc193f25" - integrity sha512-yo8Qz0ygADGFptISDj3pOC9wXfln/5pQaN/ysDIzOaAWXt73cNHmtEC8zSO2Y+kse/txmwIAJzkYZ5fooaS5DQ== + version "12.12.30" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.30.tgz#3501e6f09b954de9c404671cefdbcc5d9d7c45f6" + integrity sha512-sz9MF/zk6qVr3pAnM0BSQvYIBK44tS75QC5N+VbWSE4DjCV/pJ+UzCW/F+vVnl7TkOPcuwQureKNtSSwjBTaMg== "@types/node@^8.0.7": version "8.10.59" @@ -3711,13 +3734,6 @@ resolved "https://registry.yarnpkg.com/@types/ramda/-/ramda-0.25.47.tgz#904f2ee46149af42902fe7dc01867e32798e8b37" integrity sha512-+ffSU83+PR4/cZtNTkUcFkg70sK4GePle7p5h05bQ37ycPumOx/TBpU52bt36GKDlds6tCqXheqPvgC52MMLug== -"@types/ramda@0.26.38": - version "0.26.38" - resolved "https://registry.yarnpkg.com/@types/ramda/-/ramda-0.26.38.tgz#9d19bb910bb15fc9a213402092e160cbbb5acc9b" - integrity sha512-legQx15y72vedr5fkVTb5xZaI/OXMzJgZYbMxVL5r269sOg7fZIeitEOumcevMPOMZdqH4cMoL35VuU13TLvVA== - dependencies: - ts-toolbelt "^4.12.0" - "@types/range-parser@*": version "1.2.3" resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" @@ -3730,7 +3746,7 @@ dependencies: "@types/react" "*" -"@types/react@*": +"@types/react@*", "@types/react@16.9.23": version "16.9.23" resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.23.tgz#1a66c6d468ba11a8943ad958a8cb3e737568271c" integrity sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw== @@ -3738,14 +3754,6 @@ "@types/prop-types" "*" csstype "^2.2.0" -"@types/react@16.9.21": - version "16.9.21" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.21.tgz#99e274e2ecfab6bb93920e918341daa3198b348d" - integrity sha512-xpmenCMeBwJRct8vmIfczlgdOXWIWASoOM857kxKfHlVQvDltRh7IFRVfGws79iO2jkNPXOeWREyKoClzhBaQA== - dependencies: - "@types/prop-types" "*" - csstype "^2.2.0" - "@types/relateurl@*": version "0.2.28" resolved "https://registry.yarnpkg.com/@types/relateurl/-/relateurl-0.2.28.tgz#6bda7db8653fa62643f5ee69e9f69c11a392e3a6" @@ -4181,7 +4189,7 @@ acorn@^6.0.1, acorn@^6.0.4, acorn@^6.2.0, acorn@^6.2.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^7.0.0, acorn@^7.1.0: +acorn@^7.0.0, acorn@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== @@ -4310,7 +4318,7 @@ ajv@^4.9.1: co "^4.6.0" json-stable-stringify "^1.0.1" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.2: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5, ajv@^6.9.2: version "6.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== @@ -5164,9 +5172,9 @@ aws-sdk@2.447.0: xml2js "0.4.19" aws-sdk@^2.389.0: - version "2.636.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.636.0.tgz#247124540b5b88a217aa6c282ce662b2f539721f" - integrity sha512-Zd/jed8qSNCm4pT2+8BuFfveouZrqUqmsOdhzpi3ZB3GYqV5eD+dmsl8OY+qvMgIJIFCB34a1SMucsC4zdBokg== + version "2.639.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.639.0.tgz#ae887a179939750de240ddeb680668300256900f" + integrity sha512-cbH69oV0ObZ4tapbjDqu0j3I779uscQNhRaewjIJY5O5At4RULtd7us24n72FtT4HIwM9cwORzVxA9rK6DHKOA== dependencies: buffer "4.9.1" events "1.1.1" @@ -6559,8 +6567,8 @@ brorand@^1.0.1: integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= "browser-logos@github:alrra/browser-logos": - version "62.2.20" - resolved "https://codeload.github.com/alrra/browser-logos/tar.gz/48c0b6e0b6fb1ebdef526788265109d8c6c01545" + version "62.2.22" + resolved "https://codeload.github.com/alrra/browser-logos/tar.gz/ea391b1178edf96ed5ad46cc6b45badd3a2849d1" browser-pack@^6.0.1: version "6.1.0" @@ -6923,9 +6931,9 @@ builder-util-runtime@8.2.0: sax "^1.2.4" builder-util-runtime@^8.2.0, builder-util-runtime@^8.2.1: - version "8.6.1" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.6.1.tgz#cf9a268fa51704de24f3c085aa8d1d1b3767d9ea" - integrity sha512-gwIUtMaICmc+e2EC3u3byXcwCyfhtG40LJRNnGfs8AYqacKl4ZLP50ab+uDttn7QAXe0LfMAuKz9v8bCODV0yg== + version "8.6.2" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.6.2.tgz#8270e15b012d8d3b110f3e327b0fd8b0e07b1686" + integrity sha512-9QnIBISfhgQ2BxtRLidVqf/v5HD73vSKZDllpUmGd2L6VORGQk7cZAPmPtw4HQM3gPBelyVJ5yIjMNZ8xjmd1A== dependencies: debug "^4.1.1" sax "^1.2.4" @@ -7207,9 +7215,9 @@ camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001030: - version "1.0.30001033" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001033.tgz#60c328fb56860de60f9a2cb419c31fb80587cba0" - integrity sha512-8Ibzxee6ibc5q88cM1usPsMpJOG5CTq0s/dKOmlekPbDGKt+UrnOOTPSjQz3kVo6yL7N4SB5xd+FGLHQmbzh6A== + version "1.0.30001035" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz#2bb53b8aa4716b2ed08e088d4dc816a5fe089a1e" + integrity sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ== capture-exit@^2.0.0: version "2.0.0" @@ -8897,7 +8905,7 @@ debug@3.1.0, debug@=3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" -debug@3.2.6, debug@^3.0.0, debug@^3.0.1, debug@^3.1.0, debug@^3.1.1: +debug@3.2.6, debug@^3.0.0, debug@^3.0.1, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -8911,7 +8919,7 @@ debug@4.1.0: dependencies: ms "^2.1.1" -debuglog@^1.0.1: +debuglog@*, debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= @@ -9301,7 +9309,7 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== -detect-libc@^1.0.3: +detect-libc@^1.0.2, detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= @@ -9864,9 +9872,9 @@ electron-publish@20.39.0: mime "^2.4.0" electron-to-chromium@^1.3.363: - version "1.3.374" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.374.tgz#eb539bfcac8ec51de417038548c3bc93745134bb" - integrity sha512-M4Y9onOJ4viRk3A4M/LH+r9+1zQioRZJvGJn/S/o7KaBJQLgFiaHMUlDwM0QMJd5ki6hFxKiWdC6jp5Ub0zMmw== + version "1.3.376" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.376.tgz#7cb7b5205564a06c8f8ecfbe832cbd47a1224bb1" + integrity sha512-cv/PYVz5szeMz192ngilmezyPNFkUjuynuL2vNdiqIrio440nfTDdc0JJU0TS2KHLSVCs9gBbt4CFqM+HcBnjw== electron@8.1.1: version "8.1.1" @@ -10032,6 +10040,19 @@ env-variable@0.0.x: resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.6.tgz#74ab20b3786c545b62b4a4813ab8cf22726c9808" integrity sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg== +enzyme-adapter-react-16@1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.12.1.tgz#6a2d74c80559d35ac0a91ca162fa45f4186290cf" + integrity sha512-GB61gvY97XvrA6qljExGY+lgI6BBwz+ASLaRKct9VQ3ozu0EraqcNn3CcrUckSGIqFGa1+CxO5gj5is5t3lwrw== + dependencies: + enzyme-adapter-utils "^1.11.0" + object.assign "^4.1.0" + object.values "^1.1.0" + prop-types "^15.7.2" + react-is "^16.8.6" + react-test-renderer "^16.0.0-0" + semver "^5.6.0" + enzyme-adapter-react-16@1.15.2: version "1.15.2" resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz#b16db2f0ea424d58a808f9df86ab6212895a4501" @@ -10047,7 +10068,7 @@ enzyme-adapter-react-16@1.15.2: react-test-renderer "^16.0.0-0" semver "^5.7.0" -enzyme-adapter-utils@^1.13.0: +enzyme-adapter-utils@^1.11.0, enzyme-adapter-utils@^1.13.0: version "1.13.0" resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz#01c885dde2114b4690bf741f8dc94cee3060eb78" integrity sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ== @@ -10421,11 +10442,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" @@ -13199,7 +13220,7 @@ iconv-lite@0.4.23: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.5, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@^0.4.5, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -13327,7 +13348,7 @@ import-local@2.0.0, import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" -imurmurhash@^0.1.4: +imurmurhash@*, imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= @@ -15595,6 +15616,11 @@ lodash._basecreate@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" integrity sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE= +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw= + lodash._basetostring@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" @@ -15613,12 +15639,29 @@ lodash._basevalues@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" integrity sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc= +lodash._bindcallback@*: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= + +lodash._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI= + +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM= + dependencies: + lodash._getnative "^3.0.0" + lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= -lodash._getnative@^3.0.0: +lodash._getnative@*, lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= @@ -15783,7 +15826,7 @@ lodash.reduce@^4.6.0: resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= -lodash.restparam@^3.0.0: +lodash.restparam@*, lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= @@ -16508,7 +16551,7 @@ minimist@1.1.x: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag= -minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: +minimist@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= @@ -16518,6 +16561,11 @@ minimist@1.2.2: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.2.tgz#b00a00230a1108c48c169e69a291aafda3aacd63" integrity sha512-rIqbOrKb8GJmx/5bc2M0QchhUouMXSpd1RTclXsB41JdL+VtnojfaJR+h7F9k18/4kHUsBFgk80Uk+q569vjPA== +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" @@ -17083,6 +17131,15 @@ nearley@^2.7.10: randexp "0.4.6" semver "^5.4.1" +needle@^2.2.1: + version "2.3.3" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.3.tgz#a041ad1d04a871b0ebb666f40baaf1fb47867117" + integrity sha512-EkY0GeSq87rWp1hoq/sH/wnTWgFVhYlnIkbJ0YJFfRgEFlz2RraCjBpFQ+vrEgEdp0ThfyHADmkChEhcb7PKyw== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -17199,9 +17256,9 @@ node-environment-flags@1.0.6: semver "^5.7.0" node-fetch-npm@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" - integrity sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.3.tgz#efae4aacb0500444e449a51fc1467397775ebc38" + integrity sha512-DgwoKEsqLnFZtk3ap7GWBHcHwnUhsNmQqEDcdjfQ8GofLEFJ081NAd4Uin3R7RFZBWVJCwHISw1oaEqPgSLloA== dependencies: encoding "^0.1.11" json-parse-better-errors "^1.0.0" @@ -17348,10 +17405,26 @@ node-notifier@^5.4.2: shellwords "^0.1.1" which "^1.3.0" +node-pre-gyp@*: + version "0.14.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" + integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4.4.2" + node-releases@^1.1.50: - version "1.1.51" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.51.tgz#70d0e054221343d2966006bfbd4d98622cc00bd0" - integrity sha512-1eQEs6HFYY1kMXQPOLzCf7HdjReErmvn85tZESMczdCNVWP3Y7URYLBAyYynuI7yef1zj4HN5q+oB2x67QU0lw== + version "1.1.52" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9" + integrity sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ== dependencies: semver "^6.3.0" @@ -17589,7 +17662,7 @@ npm-package-arg@^4.1.1, npm-package-arg@~4.2.1: hosted-git-info "^2.1.5" semver "^5.1.0" -npm-packlist@^1.4.4: +npm-packlist@^1.1.6, npm-packlist@^1.4.4: version "1.4.8" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== @@ -17752,7 +17825,7 @@ npm@^4.0.3: wrappy "~1.0.2" write-file-atomic "~1.3.3" -"npmlog@0 || 1 || 2 || 3 || 4", "npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", "npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -17943,7 +18016,7 @@ object.reduce@^1.0.0: for-own "^1.0.0" make-iterator "^1.0.0" -object.values@^1.1.1: +object.values@^1.1.0, object.values@^1.1.1: 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== @@ -18479,7 +18552,7 @@ parse-url@^5.0.0: parse-path "^4.0.0" protocols "^1.4.0" -parse5@4.0.0: +parse5@4.0.0, parse5@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== @@ -19647,9 +19720,9 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: strip-json-comments "~2.0.1" rcedit@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-2.1.0.tgz#37ae6ad1fc8d7734b2e445ec3d378ace89d4076d" - integrity sha512-Nrd/65LzMjFmKpS9d2fqIxVYdW0M8ovsN0PgZhCrPMQss2yznkp6/zjEQ1a9DzzoGv2uuN3yDJAeHybOD5ZNKA== + version "2.1.1" + resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-2.1.1.tgz#483b8f42004895cb81abc5c64c7b91645fc6ed53" + integrity sha512-N1JyXxHD2zpqqW4A77RNK1d/M+tyed9JkvL/lnUI5cf4igF/8B9FNLFCtDUhGrk2GWEPxC+RF0WXWWB3I8QC7w== react-bootstrap-modal@4.2.0: version "4.2.0" @@ -20005,7 +20078,7 @@ readable-stream@~2.2.9: string_decoder "~1.0.0" util-deprecate "~1.0.1" -readdir-scoped-modules@^1.0.0: +readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== @@ -20149,10 +20222,10 @@ reflect.ownkeys@^0.2.0: resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= -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" @@ -20176,15 +20249,10 @@ regenerator-runtime@^0.12.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== -regenerator-runtime@^0.13.1, regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== - -regenerator-runtime@^0.13.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== +regenerator-runtime@^0.13.1, regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3, 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.10.0: version "0.10.1" @@ -20196,9 +20264,9 @@ regenerator-transform@^0.10.0: private "^0.1.6" 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.3" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.3.tgz#54aebff2ef58c0ae61e695ad1b9a9d65995fff78" + integrity sha512-zXHNKJspmONxBViAb3ZUmFoFPnTBs3zFhCEZJiwp/gkNzxVbTqNJVjYKx6Qk1tQ1P4XLf4TbH9+KBB7wGoAaUw== dependencies: "@babel/runtime" "^7.8.4" private "^0.1.8" @@ -20262,17 +20330,17 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -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" regexpu@^1.3.0: version "1.3.0" @@ -20321,7 +20389,7 @@ regjsgen@^0.2.0: resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= -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== @@ -20333,10 +20401,10 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" -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" @@ -21087,11 +21155,11 @@ schema-utils@^1.0.0: ajv-keywords "^3.1.0" schema-utils@^2.5.0: - version "2.6.4" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz#a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53" - integrity sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ== + version "2.6.5" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" + integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== dependencies: - ajv "^6.10.2" + ajv "^6.12.0" ajv-keywords "^3.4.1" scss-tokenizer@^0.2.3: @@ -21464,9 +21532,9 @@ simple-get@^3.0.3: simple-concat "^1.0.0" simple-git@^1.70.0: - version "1.131.0" - resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.131.0.tgz#68d85bf6a706e418b8a92cae765d2ad358781e21" - integrity sha512-z/art7YYtmPnnLItT/j+nKwJt6ap6nHZ4D8sYo9PdCKK/ug56SN6m/evfxJk7uDV3e9JuCa8qIyDU2P3cxmiNQ== + version "1.132.0" + resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.132.0.tgz#53ac4c5ec9e74e37c2fd461e23309f22fcdf09b1" + integrity sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg== dependencies: debug "^4.0.1" @@ -22736,7 +22804,7 @@ tar@^2.0.0, tar@~2.2.1: fstream "^1.0.12" inherits "2" -tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: +tar@^4.4.10, tar@^4.4.12, tar@^4.4.2, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -23237,11 +23305,6 @@ ts-node@8.3.0: source-map-support "^0.5.6" yn "^3.0.0" -ts-toolbelt@^4.12.0: - version "4.14.6" - resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-4.14.6.tgz#9a232f62276caeee4fa9e81e0c4bffa047de0765" - integrity sha512-SONcnRd93+LuYGfn/CZg5A5qhCODohZslAVZKHHu5bnwUxoXLqd2k2VIdwRUXYfKnY+UCeNbI2pTPz+Dno6Mpg== - tslib@^1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" @@ -23393,9 +23456,9 @@ typescript@^3.0.3, typescript@^3.6.4: integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== typescript@next: - version "3.9.0-dev.20200310" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.0-dev.20200310.tgz#c04d143899e5d7d7d67ed354553220502a358080" - integrity sha512-C85KSOKyvEn8xqhFF3/WYH/32NaGfevO3jSd/tc/YaYWsNJb9b78oIRW1v4mwodR1/BbJ9tn7InhH5zAlos+1Q== + version "3.9.0-dev.20200316" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.0-dev.20200316.tgz#7cbb2fa2eedf58eea27b3250ab38674790ccf999" + integrity sha512-MM67isAuvHM4hwfHR4K9NikB7MFD9RjISB5cXhtKmjkpMFO0QNzFmFq061VmsJqoRVpG9N2KE+cm6BJ9dIjrtQ== ua-parser-js@^0.7.18: version "0.7.21" @@ -23522,15 +23585,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== union-value@^1.0.0: version "1.0.1" @@ -23911,7 +23974,7 @@ v8flags@^3.0.1: dependencies: homedir-polyfill "^1.0.1" -validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: +validate-npm-package-license@*, validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: 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== @@ -24738,13 +24801,13 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yaml@^1.7.2: - version "1.8.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.0.tgz#169fbcfa2081302dc9441d02b0b6fe667e4f74c9" - integrity sha512-6qI/tTx7OVtA4qNqD0OyutbM6Z9EKu4rxWm/2Y3FDEBQ4/2X2XAnyuRXMzAE2+1BPyqzksJZtrIwblOHg0IEzA== + version "1.8.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.2.tgz#a29c03f578faafd57dcb27055f9a5d569cb0c3d9" + integrity sha512-omakb0d7FjMo3R1D2EbTKVIk6dAVLRxFXdLZMEUToeAvuqgG/YuHMuQOZ5fgk+vQ8cx+cnGKwyg+8g8PNT0xQg== dependencies: "@babel/runtime" "^7.8.7" -yargs-parser@13.1.1, yargs-parser@^13.1.0, 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== @@ -24767,10 +24830,18 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.0.tgz#cdd7a97490ec836195f59f3f4dbe5ea9e8f75f08" - integrity sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ== +yargs-parser@^13.1.0, yargs-parser@^13.1.1, 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@^15.0.1: + version "15.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" + integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -24848,7 +24919,7 @@ yargs@13.2.4: y18n "^4.0.0" yargs-parser "^13.1.0" -yargs@13.3.0, yargs@^13.2.1, 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== @@ -24901,10 +24972,26 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" +yargs@^13.2.1, 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@^14.2.0: - version "14.2.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.2.tgz#2769564379009ff8597cdd38fba09da9b493c4b5" - integrity sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA== + version "14.2.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== dependencies: cliui "^5.0.0" decamelize "^1.2.0" @@ -24916,7 +25003,7 @@ yargs@^14.2.0: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^15.0.0" + yargs-parser "^15.0.1" yargs@^7.0.0, yargs@^7.1.0: version "7.1.0"