From ef6727cc52ce7de5afab6937d36540199b29bc0e Mon Sep 17 00:00:00 2001 From: Spencer Date: Sun, 6 Oct 2019 22:49:28 -0700 Subject: [PATCH] [7.x] Update gulp related packages (major) (#46665 and #47421) (#47409) * Update gulp related packages (major) (#46665) * Update gulp related packages * ts-ify and gulp4-ify x-pack tasks, remove unused canvas tasks * remove unnecessary gulp.TaskFunction usage * fix old references * update renovate config * move constants into helpers directory * typo * compact tasks a bit, remove unnecessary paths * fix build directories * deprecate testonly task * rather than justifying an unjustifiable ts-ignore, ts-ify the imported module * update renovate config * update browser download tests to mock axios * add root index.d.ts to tsconfig * export BrowserType * remove unnecessary `@ts-ignore` * use consistent casing * correct import for createAutoJUnitReporter * Update gulp related packages (#47421) (cherry picked from commit 35751f9828ecf4be855d1cbe6dc2021e55c2830e) --- package.json | 1 + packages/kbn-plugin-helpers/lib/index.d.ts | 26 + packages/kbn-plugin-helpers/package.json | 2 +- packages/kbn-plugin-helpers/tsconfig.json | 4 + packages/kbn-test/index.d.ts | 20 + packages/kbn-test/src/{index.js => index.ts} | 8 + packages/kbn-test/tsconfig.json | 3 +- src/dev/index.ts | 25 + src/dev/mocha/index.js | 3 + ...urce.js => generate_notice_from_source.ts} | 37 +- src/dev/notice/{index.js => index.ts} | 1 + x-pack/gulpfile.js | 44 +- .../plugins/canvas/tasks/helpers/babelhook.js | 51 -- .../plugins/canvas/tasks/helpers/dom_setup.js | 23 - .../canvas/tasks/helpers/enzyme_setup.js | 10 - x-pack/legacy/plugins/canvas/tasks/index.js | 11 - .../canvas/tasks/mocks/absoluteToParsedUrl.js | 10 - .../legacy/plugins/canvas/tasks/mocks/noop.js | 7 - .../plugins/canvas/tasks/mocks/stateStore.js | 13 - x-pack/legacy/plugins/canvas/tasks/test.js | 66 -- .../browsers/{browsers.js => browsers.ts} | 2 + .../browsers/create_browser_driver_factory.ts | 6 +- ...s => default_chromium_sandbox_disabled.ts} | 2 +- .../server/browsers/download/checksum.ts | 1 - .../browsers/download/{clean.js => clean.ts} | 7 +- .../{download.test.js => download.test.ts} | 66 +- .../download/{download.js => download.ts} | 19 +- ...ure_downloaded.js => ensure_downloaded.ts} | 35 +- .../server/browsers/download/index.js | 10 - .../server/browsers/download/index.ts} | 4 +- .../browsers/download/{util.js => util.ts} | 17 +- .../server/browsers/{index.js => index.ts} | 0 x-pack/package.json | 11 +- x-pack/tasks/build.js | 36 - x-pack/tasks/build.ts | 70 ++ x-pack/tasks/clean.js | 22 - x-pack/tasks/{dev.js => dev.ts} | 12 +- x-pack/tasks/helpers/build_version.js | 29 - x-pack/tasks/helpers/build_version.ts | 12 + x-pack/tasks/helpers/flags.ts | 70 ++ x-pack/tasks/helpers/get_plugins.js | 46 - .../helpers/{git_info.js => git_info.ts} | 20 +- x-pack/tasks/helpers/globs.js | 49 - x-pack/tasks/helpers/pkg.ts | 33 + x-pack/tasks/prepare.js | 18 - .../mocks/uiStorage.js => tasks/prepare.ts} | 12 +- x-pack/tasks/report.js | 21 - x-pack/tasks/test.js | 54 -- x-pack/tasks/test.ts | 59 ++ x-pack/tsconfig.json | 3 +- yarn.lock | 847 +++++++----------- 51 files changed, 830 insertions(+), 1128 deletions(-) create mode 100644 packages/kbn-plugin-helpers/lib/index.d.ts create mode 100644 packages/kbn-plugin-helpers/tsconfig.json create mode 100644 packages/kbn-test/index.d.ts rename packages/kbn-test/src/{index.js => index.ts} (86%) create mode 100644 src/dev/index.ts rename src/dev/notice/{generate_notice_from_source.js => generate_notice_from_source.ts} (83%) rename src/dev/notice/{index.js => index.ts} (97%) delete mode 100644 x-pack/legacy/plugins/canvas/tasks/helpers/babelhook.js delete mode 100644 x-pack/legacy/plugins/canvas/tasks/helpers/dom_setup.js delete mode 100644 x-pack/legacy/plugins/canvas/tasks/helpers/enzyme_setup.js delete mode 100644 x-pack/legacy/plugins/canvas/tasks/index.js delete mode 100644 x-pack/legacy/plugins/canvas/tasks/mocks/absoluteToParsedUrl.js delete mode 100755 x-pack/legacy/plugins/canvas/tasks/mocks/noop.js delete mode 100644 x-pack/legacy/plugins/canvas/tasks/mocks/stateStore.js delete mode 100644 x-pack/legacy/plugins/canvas/tasks/test.js rename x-pack/legacy/plugins/reporting/server/browsers/{browsers.js => browsers.ts} (85%) rename x-pack/legacy/plugins/reporting/server/browsers/{default_chromium_sandbox_disabled.js => default_chromium_sandbox_disabled.ts} (94%) rename x-pack/legacy/plugins/reporting/server/browsers/download/{clean.js => clean.ts} (85%) rename x-pack/legacy/plugins/reporting/server/browsers/download/{download.test.js => download.test.ts} (55%) rename x-pack/legacy/plugins/reporting/server/browsers/download/{download.js => download.ts} (68%) rename x-pack/legacy/plugins/reporting/server/browsers/download/{ensure_downloaded.js => ensure_downloaded.ts} (68%) delete mode 100644 x-pack/legacy/plugins/reporting/server/browsers/download/index.js rename x-pack/{tasks/helpers/get_flags.js => legacy/plugins/reporting/server/browsers/download/index.ts} (72%) rename x-pack/legacy/plugins/reporting/server/browsers/download/{util.js => util.ts} (65%) rename x-pack/legacy/plugins/reporting/server/browsers/{index.js => index.ts} (100%) delete mode 100644 x-pack/tasks/build.js create mode 100644 x-pack/tasks/build.ts delete mode 100644 x-pack/tasks/clean.js rename x-pack/tasks/{dev.js => dev.ts} (55%) delete mode 100644 x-pack/tasks/helpers/build_version.js create mode 100644 x-pack/tasks/helpers/build_version.ts create mode 100644 x-pack/tasks/helpers/flags.ts delete mode 100644 x-pack/tasks/helpers/get_plugins.js rename x-pack/tasks/helpers/{git_info.js => git_info.ts} (50%) delete mode 100644 x-pack/tasks/helpers/globs.js create mode 100644 x-pack/tasks/helpers/pkg.ts delete mode 100644 x-pack/tasks/prepare.js rename x-pack/{legacy/plugins/canvas/tasks/mocks/uiStorage.js => tasks/prepare.ts} (58%) delete mode 100644 x-pack/tasks/report.js delete mode 100644 x-pack/tasks/test.js create mode 100644 x-pack/tasks/test.ts diff --git a/package.json b/package.json index 89b67e2f4511..58fe0be09dc8 100644 --- a/package.json +++ b/package.json @@ -344,6 +344,7 @@ "@types/supertest": "^2.0.5", "@types/type-detect": "^4.0.1", "@types/uuid": "^3.4.4", + "@types/vinyl-fs": "^2.4.11", "@types/zen-observable": "^0.8.0", "@typescript-eslint/eslint-plugin": "1.13.0", "@typescript-eslint/parser": "1.13.0", diff --git a/packages/kbn-plugin-helpers/lib/index.d.ts b/packages/kbn-plugin-helpers/lib/index.d.ts new file mode 100644 index 000000000000..1515bf6b84bf --- /dev/null +++ b/packages/kbn-plugin-helpers/lib/index.d.ts @@ -0,0 +1,26 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export function babelRegister(): void; +export function resolveKibanaPath(path: string): string; +export function readFtrConfigFile(path: string): any; +export function run( + task: 'build' | 'start' | 'testAll' | 'testBrowser' | 'testServer' | 'postinstall', + options: any +): Promise; diff --git a/packages/kbn-plugin-helpers/package.json b/packages/kbn-plugin-helpers/package.json index c72b3d2abed9..eca958d3860e 100644 --- a/packages/kbn-plugin-helpers/package.json +++ b/packages/kbn-plugin-helpers/package.json @@ -21,7 +21,7 @@ "globby": "^8.0.1", "gulp-babel": "^8.0.0", "gulp-rename": "1.4.0", - "gulp-zip": "4.2.0", + "gulp-zip": "5.0.1", "inquirer": "^1.2.2", "minimatch": "^3.0.4", "node-sass": "^4.9.4", diff --git a/packages/kbn-plugin-helpers/tsconfig.json b/packages/kbn-plugin-helpers/tsconfig.json new file mode 100644 index 000000000000..f5559aa7290c --- /dev/null +++ b/packages/kbn-plugin-helpers/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["lib/index.d.ts"] +} diff --git a/packages/kbn-test/index.d.ts b/packages/kbn-test/index.d.ts new file mode 100644 index 000000000000..aa55df9215c2 --- /dev/null +++ b/packages/kbn-test/index.d.ts @@ -0,0 +1,20 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export * from './src/index'; diff --git a/packages/kbn-test/src/index.js b/packages/kbn-test/src/index.ts similarity index 86% rename from packages/kbn-test/src/index.js rename to packages/kbn-test/src/index.ts index e8cc694f5252..7330789bb235 100644 --- a/packages/kbn-test/src/index.js +++ b/packages/kbn-test/src/index.ts @@ -17,18 +17,26 @@ * under the License. */ +// @ts-ignore not typed yet export { runTestsCli, startServersCli } from './functional_tests/cli'; +// @ts-ignore not typed yet export { runTests, startServers } from './functional_tests/tasks'; +// @ts-ignore not typed yet export { OPTIMIZE_BUNDLE_DIR, KIBANA_ROOT } from './functional_tests/lib/paths'; +// @ts-ignore not typed yet export { esTestConfig, createEsTestCluster } from './es'; +// @ts-ignore not typed yet export { kbnTestConfig, kibanaServerTestUser, kibanaTestUser, adminTestUser } from './kbn'; +// @ts-ignore not typed yet export { setupUsers, DEFAULT_SUPERUSER_PASS } from './functional_tests/lib/auth'; +// @ts-ignore not typed yet export { readConfigFile } from './functional_test_runner/lib/config/read_config_file'; +// @ts-ignore not typed yet export { runFtrCli } from './functional_test_runner/cli'; diff --git a/packages/kbn-test/tsconfig.json b/packages/kbn-test/tsconfig.json index 83a0fe04a4b5..fdb53de52687 100644 --- a/packages/kbn-test/tsconfig.json +++ b/packages/kbn-test/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../../tsconfig.json", "include": [ "types/**/*", - "src/functional_test_runner/**/*" + "src/**/*", + "index.d.ts" ] } diff --git a/src/dev/index.ts b/src/dev/index.ts new file mode 100644 index 000000000000..4586cc2a2ff7 --- /dev/null +++ b/src/dev/index.ts @@ -0,0 +1,25 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +// @ts-ignore not typed yet +export { createAutoJUnitReporter } from './auto_junit_reporter'; +// @ts-ignore not typed yet +export { setupJUnitReportGeneration } from './junit_report_generation'; +// @ts-ignore not typed yet +export { runMochaCli } from './run_mocha_cli'; diff --git a/src/dev/mocha/index.js b/src/dev/mocha/index.js index 9f99f5683126..4586cc2a2ff7 100644 --- a/src/dev/mocha/index.js +++ b/src/dev/mocha/index.js @@ -17,6 +17,9 @@ * under the License. */ +// @ts-ignore not typed yet export { createAutoJUnitReporter } from './auto_junit_reporter'; +// @ts-ignore not typed yet export { setupJUnitReportGeneration } from './junit_report_generation'; +// @ts-ignore not typed yet export { runMochaCli } from './run_mocha_cli'; diff --git a/src/dev/notice/generate_notice_from_source.js b/src/dev/notice/generate_notice_from_source.ts similarity index 83% rename from src/dev/notice/generate_notice_from_source.js rename to src/dev/notice/generate_notice_from_source.ts index ba1492b9d826..08384e1e159f 100644 --- a/src/dev/notice/generate_notice_from_source.js +++ b/src/dev/notice/generate_notice_from_source.ts @@ -18,25 +18,30 @@ */ import vfs from 'vinyl-fs'; +import { ToolingLog } from '@kbn/dev-utils'; const NOTICE_COMMENT_RE = /\/\*[\s\n\*]*@notice([\w\W]+?)\*\//g; const NEWLINE_RE = /\r?\n/g; +interface Options { + /** + * Name to print at the top of the notice + */ + productName: string; + /** + * absolute path to the repo to search for @notice comments + */ + directory: string; + log: ToolingLog; +} + /** * Generates the text for the NOTICE.txt file at the root of the * repo which details the licenses for code that is copied/vendored * into the repository. - * - * @param {Object} options - * @property {string} options.productName Name to print at the top of the notice - * @property {ToolingLog} options.log - * @property {string} options.directory absolute path to the repo to search for @notice comments - * @return {string} */ -export async function generateNoticeFromSource({ productName, directory, log }) { - const globs = [ - '**/*.{js,less,css,ts}', - ]; +export async function generateNoticeFromSource({ productName, directory, log }: Options) { + const globs = ['**/*.{js,less,css,ts}']; const options = { cwd: directory, @@ -46,7 +51,7 @@ export async function generateNoticeFromSource({ productName, directory, log }) 'packages/*/{node_modules,build,target,dist}/**', 'x-pack/{node_modules,build,target,dist,optimize}/**', 'x-pack/packages/*/{node_modules,build,target,dist}/**', - ] + ], }; log.debug('vfs.src globs', globs); @@ -54,10 +59,10 @@ export async function generateNoticeFromSource({ productName, directory, log }) log.info(`Searching ${directory} for multi-line comments starting with @notice`); const files = vfs.src(globs, options); - const noticeComments = []; + const noticeComments: string[] = []; await new Promise((resolve, reject) => { files - .on('data', (file) => { + .on('data', file => { log.verbose(`Checking for @notice comments in ${file.relative}`); const source = file.contents.toString('utf8'); @@ -75,19 +80,19 @@ export async function generateNoticeFromSource({ productName, directory, log }) let noticeText = ''; noticeText += `${productName}\n`; - noticeText += `Copyright 2012-${(new Date()).getUTCFullYear()} Elasticsearch B.V.\n`; + noticeText += `Copyright 2012-${new Date().getUTCFullYear()} Elasticsearch B.V.\n`; for (const comment of noticeComments.sort()) { noticeText += '\n---\n'; noticeText += comment .split(NEWLINE_RE) - .map(line => ( + .map(line => line // trim whitespace .trim() // trim leading * and a single space .replace(/(^\* ?)/, '') - )) + ) .join('\n') .trim(); noticeText += '\n'; diff --git a/src/dev/notice/index.js b/src/dev/notice/index.ts similarity index 97% rename from src/dev/notice/index.js rename to src/dev/notice/index.ts index 17fbd20c2206..9f3fd61a9831 100644 --- a/src/dev/notice/index.js +++ b/src/dev/notice/index.ts @@ -18,4 +18,5 @@ */ export { generateNoticeFromSource } from './generate_notice_from_source'; +// @ts-ignore not typed yet export { generateBuildNoticeText } from './generate_build_notice_text'; diff --git a/x-pack/gulpfile.js b/x-pack/gulpfile.js index edf8d3c59c3b..74e24692f59f 100644 --- a/x-pack/gulpfile.js +++ b/x-pack/gulpfile.js @@ -4,36 +4,20 @@ * you may not use this file except in compliance with the Elastic License. */ -require('@kbn/plugin-helpers').babelRegister(); -require('dotenv').config({ silent: true }); +require('../src/setup_node_env'); -const path = require('path'); -const gulp = require('gulp'); -const mocha = require('gulp-mocha'); -const multiProcess = require('gulp-multi-process'); -const fancyLog = require('fancy-log'); -const pkg = require('./package.json'); +const { buildTask } = require('./tasks/build'); +const { devTask } = require('./tasks/dev'); +const { testTask, testBrowserTask, testBrowserDevTask, testServerTask } = require('./tasks/test'); +const { prepareTask } = require('./tasks/prepare'); -const buildDir = path.resolve(__dirname, 'build'); -const buildTarget = path.resolve(buildDir, 'plugin'); -const packageDir = path.resolve(buildDir, 'distributions'); -const coverageDir = path.resolve(__dirname, 'coverage'); - -const gulpHelpers = { - buildDir, - buildTarget, - coverageDir, - log: fancyLog, - mocha, - multiProcess, - packageDir, - pkg, +// export the tasks that are runnable from the CLI +module.exports = { + build: buildTask, + dev: devTask, + prepare: prepareTask, + test: testTask, + testserver: testServerTask, + testbrowser: testBrowserTask, + 'testbrowser-dev': testBrowserDevTask, }; - -require('./tasks/build')(gulp, gulpHelpers); -require('./tasks/clean')(gulp, gulpHelpers); -require('./tasks/dev')(gulp, gulpHelpers); -require('./tasks/prepare')(gulp, gulpHelpers); -require('./tasks/report')(gulp, gulpHelpers); -require('./tasks/test')(gulp, gulpHelpers); -require('./legacy/plugins/canvas/tasks')(gulp, gulpHelpers); diff --git a/x-pack/legacy/plugins/canvas/tasks/helpers/babelhook.js b/x-pack/legacy/plugins/canvas/tasks/helpers/babelhook.js deleted file mode 100644 index dea18db918fc..000000000000 --- a/x-pack/legacy/plugins/canvas/tasks/helpers/babelhook.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -const { resolve } = require('path'); -const register = require('@babel/register'); -const options = { - babelrc: false, - presets: [require.resolve('@kbn/babel-preset/node_preset')], - sourceMaps: false, - plugins: [ - [ - 'mock-imports', - [ - { - pattern: 'ui/chrome', - location: resolve(__dirname, '..', 'mocks', 'uiChrome'), - }, - { - pattern: 'ui/notify', - location: resolve(__dirname, '..', 'mocks', 'uiNotify'), - }, - { - pattern: 'ui/storage', - location: resolve(__dirname, '..', 'mocks', 'uiStorage'), - }, - { - pattern: 'ui/url/absolute_to_parsed_url', - location: resolve(__dirname, '..', 'mocks', 'absoluteToParsedUrl'), - }, - { - // ugly hack so that importing non-js files works, required for the function docs - pattern: '.(less|png|svg)$', - location: resolve(__dirname, '..', 'mocks', 'noop'), - }, - { - pattern: 'plugins/canvas/apps', - location: resolve(__dirname, '..', 'mocks', 'noop'), - }, - { - pattern: '/state/store', - location: resolve(__dirname, '..', 'mocks', 'stateStore'), - }, - ], - ], - ], -}; - -register(options); diff --git a/x-pack/legacy/plugins/canvas/tasks/helpers/dom_setup.js b/x-pack/legacy/plugins/canvas/tasks/helpers/dom_setup.js deleted file mode 100644 index bbc8cc52d6a6..000000000000 --- a/x-pack/legacy/plugins/canvas/tasks/helpers/dom_setup.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { JSDOM } from 'jsdom'; -import { APP_ROUTE } from '../../common/lib/constants'; -import chrome from '../mocks/uiChrome'; - -const basePath = chrome.getBasePath(); -const basename = `${basePath}${APP_ROUTE}`; - -const { window } = new JSDOM('', { - url: `http://localhost:5601/${basename}`, - pretendToBeVisual: true, -}); - -global.window = window; -global.document = window.document; -global.navigator = window.navigator; -global.requestAnimationFrame = window.requestAnimationFrame; -global.HTMLElement = window.HTMLElement; diff --git a/x-pack/legacy/plugins/canvas/tasks/helpers/enzyme_setup.js b/x-pack/legacy/plugins/canvas/tasks/helpers/enzyme_setup.js deleted file mode 100644 index 290e3d220aa4..000000000000 --- a/x-pack/legacy/plugins/canvas/tasks/helpers/enzyme_setup.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { configure } from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; - -configure({ adapter: new Adapter() }); diff --git a/x-pack/legacy/plugins/canvas/tasks/index.js b/x-pack/legacy/plugins/canvas/tasks/index.js deleted file mode 100644 index 48ff27587783..000000000000 --- a/x-pack/legacy/plugins/canvas/tasks/index.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import test from './test'; - -export default function canvasTasks(gulp, gulpHelpers) { - test(gulp, gulpHelpers); -} diff --git a/x-pack/legacy/plugins/canvas/tasks/mocks/absoluteToParsedUrl.js b/x-pack/legacy/plugins/canvas/tasks/mocks/absoluteToParsedUrl.js deleted file mode 100644 index d73885ef0cc2..000000000000 --- a/x-pack/legacy/plugins/canvas/tasks/mocks/absoluteToParsedUrl.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export const absoluteToParsedUrl = () => { - getAbsoluteUrl: () => - 'http://localhost:5601/kbp/app/canvas#/workpad/workpad-24d56dad-ae70-42b8-9ef1-c5350ecd426c/page/1'; -}; // noop diff --git a/x-pack/legacy/plugins/canvas/tasks/mocks/noop.js b/x-pack/legacy/plugins/canvas/tasks/mocks/noop.js deleted file mode 100755 index 8d6abb810be9..000000000000 --- a/x-pack/legacy/plugins/canvas/tasks/mocks/noop.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export default function() {} diff --git a/x-pack/legacy/plugins/canvas/tasks/mocks/stateStore.js b/x-pack/legacy/plugins/canvas/tasks/mocks/stateStore.js deleted file mode 100644 index 9d3df08fffe0..000000000000 --- a/x-pack/legacy/plugins/canvas/tasks/mocks/stateStore.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export function getState() { - return { - assets: { - yay: { value: 'here is your image' }, - }, - }; -} diff --git a/x-pack/legacy/plugins/canvas/tasks/test.js b/x-pack/legacy/plugins/canvas/tasks/test.js deleted file mode 100644 index 9857e9c774e0..000000000000 --- a/x-pack/legacy/plugins/canvas/tasks/test.js +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { resolve, join } from 'path'; - -export default function testTasks(gulp, { mocha }) { - const canvasRoot = resolve(__dirname, '..'); - - function runMocha(globs, { withEnzyme = false, withDOM = false } = {}) { - const requires = [join(canvasRoot, 'tasks/helpers/babelhook')]; - - if (withDOM) { - requires.push(join(canvasRoot, 'tasks/helpers/dom_setup')); - } - if (withEnzyme) { - requires.push(join(canvasRoot, 'tasks/helpers/enzyme_setup')); - } - - return gulp.src(globs, { read: false }).pipe( - mocha({ - ui: 'bdd', - require: requires, - }) - ); - } - - const getTestGlobs = rootPath => [ - join(canvasRoot, `${rootPath}/**/__tests__/**/*.js`), - join(canvasRoot, `!${rootPath}/**/__tests__/fixtures/**/*.js`), - ]; - - const getRootGlobs = rootPath => [join(canvasRoot, `${rootPath}/**/*.js`)]; - - gulp.task('canvas:test:common', () => { - return runMocha(getTestGlobs('common'), { withDOM: true }); - }); - - gulp.task('canvas:test:server', () => { - return runMocha(getTestGlobs('server')); - }); - - gulp.task('canvas:test:browser', () => { - return runMocha(getTestGlobs('public'), { withEnzyme: true, withDOM: true }); - }); - - gulp.task('canvas:test:plugins', () => { - return runMocha(getTestGlobs('canvas_plugin_src')); - }); - - gulp.task('canvas:test', [ - 'canvas:test:plugins', - 'canvas:test:common', - 'canvas:test:server', - 'canvas:test:browser', - ]); - - gulp.task('canvas:test:dev', () => { - gulp.watch(getRootGlobs('common'), ['canvas:test:common']); - gulp.watch(getRootGlobs('server'), ['canvas:test:server']); - gulp.watch(getRootGlobs('public'), ['canvas:test:browser']); - gulp.watch(getRootGlobs('canvas_plugin_src'), ['canvas:test:plugins']); - }); -} diff --git a/x-pack/legacy/plugins/reporting/server/browsers/browsers.js b/x-pack/legacy/plugins/reporting/server/browsers/browsers.ts similarity index 85% rename from x-pack/legacy/plugins/reporting/server/browsers/browsers.js rename to x-pack/legacy/plugins/reporting/server/browsers/browsers.ts index 75f06de9a2a4..ff9dece504ea 100644 --- a/x-pack/legacy/plugins/reporting/server/browsers/browsers.js +++ b/x-pack/legacy/plugins/reporting/server/browsers/browsers.ts @@ -6,6 +6,8 @@ import * as chromium from './chromium'; +export type BrowserType = keyof typeof BROWSERS_BY_TYPE; + export const BROWSERS_BY_TYPE = { chromium, }; diff --git a/x-pack/legacy/plugins/reporting/server/browsers/create_browser_driver_factory.ts b/x-pack/legacy/plugins/reporting/server/browsers/create_browser_driver_factory.ts index ada20914eccb..cf3e2fe25b4d 100644 --- a/x-pack/legacy/plugins/reporting/server/browsers/create_browser_driver_factory.ts +++ b/x-pack/legacy/plugins/reporting/server/browsers/create_browser_driver_factory.ts @@ -4,9 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -// @ts-ignore -import { BROWSERS_BY_TYPE } from './browsers'; -// @ts-ignore +import { BROWSERS_BY_TYPE, BrowserType } from './browsers'; import { ensureBrowserDownloaded } from './download'; import { installBrowser } from './install'; import { LevelLogger } from '../lib/level_logger'; @@ -22,7 +20,7 @@ export async function createBrowserDriverFactory( const DATA_DIR = config.get('path.data'); const CAPTURE_CONFIG = config.get('xpack.reporting.capture'); - const BROWSER_TYPE = CAPTURE_CONFIG.browser.type; + const BROWSER_TYPE: BrowserType = CAPTURE_CONFIG.browser.type; const BROWSER_AUTO_DOWNLOAD = CAPTURE_CONFIG.browser.autoDownload; const BROWSER_CONFIG = CAPTURE_CONFIG.browser[BROWSER_TYPE]; const REPORTING_TIMEOUT = config.get('xpack.reporting.queue.timeout'); diff --git a/x-pack/legacy/plugins/reporting/server/browsers/default_chromium_sandbox_disabled.js b/x-pack/legacy/plugins/reporting/server/browsers/default_chromium_sandbox_disabled.ts similarity index 94% rename from x-pack/legacy/plugins/reporting/server/browsers/default_chromium_sandbox_disabled.js rename to x-pack/legacy/plugins/reporting/server/browsers/default_chromium_sandbox_disabled.ts index 952d6a99c4e4..a21a4b33722f 100644 --- a/x-pack/legacy/plugins/reporting/server/browsers/default_chromium_sandbox_disabled.js +++ b/x-pack/legacy/plugins/reporting/server/browsers/default_chromium_sandbox_disabled.ts @@ -9,7 +9,7 @@ import { promisify } from 'util'; const getos = promisify(getosSync); -const distroSupportsUnprivilegedUsernamespaces = (distro) => { +const distroSupportsUnprivilegedUsernamespaces = (distro: string) => { // Debian 7 and 8 don't support usernamespaces by default // this should be reevaluated when Debian 9 is available if (distro.toLowerCase() === 'debian') { diff --git a/x-pack/legacy/plugins/reporting/server/browsers/download/checksum.ts b/x-pack/legacy/plugins/reporting/server/browsers/download/checksum.ts index b5e50fcebd45..fd68a8e356e1 100644 --- a/x-pack/legacy/plugins/reporting/server/browsers/download/checksum.ts +++ b/x-pack/legacy/plugins/reporting/server/browsers/download/checksum.ts @@ -7,7 +7,6 @@ import { createHash } from 'crypto'; import { createReadStream } from 'fs'; -// @ts-ignore import { readableEnd } from './util'; export async function md5(path: string) { diff --git a/x-pack/legacy/plugins/reporting/server/browsers/download/clean.js b/x-pack/legacy/plugins/reporting/server/browsers/download/clean.ts similarity index 85% rename from x-pack/legacy/plugins/reporting/server/browsers/download/clean.js rename to x-pack/legacy/plugins/reporting/server/browsers/download/clean.ts index ad487311e12d..394b76d77253 100644 --- a/x-pack/legacy/plugins/reporting/server/browsers/download/clean.js +++ b/x-pack/legacy/plugins/reporting/server/browsers/download/clean.ts @@ -14,12 +14,9 @@ import { log, asyncMap } from './util'; /** * Delete any file in the `dir` that is not in the expectedPaths - * @param {String} dir - * @param {Array} expectedPaths - * @return {Promise} */ -export async function clean(dir, expectedPaths) { - let filenames; +export async function clean(dir: string, expectedPaths: string[]) { + let filenames: string[]; try { filenames = await readdirSync(dir); } catch (error) { diff --git a/x-pack/legacy/plugins/reporting/server/browsers/download/download.test.js b/x-pack/legacy/plugins/reporting/server/browsers/download/download.test.ts similarity index 55% rename from x-pack/legacy/plugins/reporting/server/browsers/download/download.test.js rename to x-pack/legacy/plugins/reporting/server/browsers/download/download.test.ts index 61b505703a75..901fc6ccf9b2 100644 --- a/x-pack/legacy/plugins/reporting/server/browsers/download/download.test.js +++ b/x-pack/legacy/plugins/reporting/server/browsers/download/download.test.ts @@ -7,6 +7,7 @@ import { createHash } from 'crypto'; import { resolve as resolvePath } from 'path'; import { readFileSync } from 'fs'; +import { Readable } from 'stream'; import del from 'del'; import { download } from './download'; @@ -14,41 +15,27 @@ import { download } from './download'; const TEMP_DIR = resolvePath(__dirname, '__tmp__'); const TEMP_FILE = resolvePath(TEMP_DIR, 'foo/bar/download'); -jest.mock('request', () => { - let resp = ''; - const sinon = require('sinon'); - const Readable = require('stream').Readable; - const request = sinon.spy(function () { - return new Readable({ - read() { - if (resp instanceof Error) { - this.emit('error', resp); - return; - } +class ReadableOf extends Readable { + constructor(private readonly responseBody: string) { + super(); + } - this.push(resp.shift()); + _read() { + this.push(this.responseBody); + this.push(null); + } +} - if (resp.length === 0) { - this.push(null); - } - } - }); - }); - - request._setResponse = (chunks) => { - if (typeof chunks === 'string') { - chunks = chunks.split(''); - } - - resp = chunks; - }; - - return request; -}); +jest.mock('axios'); +const request: jest.Mock = jest.requireMock('axios').request; test('downloads the url to the path', async () => { const BODY = 'abdcefg'; - require('request')._setResponse(BODY); + request.mockImplementationOnce(async () => { + return { + data: new ReadableOf(BODY), + }; + }); await download('url', TEMP_FILE); expect(readFileSync(TEMP_FILE, 'utf8')).toEqual(BODY); @@ -56,18 +43,25 @@ test('downloads the url to the path', async () => { test('returns the md5 hex hash of the http body', async () => { const BODY = 'foobar'; - const HASH = createHash('md5').update(BODY).digest('hex'); - require('request')._setResponse(BODY); + const HASH = createHash('md5') + .update(BODY) + .digest('hex'); + request.mockImplementationOnce(async () => { + return { + data: new ReadableOf(BODY), + }; + }); const returned = await download('url', TEMP_FILE); expect(returned).toEqual(HASH); }); test('throws if request emits an error', async () => { - require('request')._setResponse(new Error('foo')); + request.mockImplementationOnce(async () => { + throw new Error('foo'); + }); + return expect(download('url', TEMP_FILE)).rejects.toThrow('foo'); }); -afterEach(async () => ( - await del(TEMP_DIR) -)); +afterEach(async () => await del(TEMP_DIR)); diff --git a/x-pack/legacy/plugins/reporting/server/browsers/download/download.js b/x-pack/legacy/plugins/reporting/server/browsers/download/download.ts similarity index 68% rename from x-pack/legacy/plugins/reporting/server/browsers/download/download.js rename to x-pack/legacy/plugins/reporting/server/browsers/download/download.ts index f8436f5ce7af..a5ad69b46e46 100644 --- a/x-pack/legacy/plugins/reporting/server/browsers/download/download.js +++ b/x-pack/legacy/plugins/reporting/server/browsers/download/download.ts @@ -8,9 +8,9 @@ import { openSync, writeSync, closeSync, mkdirSync } from 'fs'; import { createHash } from 'crypto'; import { dirname } from 'path'; -import request from 'request'; +import Axios from 'axios'; -import { log, readableEnd } from './util'; +import { log } from './util'; /** * Download a url and calculate it's checksum @@ -18,7 +18,7 @@ import { log, readableEnd } from './util'; * @param {String} path * @return {Promise} checksum of the downloaded file */ -export async function download(url, path) { +export async function download(url: string, path: string) { log(`Downloading ${url}`); const hash = createHash('md5'); @@ -27,11 +27,20 @@ export async function download(url, path) { const handle = openSync(path, 'w'); try { - const readable = request(url).on('data', chunk => { + const resp = await Axios.request({ + url, + method: 'GET', + responseType: 'stream', + }); + + resp.data.on('data', (chunk: Buffer) => { writeSync(handle, chunk); hash.update(chunk); }); - await readableEnd(readable); + + await new Promise((resolve, reject) => { + resp.data.on('error', reject).on('end', resolve); + }); } finally { closeSync(handle); } diff --git a/x-pack/legacy/plugins/reporting/server/browsers/download/ensure_downloaded.js b/x-pack/legacy/plugins/reporting/server/browsers/download/ensure_downloaded.ts similarity index 68% rename from x-pack/legacy/plugins/reporting/server/browsers/download/ensure_downloaded.js rename to x-pack/legacy/plugins/reporting/server/browsers/download/ensure_downloaded.ts index 2a8052689e02..d322566f9aa1 100644 --- a/x-pack/legacy/plugins/reporting/server/browsers/download/ensure_downloaded.js +++ b/x-pack/legacy/plugins/reporting/server/browsers/download/ensure_downloaded.ts @@ -7,21 +7,20 @@ import { resolve as resolvePath } from 'path'; import { existsSync } from 'fs'; -import { BROWSERS_BY_TYPE } from '../browsers'; +import { BROWSERS_BY_TYPE, BrowserType } from '../browsers'; import { md5 } from './checksum'; import { asyncMap } from './util'; import { download } from './download'; import { clean } from './clean'; - /** * Check for the downloaded archive of each requested browser type and * download them if they are missing or their checksum is invalid * @param {String} browserType * @return {Promise} */ -export async function ensureBrowserDownloaded(browserType) { +export async function ensureBrowserDownloaded(browserType: BrowserType) { await ensureDownloaded([BROWSERS_BY_TYPE[browserType]]); } @@ -33,7 +32,6 @@ export async function ensureAllBrowsersDownloaded() { await ensureDownloaded(Object.values(BROWSERS_BY_TYPE)); } - /** * Clears the unexpected files in the browsers archivesPath * and ensures that all packages/archives are downloaded and @@ -41,20 +39,29 @@ export async function ensureAllBrowsersDownloaded() { * @param {BrowserSpec} browsers * @return {Promise} */ -async function ensureDownloaded(browsers) { - await asyncMap(Object.values(browsers), async (browser) => { +async function ensureDownloaded( + browsers: Array<{ + paths: { + archivesPath: string; + baseUrl: string; + packages: Array<{ archiveFilename: string; archiveChecksum: string }>; + }; + }> +) { + await asyncMap(browsers, async browser => { const { archivesPath } = browser.paths; - await clean(archivesPath, browser.paths.packages.map(p => ( - resolvePath(archivesPath, p.archiveFilename) - ))); + await clean( + archivesPath, + browser.paths.packages.map(p => resolvePath(archivesPath, p.archiveFilename)) + ); - const invalidChecksums = []; + const invalidChecksums: string[] = []; await asyncMap(browser.paths.packages, async ({ archiveFilename, archiveChecksum }) => { const url = `${browser.paths.baseUrl}${archiveFilename}`; const path = resolvePath(archivesPath, archiveFilename); - if (existsSync(path) && await md5(path) === archiveChecksum) { + if (existsSync(path) && (await md5(path)) === archiveChecksum) { return; } @@ -65,7 +72,11 @@ async function ensureDownloaded(browsers) { }); if (invalidChecksums.length) { - throw new Error(`Error downloading browsers, checksums incorrect for:\n - ${invalidChecksums.join('\n - ')}`); + throw new Error( + `Error downloading browsers, checksums incorrect for:\n - ${invalidChecksums.join( + '\n - ' + )}` + ); } }); } diff --git a/x-pack/legacy/plugins/reporting/server/browsers/download/index.js b/x-pack/legacy/plugins/reporting/server/browsers/download/index.js deleted file mode 100644 index 9fbfa918e769..000000000000 --- a/x-pack/legacy/plugins/reporting/server/browsers/download/index.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export { - ensureBrowserDownloaded, - ensureAllBrowsersDownloaded, -} from './ensure_downloaded'; diff --git a/x-pack/tasks/helpers/get_flags.js b/x-pack/legacy/plugins/reporting/server/browsers/download/index.ts similarity index 72% rename from x-pack/tasks/helpers/get_flags.js rename to x-pack/legacy/plugins/reporting/server/browsers/download/index.ts index 397330daf4bd..bf7ed450b462 100644 --- a/x-pack/tasks/helpers/get_flags.js +++ b/x-pack/legacy/plugins/reporting/server/browsers/download/index.ts @@ -4,6 +4,4 @@ * you may not use this file except in compliance with the Elastic License. */ -export default function getFlags() { - return process.argv.slice(3); -} +export { ensureBrowserDownloaded, ensureAllBrowsersDownloaded } from './ensure_downloaded'; diff --git a/x-pack/legacy/plugins/reporting/server/browsers/download/util.js b/x-pack/legacy/plugins/reporting/server/browsers/download/util.ts similarity index 65% rename from x-pack/legacy/plugins/reporting/server/browsers/download/util.js rename to x-pack/legacy/plugins/reporting/server/browsers/download/util.ts index f9cc905e0126..679106742e3d 100644 --- a/x-pack/legacy/plugins/reporting/server/browsers/download/util.js +++ b/x-pack/legacy/plugins/reporting/server/browsers/download/util.ts @@ -4,33 +4,30 @@ * you may not use this file except in compliance with the Elastic License. */ +import { Readable } from 'stream'; + /** * Log a message if the DEBUG environment variable is set - * @param {...any} args - * @return {undefined} */ -export function log(...args) { +export function log(...args: any[]) { if (process.env.DEBUG) { + // allow console log since this is off by default and only for debugging + // eslint-disable-next-line no-console console.log(...args); } } /** * Iterate an array asynchronously and in parallel - * @param {Array} array - * @param {Function} asyncFn - * @return {Promise} */ -export function asyncMap(array, asyncFn) { +export function asyncMap(array: T[], asyncFn: (x: T) => T2): Promise { return Promise.all(array.map(asyncFn)); } /** * Wait for a readable stream to end - * @param {Stream.Readable} stream - * @return {Promise} */ -export function readableEnd(stream) { +export function readableEnd(stream: Readable) { return new Promise((resolve, reject) => { stream.on('error', reject).on('end', resolve); }); diff --git a/x-pack/legacy/plugins/reporting/server/browsers/index.js b/x-pack/legacy/plugins/reporting/server/browsers/index.ts similarity index 100% rename from x-pack/legacy/plugins/reporting/server/browsers/index.js rename to x-pack/legacy/plugins/reporting/server/browsers/index.ts diff --git a/x-pack/package.json b/x-pack/package.json index 5f70fa798b0b..e5d3a13c2c10 100644 --- a/x-pack/package.json +++ b/x-pack/package.json @@ -9,7 +9,7 @@ "kbn:bootstrap": "node legacy/plugins/canvas/scripts/storybook --clean", "start": "gulp dev", "build": "gulp build", - "testonly": "gulp testonly", + "testonly": "echo 'Deprecated, use `yarn test`' && gulp test", "test": "gulp test", "test:browser:dev": "gulp testbrowser-dev", "test:browser": "gulp testbrowser", @@ -56,10 +56,13 @@ "@types/d3-time": "^1.0.10", "@types/d3-time-format": "^2.1.1", "@types/elasticsearch": "^5.0.33", + "@types/fancy-log": "^1.3.1", "@types/file-saver": "^2.0.0", + "@types/getos": "^3.0.0", "@types/git-url-parse": "^9.0.0", "@types/glob": "^7.1.1", "@types/graphql": "^0.13.1", + "@types/gulp": "^4.0.6", "@types/hapi__wreck": "^15.0.1", "@types/history": "^4.7.3", "@types/jest": "^24.0.18", @@ -122,7 +125,6 @@ "copy-webpack-plugin": "^5.0.4", "cypress": "^3.4.1", "del": "^4.1.1", - "dotenv": "2.0.0", "enzyme": "^3.10.0", "enzyme-adapter-react-16": "^1.14.0", "enzyme-adapter-utils": "^1.12.0", @@ -134,8 +136,8 @@ "graphql-codegen-introspection-template": "^0.13.0", "graphql-codegen-typescript-resolvers-template": "^0.13.0", "graphql-codegen-typescript-template": "^0.13.0", - "gulp": "3.9.1", - "gulp-mocha": "^7.0.1", + "gulp": "4.0.2", + "gulp-mocha": "^7.0.2", "gulp-multi-process": "1.3.1", "hapi": "^17.5.3", "jest": "^24.9.0", @@ -162,7 +164,6 @@ "react-testing-library": "^6.0.0", "redux-test-utils": "0.2.2", "rsync": "0.6.1", - "run-sequence": "^2.2.1", "sass-loader": "^7.3.1", "simple-git": "1.116.0", "sinon": "^7.4.2", diff --git a/x-pack/tasks/build.js b/x-pack/tasks/build.js deleted file mode 100644 index ee7f22a4f203..000000000000 --- a/x-pack/tasks/build.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { resolve } from 'path'; -import { writeFileSync } from 'fs'; -import pluginHelpers from '@kbn/plugin-helpers'; -import { ToolingLog } from '@kbn/dev-utils'; -import { generateNoticeFromSource } from '../../src/dev'; - -export default (gulp, { buildTarget }) => { - gulp.task('build', ['clean', 'report', 'prepare:build'], async () => { - await pluginHelpers.run('build', { - skipArchive: true, - buildDestination: buildTarget, - }); - - const buildRoot = resolve(buildTarget, 'kibana/x-pack'); - - const log = new ToolingLog({ - level: 'info', - writeTo: process.stdout - }); - - writeFileSync( - resolve(buildRoot, 'NOTICE.txt'), - await generateNoticeFromSource({ - productName: 'Kibana X-Pack', - log, - directory: buildRoot - }) - ); - }); -}; diff --git a/x-pack/tasks/build.ts b/x-pack/tasks/build.ts new file mode 100644 index 000000000000..6bc615613387 --- /dev/null +++ b/x-pack/tasks/build.ts @@ -0,0 +1,70 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { resolve } from 'path'; +import { writeFileSync } from 'fs'; + +import pluginHelpers from '@kbn/plugin-helpers'; +import { ToolingLog, REPO_ROOT } from '@kbn/dev-utils'; +import gulp from 'gulp'; +import del from 'del'; +import fancyLog from 'fancy-log'; +import chalk from 'chalk'; + +import { generateNoticeFromSource } from '../../src/dev/notice'; +import { prepareTask } from './prepare'; +import { gitInfo } from './helpers/git_info'; +import { PKG_NAME } from './helpers/pkg'; +import { BUILD_VERSION } from './helpers/build_version'; + +const BUILD_DIR = resolve(REPO_ROOT, 'x-pack/build'); +const PLUGIN_BUILD_DIR = resolve(BUILD_DIR, 'plugin'); + +async function cleanBuildTask() { + fancyLog('Deleting', BUILD_DIR); + await del(BUILD_DIR); +} + +async function reportTask() { + const info = await gitInfo(); + + fancyLog('Package Name', chalk.yellow(PKG_NAME)); + fancyLog('Version', chalk.yellow(BUILD_VERSION)); + fancyLog('Build Number', chalk.yellow(`${info.number}`)); + fancyLog('Build SHA', chalk.yellow(info.sha)); +} + +async function pluginHelpersBuild() { + await pluginHelpers.run('build', { + skipArchive: true, + buildDestination: PLUGIN_BUILD_DIR, + }); +} + +async function generateNoticeText() { + const buildRoot = resolve(PLUGIN_BUILD_DIR, 'kibana/x-pack'); + const log = new ToolingLog({ + level: 'info', + writeTo: process.stdout, + }); + + writeFileSync( + resolve(buildRoot, 'NOTICE.txt'), + await generateNoticeFromSource({ + productName: 'Kibana X-Pack', + log, + directory: buildRoot, + }) + ); +} + +export const buildTask = gulp.series( + cleanBuildTask, + reportTask, + prepareTask, + pluginHelpersBuild, + generateNoticeText +); diff --git a/x-pack/tasks/clean.js b/x-pack/tasks/clean.js deleted file mode 100644 index 8e2098c3b474..000000000000 --- a/x-pack/tasks/clean.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ -import del from 'del'; - -export default (gulp, { coverageDir, buildDir, packageDir, log }) => { - gulp.task('clean-test', () => { - log('Deleting', coverageDir); - return del([coverageDir]); - }); - - gulp.task('clean', ['clean-test'], () => { - const toDelete = [ - buildDir, - packageDir, - ]; - log('Deleting', toDelete.join(', ')); - return del(toDelete); - }); -}; diff --git a/x-pack/tasks/dev.js b/x-pack/tasks/dev.ts similarity index 55% rename from x-pack/tasks/dev.js rename to x-pack/tasks/dev.ts index 048e32ed8657..6e398f231a27 100644 --- a/x-pack/tasks/dev.js +++ b/x-pack/tasks/dev.ts @@ -5,8 +5,12 @@ */ import pluginHelpers from '@kbn/plugin-helpers'; -import getFlags from './helpers/get_flags'; +import gulp from 'gulp'; -export default (gulp) => { - gulp.task('dev', ['prepare:dev'], () => pluginHelpers.run('start', { flags: getFlags() })); -}; +import { prepareTask } from './prepare'; + +export const devTask = gulp.series(prepareTask, async function startKibanaServer() { + await pluginHelpers.run('start', { + flags: process.argv.slice(3), + }); +}); diff --git a/x-pack/tasks/helpers/build_version.js b/x-pack/tasks/helpers/build_version.js deleted file mode 100644 index f77e1fb7168f..000000000000 --- a/x-pack/tasks/helpers/build_version.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import yargs from 'yargs'; -import semver from 'semver'; - -yargs - .alias('r', 'release').describe('r', 'Create a release build, not a snapshot') - .option('build-qualifier', { - default: null - }); -const argv = yargs.argv; - -export default function getVersion(pkg) { - const { version } = pkg; - if (!version) { - throw new Error('No version found in package.json'); - } - if (!semver.valid(version)) { - throw new Error(`Version is not valid semver: ${version}`); - } - - const snapshotText = (argv.release) ? '' : '-SNAPSHOT'; - const qualifierText = argv.buildQualifier ? '-' + argv.buildQualifier : ''; - return `${version}${qualifierText}${snapshotText}`; -} diff --git a/x-pack/tasks/helpers/build_version.ts b/x-pack/tasks/helpers/build_version.ts new file mode 100644 index 000000000000..7e9954ed3f75 --- /dev/null +++ b/x-pack/tasks/helpers/build_version.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { PKG_VERSION } from './pkg'; +import { FLAGS } from './flags'; + +const snapshotText = FLAGS.release ? '' : '-SNAPSHOT'; +const qualifierText = FLAGS.buildQualifier ? '-' + FLAGS.buildQualifier : ''; +export const BUILD_VERSION = `${PKG_VERSION}${qualifierText}${snapshotText}`; diff --git a/x-pack/tasks/helpers/flags.ts b/x-pack/tasks/helpers/flags.ts new file mode 100644 index 000000000000..62a382b02ed2 --- /dev/null +++ b/x-pack/tasks/helpers/flags.ts @@ -0,0 +1,70 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { resolve } from 'path'; + +import log from 'fancy-log'; +import getopts from 'getopts'; +import { toArray } from 'rxjs/operators'; + +// @ts-ignore complicated module doesn't have types yet +import { findPluginSpecs } from '../../../src/legacy/plugin_discovery'; + +/* + Usage: + Specifying which plugins to run tests can be done with the --plugins flag. + One of more plugins can be specified, and each one should be command separated, like so: + gulp testserver --plugins monitoring,reporting + If using with yarn: + yarn test:server --plugins graph +*/ + +const opts = Object.freeze( + getopts(process.argv.slice(2), { + alias: { + release: 'r', + }, + boolean: ['release', 'flags'], + string: ['build-qualifier', 'plugins'], + }) +); + +if (opts.flags) { + log(` + X-Pack Gulpfile Flags: + + --flags Print this message + --plugins Comma-separated list of plugins + --release, -r Build to a release version + --build-qualifier Qualifier to include in the build version + `); + process.exit(0); +} + +export const FLAGS = { + release: !!opts.release, + buildQualifier: opts.buildQualifier as string | undefined, + plugins: opts.plugins + ? String(opts.plugins) + .split(',') + .map(id => id.trim()) + : undefined, +}; + +export async function getEnabledPlugins() { + if (FLAGS.plugins) { + return FLAGS.plugins; + } + + const { spec$ } = findPluginSpecs({ + plugins: { + paths: [resolve(__dirname, '..', '..')], + }, + }); + + const enabledPlugins: Array<{ getId: () => string }> = await spec$.pipe(toArray()).toPromise(); + return enabledPlugins.map(spec => spec.getId()); +} diff --git a/x-pack/tasks/helpers/get_plugins.js b/x-pack/tasks/helpers/get_plugins.js deleted file mode 100644 index a540cda27bd7..000000000000 --- a/x-pack/tasks/helpers/get_plugins.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { resolve } from 'path'; -import yargs from 'yargs'; -import glob from 'glob'; -import { toArray } from 'rxjs/operators'; -import { findPluginSpecs } from '../../../src/legacy/plugin_discovery'; - -/* - Usage: - Specifying which plugins to run tests can be done with the --plugins flag. - One of more plugins can be specified, and each one should be command separated, like so: - gulp testserver --plugins monitoring,reporting - If using with yarn: - yarn test:server --plugins graph -*/ - -const argv = yargs - .describe('plugins', 'Comma-separated list of plugins') - .argv; -const allPlugins = glob.sync('*', { cwd: resolve(__dirname, '..', '..', 'legacy', 'plugins') }); - -export function getPlugins() { - const plugins = argv.plugins && argv.plugins.split(','); - if (!Array.isArray(plugins) || plugins.length === 0) { - return allPlugins; - } - return plugins; -} - -const { spec$ } = findPluginSpecs({ - plugins: { paths: [resolve(__dirname, '..', '..')] } -}); - -export async function getEnabledPlugins() { - const plugins = argv.plugins && argv.plugins.split(','); - if (!Array.isArray(plugins) || plugins.length === 0) { - const enabledPlugins = await spec$.pipe(toArray()).toPromise(); - return enabledPlugins.map(spec => spec.getId()); - } - return plugins; -} diff --git a/x-pack/tasks/helpers/git_info.js b/x-pack/tasks/helpers/git_info.ts similarity index 50% rename from x-pack/tasks/helpers/git_info.js rename to x-pack/tasks/helpers/git_info.ts index 8e6f46300474..3c144e6cc10d 100644 --- a/x-pack/tasks/helpers/git_info.js +++ b/x-pack/tasks/helpers/git_info.ts @@ -5,20 +5,24 @@ */ import path from 'path'; +// @ts-ignore barely used, untyped module import simpleGit from 'simple-git'; const gitDir = path.resolve(__dirname, '..', '..'); -export default function gitInfo() { +export async function gitInfo() { const git = simpleGit(gitDir); - return new Promise((resolve, reject) => { - git.log((err, log) => { - if (err) return reject(err); - resolve({ - number: log.total, - sha: log.latest.hash, - }); + return new Promise<{ number: number; sha: string }>((resolve, reject) => { + git.log((err: undefined | Error, log: { total: number; latest: { hash: string } }) => { + if (err) { + reject(err); + } else { + resolve({ + number: log.total, + sha: log.latest.hash, + }); + } }); }); } diff --git a/x-pack/tasks/helpers/globs.js b/x-pack/tasks/helpers/globs.js deleted file mode 100644 index 0576389c9424..000000000000 --- a/x-pack/tasks/helpers/globs.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { getPlugins } from './get_plugins'; - -/* - * Note: The path `plugins / pluginName / ** / __tests__ / ** / *.js` will match - * all public and server tests, so a special var must be used for "index" tests - * paths: `plugins / pluginName / __tests__ / ** / *.js` - */ -function getPluginPaths(plugins, opts = {}) { - const testPath = opts.tests ? '__tests__/**' : ''; - - return plugins.reduce((paths, pluginName) => { - const plugin = pluginName.trim(); - - const commonPath = `${plugin}/common`; - const serverPath = `${plugin}/**/server`; - const publicPath = `${plugin}/**/public`; - - const indexPaths = `legacy/plugins/${plugin}/${testPath}/*.js`; // index and helpers - const commonPaths = `legacy/plugins/${commonPath}/**/${testPath}/*.js`; - const serverPaths = `legacy/plugins/${serverPath}/**/${testPath}/*.js`; - const publicPaths = `legacy/plugins/${publicPath}/**/${testPath}/*.js`; - - paths = paths.concat([indexPaths, commonPaths, serverPaths]); - if (plugin === 'code') { - paths.push(`legacy/plugins/${serverPath}/**/${testPath}/*.ts`); - } - if (opts.browser) { - paths = paths.concat(publicPaths); - } - - return paths; - }, []); -} - -export function forPlugins() { - const plugins = getPlugins(); - return getPluginPaths(plugins, { browser: true }); -} - -export function forPluginServerTests() { - const plugins = getPlugins(); - return getPluginPaths(plugins, { tests: true }); -} diff --git a/x-pack/tasks/helpers/pkg.ts b/x-pack/tasks/helpers/pkg.ts new file mode 100644 index 000000000000..8411ebcf7186 --- /dev/null +++ b/x-pack/tasks/helpers/pkg.ts @@ -0,0 +1,33 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import Fs from 'fs'; +import semver from 'semver'; + +interface PackageJson { + name: string; + version: string; + dependencies: Record; + devDependencies: Record; + [key: string]: unknown; +} + +const PKG_PATH = require.resolve('../../package.json'); +export const PKG: PackageJson = JSON.parse(Fs.readFileSync(PKG_PATH, 'utf8')); +export const PKG_VERSION = PKG.version; +export const PKG_NAME = PKG.name; + +if (!PKG_VERSION) { + throw new Error('No "version" found in package.json'); +} + +if (!PKG_NAME) { + throw new Error('No "name" found in package.json'); +} + +if (!semver.valid(PKG_VERSION)) { + throw new Error(`Version is not valid semver: ${PKG_VERSION}`); +} diff --git a/x-pack/tasks/prepare.js b/x-pack/tasks/prepare.js deleted file mode 100644 index 287781a81940..000000000000 --- a/x-pack/tasks/prepare.js +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { ensureAllBrowsersDownloaded } from '../legacy/plugins/reporting/server/browsers'; - -export default gulp => { - // anything that should always happen before anything else - gulp.task('prepare', () => ensureAllBrowsersDownloaded()); - - // anything that needs to happen before development - gulp.task('prepare:dev', ['prepare']); - - // anything that needs to happen before building - gulp.task('prepare:build', ['prepare']); -}; diff --git a/x-pack/legacy/plugins/canvas/tasks/mocks/uiStorage.js b/x-pack/tasks/prepare.ts similarity index 58% rename from x-pack/legacy/plugins/canvas/tasks/mocks/uiStorage.js rename to x-pack/tasks/prepare.ts index ff10d2d4bf68..6d4eb5603ad3 100644 --- a/x-pack/legacy/plugins/canvas/tasks/mocks/uiStorage.js +++ b/x-pack/tasks/prepare.ts @@ -4,12 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -export class Storage { - get(key) { - return this[key]; - } +import { ensureAllBrowsersDownloaded } from '../legacy/plugins/reporting/server/browsers'; - set(key, value) { - this[key] = value; - } -} +export const prepareTask = async () => { + await ensureAllBrowsersDownloaded(); +}; diff --git a/x-pack/tasks/report.js b/x-pack/tasks/report.js deleted file mode 100644 index a7e1a2e31de5..000000000000 --- a/x-pack/tasks/report.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import buildVersion from './helpers/build_version'; -import gitInfo from './helpers/git_info'; -import chalk from 'chalk'; - -export default (gulp, { log, pkg }) => { - gulp.task('report', () => { - return gitInfo() - .then(function (info) { - log('Package Name', chalk.yellow(pkg.name)); - log('Version', chalk.yellow(buildVersion(pkg))); - log('Build Number', chalk.yellow(info.number)); - log('Build SHA', chalk.yellow(info.sha)); - }); - }); -}; diff --git a/x-pack/tasks/test.js b/x-pack/tasks/test.js deleted file mode 100644 index 5aae780dda6d..000000000000 --- a/x-pack/tasks/test.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import runSequence from 'run-sequence'; -import pluginHelpers from '@kbn/plugin-helpers'; -import { getEnabledPlugins } from './helpers/get_plugins'; -import { forPluginServerTests } from './helpers/globs'; -import { createAutoJUnitReporter } from '../../src/dev'; - -const MOCHA_OPTIONS = { - ui: 'bdd', - require: require.resolve('../../src/setup_node_env'), - reporter: createAutoJUnitReporter({ - reportName: 'X-Pack Mocha Tests', - }), -}; - -export default (gulp, { mocha }) => { - gulp.task('test', (cb) => { - const preTasks = ['clean-test']; - runSequence(preTasks, 'testserver', 'testbrowser', cb); - }); - - gulp.task('testonly', ['testserver', 'testbrowser']); - - gulp.task('testserver', () => { - const globs = [ - 'common/**/__tests__/**/*.js', - 'server/**/__tests__/**/*.js', - ].concat(forPluginServerTests()); - return gulp.src(globs, { read: false }) - .pipe(mocha(MOCHA_OPTIONS)); - }); - - gulp.task('testbrowser', () => { - return getEnabledPlugins().then(plugins => { - return pluginHelpers.run('testBrowser', { - plugins: plugins.join(','), - }); - }); - }); - - gulp.task('testbrowser-dev', () => { - return getEnabledPlugins().then(plugins => { - return pluginHelpers.run('testBrowser', { - dev: true, - plugins: plugins.join(','), - }); - }); - }); -}; diff --git a/x-pack/tasks/test.ts b/x-pack/tasks/test.ts new file mode 100644 index 000000000000..d172a0234fe4 --- /dev/null +++ b/x-pack/tasks/test.ts @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import pluginHelpers from '@kbn/plugin-helpers'; +// @ts-ignore no types available +import mocha from 'gulp-mocha'; +import gulp from 'gulp'; + +// @ts-ignore untyped, converted in a different location in master +import { createAutoJUnitReporter } from '../../src/dev/mocha'; +import { getEnabledPlugins } from './helpers/flags'; + +export const testServerTask = async () => { + const pluginIds = await getEnabledPlugins(); + + const testGlobs = ['common/**/__tests__/**/*.js', 'server/**/__tests__/**/*.js']; + + if (pluginIds.includes('code')) { + testGlobs.push(`legacy/plugins/**/server/**/__tests__/**/*.ts`); + } + + for (const pluginId of pluginIds) { + testGlobs.push( + `legacy/plugins/${pluginId}/__tests__/**/*.js`, + `legacy/plugins/${pluginId}/common/**/__tests__/**/*.js`, + `legacy/plugins/${pluginId}/**/server/**/__tests__/**/*.js` + ); + } + + return gulp.src(testGlobs, { read: false }).pipe( + mocha({ + ui: 'bdd', + require: require.resolve('../../src/setup_node_env'), + reporter: createAutoJUnitReporter({ + reportName: 'X-Pack Mocha Tests', + }), + }) + ); +}; + +export const testBrowserTask = async () => { + const plugins = await getEnabledPlugins(); + await pluginHelpers.run('testBrowser', { + plugins: plugins.join(','), + }); +}; + +export const testBrowserDevTask = async () => { + const plugins = await getEnabledPlugins(); + await pluginHelpers.run('testBrowser', { + dev: true, + plugins: plugins.join(','), + }); +}; + +export const testTask = gulp.series(testServerTask, testBrowserTask); diff --git a/x-pack/tsconfig.json b/x-pack/tsconfig.json index d0452ae20a69..82b2131a0a85 100644 --- a/x-pack/tsconfig.json +++ b/x-pack/tsconfig.json @@ -6,7 +6,8 @@ "legacy/server/**/*", "legacy/plugins/**/*", "plugins/**/*", - "test_utils/**/*" + "test_utils/**/*", + "tasks/**/*" ], "exclude": [ "test/**/*", diff --git a/yarn.lock b/yarn.lock index 6124827a3395..179e8287d91c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3284,6 +3284,11 @@ dependencies: "@types/node" "*" +"@types/fancy-log@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/fancy-log/-/fancy-log-1.3.1.tgz#dd94fbc8c2e2ab8ab402ca8d04bb8c34965f0696" + integrity sha512-31Dt9JaGfHretvwVxCBrCFL5iC9MQ3zOXpu+8C4qzW0cxc5rJJVGxB5c/vZ+wmeTk/JjPz/D0gv8BZ+Ip6iCqQ== + "@types/fetch-mock@^7.3.1": version "7.3.1" resolved "https://registry.yarnpkg.com/@types/fetch-mock/-/fetch-mock-7.3.1.tgz#df7421e8bcb351b430bfbfa5c52bb353826ac94f" @@ -3318,11 +3323,24 @@ resolved "https://registry.yarnpkg.com/@types/getopts/-/getopts-2.0.1.tgz#b7e5478fe7571838b45aff736a59ab69b8bcda18" integrity sha512-JsQJHtzLYKunMz7acYOX6x5IJ/42CsjjHFfLCmis1Hn/qFoD/y0kJFUIAg8HoDigQpKUcWj55d8rxZQBnvz1Pw== +"@types/getos@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/getos/-/getos-3.0.0.tgz#582c758e99e9d634f31f471faf7ce59cf1c39a71" + integrity sha512-g5O9kykBPMaK5USwU+zM5AyXaztqbvHjSQ7HaBjqgO3f5lKGChkRhLP58Z/Nrr4RBGNNPrBcJkWZwnmbmi9YjQ== + "@types/git-url-parse@^9.0.0": version "9.0.0" resolved "https://registry.yarnpkg.com/@types/git-url-parse/-/git-url-parse-9.0.0.tgz#aac1315a44fa4ed5a52c3820f6c3c2fb79cbd12d" integrity sha512-kA2RxBT/r/ZuDDKwMl+vFWn1Z0lfm1/Ik6Qb91wnSzyzCDa/fkM8gIOq6ruB7xfr37n6Mj5dyivileUVKsidlg== +"@types/glob-stream@*": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/glob-stream/-/glob-stream-6.1.0.tgz#7ede8a33e59140534f8d8adfb8ac9edfb31897bc" + integrity sha512-RHv6ZQjcTncXo3thYZrsbAVwoy4vSKosSWhuhuQxLOTv74OJuFQxXkmUuZCr3q9uNBEVCvIzmZL/FeRNbHZGUg== + dependencies: + "@types/glob" "*" + "@types/node" "*" + "@types/glob@*", "@types/glob@^5.0.35": version "5.0.35" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.35.tgz#1ae151c802cece940443b5ac246925c85189f32a" @@ -3361,6 +3379,15 @@ resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.13.4.tgz#55ae9c29f0fd6b85ee536f5c72b4769d5c5e06b1" integrity sha512-B4yel4ro2nTb3v0pYO8vO6SjgvFJSrwUY+IO6TUSLdOSB+gQFslylrhRCHxvXMIhxB71mv5PEE9dAX+24S8sew== +"@types/gulp@^4.0.6": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/gulp/-/gulp-4.0.6.tgz#68fe0e1f0ff3657cfca46fb564806b744a1bf899" + integrity sha512-0E8/iV/7FKWyQWSmi7jnUvgXXgaw+pfAzEB06Xu+l0iXVJppLbpOye5z7E2klw5akXd+8kPtYuk65YBcZPM4ow== + dependencies: + "@types/undertaker" "*" + "@types/vinyl-fs" "*" + chokidar "^2.1.2" + "@types/hapi-auth-cookie@^9.1.0": version "9.1.0" resolved "https://registry.yarnpkg.com/@types/hapi-auth-cookie/-/hapi-auth-cookie-9.1.0.tgz#cbcd2236b7d429bd0632a8cc45cfd355fdd7e7a2" @@ -4095,6 +4122,18 @@ resolved "https://registry.yarnpkg.com/@types/type-detect/-/type-detect-4.0.1.tgz#3b0f5ac82ea630090cbf57c57a1bf5a63a29b9b6" integrity sha512-0+S1S9Iq0oJ9w9IaBC5W/z1WsPNDUIAJG+THGmqR4vUAxUPCzIY+dApTvyGsaBUWjafTDL0Dg8Z9+iRuk3/BQA== +"@types/undertaker-registry@*": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/undertaker-registry/-/undertaker-registry-1.0.1.tgz#4306d4a03d7acedb974b66530832b90729e1d1da" + integrity sha512-Z4TYuEKn9+RbNVk1Ll2SS4x1JeLHecolIbM/a8gveaHsW0Hr+RQMraZACwTO2VD7JvepgA6UO1A1VrbktQrIbQ== + +"@types/undertaker@*": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/undertaker/-/undertaker-1.2.2.tgz#927da24d0d3279830af96386862b035e040ead74" + integrity sha512-j4iepCSuY2JGW/hShVtUBagic0klYNFIXP7VweavnYnNC2EjiKxJFeaS9uaJmAT0ty9sQSqTS1aagWMZMV0HyA== + dependencies: + "@types/undertaker-registry" "*" + "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" @@ -4129,6 +4168,22 @@ "@types/unist" "*" "@types/vfile-message" "*" +"@types/vinyl-fs@*", "@types/vinyl-fs@^2.4.11": + version "2.4.11" + resolved "https://registry.yarnpkg.com/@types/vinyl-fs/-/vinyl-fs-2.4.11.tgz#b98119b8bb2494141eaf649b09fbfeb311161206" + integrity sha512-2OzQSfIr9CqqWMGqmcERE6Hnd2KY3eBVtFaulVo3sJghplUcaeMdL9ZjEiljcQQeHjheWY9RlNmumjIAvsBNaA== + dependencies: + "@types/glob-stream" "*" + "@types/node" "*" + "@types/vinyl" "*" + +"@types/vinyl@*": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.3.tgz#80a6ce362ab5b32a0c98e860748a31bce9bff0de" + integrity sha512-hrT6xg16CWSmndZqOTJ6BGIn2abKyTw0B58bI+7ioUoj3Sma6u8ftZ1DTI2yCaJamOVGLOnQWiPH3a74+EaqTA== + dependencies: + "@types/node" "*" + "@types/webpack-env@*": version "1.13.9" resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.13.9.tgz#a67287861c928ebf4159a908d1fb1a2a34d4097a" @@ -4840,13 +4895,6 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.1.tgz#9638047e4213f3428a11944a7d4b31cba0a3ff95" integrity sha512-Xt+zb6nqgvV9SWAVp0EG3lRsHcbq5DDgqjPPz6pwgtj6RKz65zGXMNa82oJfOSBA/to6GmRP7Dr+6o+kbApTzQ== -ansi-cyan@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" - integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= - dependencies: - ansi-wrap "0.1.0" - ansi-escapes@^1.0.0, ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" @@ -4893,13 +4941,6 @@ ansi-html@0.0.7: resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= -ansi-red@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= - dependencies: - ansi-wrap "0.1.0" - ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" @@ -5290,28 +5331,29 @@ aria-query@^3.0.0: ast-types-flow "0.0.7" commander "^2.11.0" -arr-diff@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" - integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= - dependencies: - arr-flatten "^1.0.1" - array-slice "^0.2.3" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= +arr-filter@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" + integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= + dependencies: + make-iterator "^1.0.0" + arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== -arr-union@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" - integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= +arr-map@^2.0.0, arr-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" + integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ= + dependencies: + make-iterator "^1.0.0" arr-union@^3.1.0: version "3.1.0" @@ -5328,7 +5370,7 @@ array-differ@^3.0.0: resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== -array-each@^1.0.1: +array-each@^1.0.0, array-each@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= @@ -5381,6 +5423,21 @@ array-includes@^3.0.3: define-properties "^1.1.2" es-abstract "^1.7.0" +array-initial@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" + integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U= + dependencies: + array-slice "^1.0.0" + is-number "^4.0.0" + +array-last@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" + integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== + dependencies: + is-number "^4.0.0" + array-map@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" @@ -5411,6 +5468,15 @@ array-slice@^1.0.0: resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== +array-sort@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" + integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== + dependencies: + default-compare "^1.0.0" + get-value "^2.0.6" + kind-of "^5.0.2" + array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -5423,7 +5489,7 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-uniq@^1.0.0, array-uniq@^1.0.1, array-uniq@^1.0.2: +array-uniq@^1.0.0, array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= @@ -5581,6 +5647,16 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +async-done@^1.2.0, async-done@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2" + integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.2" + process-nextick-args "^2.0.0" + stream-exhaust "^1.0.1" + async-each@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" @@ -5608,6 +5684,13 @@ async-retry@^1.2.3: dependencies: retry "0.12.0" +async-settle@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" + integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= + dependencies: + async-done "^1.2.2" + async.queue@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/async.queue/-/async.queue-0.5.2.tgz#8d5d90812e1481066bc0904e8cc1712b17c3bd7c" @@ -6312,6 +6395,21 @@ babylon@^6.18.0: resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== +bach@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" + integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= + dependencies: + arr-filter "^1.1.1" + arr-flatten "^1.0.1" + arr-map "^2.0.0" + array-each "^1.0.0" + array-initial "^1.0.0" + array-last "^1.1.1" + async-done "^1.2.2" + async-settle "^1.0.0" + now-and-later "^2.0.0" + backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -6410,11 +6508,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -beeper@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" - integrity sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak= - before-after-hook@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.1.0.tgz#83165e15a59460d13702cb8febd6a1807896db5a" @@ -6713,7 +6806,7 @@ boxen@^3.0.0: type-fest "^0.3.0" widest-line "^2.0.0" -brace-expansion@^1.0.0, brace-expansion@^1.1.7: +brace-expansion@^1.1.7: version "1.1.8" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" integrity sha1-wHshHHyVLsH479Uad+8NHTmQopI= @@ -7648,7 +7741,7 @@ chokidar@3.2.1: optionalDependencies: fsevents "~2.1.0" -chokidar@^2.1.8: +chokidar@^2.0.0, chokidar@^2.1.2, chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -8007,11 +8100,6 @@ clone-stats@^1.0.0: resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= -clone@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" - integrity sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8= - clone@^1.0.0, clone@^1.0.1, clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -8085,6 +8173,15 @@ collapse-white-space@^1.0.2: resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.3.tgz#4b906f670e5a963a87b76b0e1689643341b6023c" integrity sha1-S5BvZw5aljqHt2sOFolkM0G2Ajw= +collection-map@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" + integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= + dependencies: + arr-map "^2.0.2" + for-own "^1.0.0" + make-iterator "^1.0.0" + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -8322,7 +8419,7 @@ 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.6.2, concat-stream@^1.4.6, concat-stream@^1.5.0, concat-stream@^1.6.1: +concat-stream@1.6.2, concat-stream@^1.4.6, concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -8569,6 +8666,14 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= +copy-props@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.4.tgz#93bb1cadfafd31da5bb8a9d4b41f471ec3a72dfe" + integrity sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A== + dependencies: + each-props "^1.3.0" + is-plain-object "^2.0.1" + copy-to-clipboard@^3.0.8: version "3.0.8" resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.0.8.tgz#f4e82f4a8830dce4666b7eb8ded0c9bcc313aba9" @@ -9701,6 +9806,13 @@ deepmerge@^4.0.0: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.0.0.tgz#3e3110ca29205f120d7cb064960a39c3d2087c09" integrity sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww== +default-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" + integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== + dependencies: + kind-of "^5.0.2" + default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -9716,12 +9828,17 @@ default-require-extensions@^2.0.0: dependencies: strip-bom "^3.0.0" +default-resolution@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" + integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= + default-uid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-uid/-/default-uid-1.0.0.tgz#fcefa9df9f5ac40c8916d912dd1fe1146aa3c59e" integrity sha1-/O+p359axAyJFtkS3R/hFGqjxZ4= -defaults@^1.0.0, defaults@^1.0.3: +defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= @@ -9848,11 +9965,6 @@ deprecated-decorator@^0.1.6: resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" integrity sha1-AJZjF7ehL+kvPMgx91g68ym4bDc= -deprecated@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" - integrity sha1-+cmvVGSvoeepcUWKi97yqpTVuxk= - deprecation@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-1.0.1.tgz#2df79b79005752180816b7b6e079cbd80490d711" @@ -10303,11 +10415,6 @@ dotenv-webpack@^1.7.0: dependencies: dotenv-defaults "^1.0.2" -dotenv@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-2.0.0.tgz#bd759c357aaa70365e01c96b7b0bec08a6e0d949" - integrity sha1-vXWcNXqqcDZeAclrewvsCKbg2Uk= - dotenv@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" @@ -10353,13 +10460,6 @@ dragselect@1.13.1: resolved "https://registry.yarnpkg.com/dragselect/-/dragselect-1.13.1.tgz#aa4166e1164b51ed5ee0cd89e0c5310a9c35be6a" integrity sha512-spfUz6/sNnlY4fF/OxPBwaKLa5hVz6V+fq5XhVuD+h47RAkA75TMkfvr4AoWUh5Ufq3V1oIAbfu+sjc9QbewoA== -duplexer2@0.0.2, duplexer2@~0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" - integrity sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds= - dependencies: - readable-stream "~1.1.9" - duplexer2@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" @@ -10367,6 +10467,13 @@ duplexer2@^0.1.4: dependencies: readable-stream "^2.0.2" +duplexer2@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + integrity sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds= + dependencies: + readable-stream "~1.1.9" + duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" @@ -10405,6 +10512,14 @@ each-async@^1.1.1: onetime "^1.0.0" set-immediate-shim "^1.0.0" +each-props@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" + integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== + dependencies: + is-plain-object "^2.0.1" + object.defaults "^1.1.0" + eachr@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/eachr/-/eachr-3.2.0.tgz#2c35e43ea086516f7997cf80b7aa64d55a4a4484" @@ -10601,13 +10716,6 @@ end-of-stream@^1.4.1: dependencies: once "^1.4.0" -end-of-stream@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" - integrity sha1-jhdyBsPICDfYVjLouTWd/osvbq8= - dependencies: - once "~1.3.0" - engine.io-client@~3.2.0: version "3.2.1" resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" @@ -11746,13 +11854,6 @@ express@^4.17.0, express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -extend-shallow@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" - integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= - dependencies: - kind-of "^1.1.0" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -11905,7 +12006,7 @@ falafel@^2.1.0: isarray "0.0.1" object-keys "^1.0.6" -fancy-log@^1.1.0, fancy-log@^1.3.2: +fancy-log@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" integrity sha1-9BEl49hPLn2JpD0G2VjI94vha+E= @@ -12314,11 +12415,6 @@ find-cache-dir@^3.0.0: make-dir "^3.0.0" pkg-dir "^4.1.0" -find-index@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" - integrity sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ= - find-root@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" @@ -12369,7 +12465,7 @@ find@^0.3.0: dependencies: traverse-chain "~0.1.0" -findup-sync@3.0.0: +findup-sync@3.0.0, findup-sync@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== @@ -12412,11 +12508,6 @@ finity@^0.5.4: resolved "https://registry.yarnpkg.com/finity/-/finity-0.5.4.tgz#f2a8a9198e8286467328ec32c8bfcc19a2229c11" integrity sha512-3l+5/1tuw616Lgb0QBimxfdd2TqaDGpfCBpfX6EqtFmqUV3FtQnVEX4Aa62DagYEqnsTIjZcTfbq9msDbXYgyA== -first-chunk-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" - integrity sha1-Wb+1DNkF9g18OUzT2ayqtOatk04= - first-chunk-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" @@ -12934,13 +13025,6 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gaze@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" - integrity sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8= - dependencies: - globule "~0.1.0" - gaze@^1.0.0, gaze@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" @@ -13093,7 +13177,7 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -get-stream@^5.0.0: +get-stream@^5.0.0, get-stream@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== @@ -13233,18 +13317,6 @@ glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" -glob-stream@^3.1.5: - version "3.1.18" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" - integrity sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs= - dependencies: - glob "^4.3.1" - glob2base "^0.0.12" - minimatch "^2.0.1" - ordered-read-streams "^0.1.0" - through2 "^0.6.1" - unique-stream "^1.0.0" - glob-stream@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" @@ -13271,19 +13343,17 @@ glob-to-regexp@^0.4.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.0.tgz#49bd677b1671022bd10921c3788f23cdebf9c7e6" integrity sha512-fyPCII4vn9Gvjq2U/oDAfP433aiE64cyP/CJjRJcpVGjqqNdioUYn9+r0cSzT1XPwmGAHuTT7iv+rQT8u/YHKQ== -glob-watcher@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" - integrity sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs= +glob-watcher@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.3.tgz#88a8abf1c4d131eb93928994bc4a593c2e5dd626" + integrity sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg== dependencies: - gaze "^0.5.1" - -glob2base@^0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" - integrity sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY= - dependencies: - find-index "^0.1.1" + anymatch "^2.0.0" + async-done "^1.2.0" + chokidar "^2.0.0" + is-negated-glob "^1.0.0" + just-debounce "^1.0.0" + object.defaults "^1.1.0" glob@7.1.3, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.1: version "7.1.3" @@ -13309,16 +13379,6 @@ glob@7.1.4, glob@^7.1.4, glob@~7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^4.3.1: - version "4.5.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" - integrity sha1-xstz0yJsHv7wTePFbQEvAzd+4V8= - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "^2.0.1" - once "^1.3.0" - glob@^5.0.15, glob@~5.0.0: version "5.0.15" resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" @@ -13341,15 +13401,6 @@ glob@^6.0.1, glob@^6.0.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@~3.1.21: - version "3.1.21" - resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" - integrity sha1-0p4KBV3qUTj00H7UDomC6DwgZs0= - dependencies: - graceful-fs "~1.2.0" - inherits "1" - minimatch "~0.2.11" - glob@~7.0.0: version "7.0.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" @@ -13558,15 +13609,6 @@ globule@^1.0.0: lodash "~4.17.10" minimatch "~3.0.2" -globule@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" - integrity sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU= - dependencies: - glob "~3.1.21" - lodash "~1.0.1" - minimatch "~0.2.11" - glogg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" @@ -13715,13 +13757,6 @@ graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, g resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= -graceful-fs@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" - integrity sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg= - dependencies: - natives "^1.1.0" - graceful-fs@^4.1.15, graceful-fs@^4.1.9: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" @@ -13732,11 +13767,6 @@ graceful-fs@^4.2.0, graceful-fs@^4.2.2: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== -graceful-fs@~1.2.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" - integrity sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q= - "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" @@ -14098,10 +14128,34 @@ gulp-babel@^8.0.0: through2 "^2.0.0" vinyl-sourcemaps-apply "^0.2.0" -gulp-mocha@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/gulp-mocha/-/gulp-mocha-7.0.1.tgz#cd29f2fc214a8c08c7d96bf13927d539385a856d" - integrity sha512-LYBEWdOw52kvP+si91iR00LYX9iKXLTBjcKh9b3ChHvVmKtpoITjeRFslPEzDubEk+z6VI1ONEwn9ABqW9/tig== +gulp-cli@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.2.0.tgz#5533126eeb7fe415a7e3e84a297d334d5cf70ebc" + integrity sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA== + dependencies: + ansi-colors "^1.0.1" + archy "^1.0.0" + array-sort "^1.0.0" + color-support "^1.1.3" + concat-stream "^1.6.0" + copy-props "^2.0.1" + fancy-log "^1.3.2" + gulplog "^1.0.0" + interpret "^1.1.0" + isobject "^3.0.1" + liftoff "^3.1.0" + matchdep "^2.0.0" + mute-stdout "^1.0.0" + pretty-hrtime "^1.0.0" + replace-homedir "^1.0.0" + semver-greatest-satisfied-range "^1.1.0" + v8flags "^3.0.1" + yargs "^7.1.0" + +gulp-mocha@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/gulp-mocha/-/gulp-mocha-7.0.2.tgz#c7e13d133b3fde96d777e877f90b46225255e408" + integrity sha512-ZXBGN60TXYnFhttr19mfZBOtlHYGx9SvCSc+Kr/m2cMIGloUe176HBPwvPqlakPuQgeTGVRS47NmcdZUereKMQ== dependencies: dargs "^7.0.0" execa "^2.0.4" @@ -14139,59 +14193,26 @@ gulp-sourcemaps@2.6.5: strip-bom-string "1.X" through2 "2.X" -gulp-util@^3.0.0: - version "3.0.8" - resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" - integrity sha1-AFTh50RQLifATBh8PsxQXdVLu08= +gulp-zip@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/gulp-zip/-/gulp-zip-5.0.1.tgz#0dba5094901b0d91bcc8b53b3f6ff797c0f2002d" + integrity sha512-M/IWLh9RvOpuofDZkgDirtiyz9J3yIqnDOJ3muzk2D/XnZ1ruqPlPLRIpXnl/aZU+xXwKPdOIxjRzkUcVEQyZQ== dependencies: - array-differ "^1.0.0" - array-uniq "^1.0.2" - beeper "^1.0.0" - chalk "^1.0.0" - dateformat "^2.0.0" - fancy-log "^1.1.0" - gulplog "^1.0.0" - has-gulplog "^0.1.0" - lodash._reescape "^3.0.0" - lodash._reevaluate "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.template "^3.0.0" - minimist "^1.1.0" - multipipe "^0.1.2" - object-assign "^3.0.0" - replace-ext "0.0.1" - through2 "^2.0.0" - vinyl "^0.5.0" - -gulp-zip@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/gulp-zip/-/gulp-zip-4.2.0.tgz#e25e738c41ad0795ad853d1d8aeb1744d2a4ca82" - integrity sha512-I+697f6jf+PncdTrqfuwoauxgnLG1yHRg3vlmvDgmJuEnlEHy4meBktJ/oHgfyg4tp6X25wuZqUOraVeVg97wQ== - dependencies: - get-stream "^3.0.0" - plugin-error "^0.1.2" - through2 "^2.0.1" + get-stream "^5.1.0" + plugin-error "^1.0.1" + through2 "^3.0.1" vinyl "^2.1.0" - yazl "^2.1.0" + yazl "^2.5.1" -gulp@3.9.1: - version "3.9.1" - resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" - integrity sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ= +gulp@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa" + integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA== dependencies: - archy "^1.0.0" - chalk "^1.0.0" - deprecated "^0.0.1" - gulp-util "^3.0.0" - interpret "^1.0.0" - liftoff "^2.1.0" - minimist "^1.1.0" - orchestrator "^0.3.0" - pretty-hrtime "^1.0.0" - semver "^4.1.0" - tildify "^1.0.0" - v8flags "^2.0.2" - vinyl-fs "^0.3.0" + glob-watcher "^5.0.3" + gulp-cli "^2.2.0" + undertaker "^1.2.1" + vinyl-fs "^3.0.0" gulplog@^1.0.0: version "1.0.0" @@ -14370,13 +14391,6 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-gulplog@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" - integrity sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4= - dependencies: - sparkles "^1.0.0" - has-symbol-support-x@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" @@ -15155,11 +15169,6 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" - integrity sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js= - inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -15405,7 +15414,7 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" -interpret@1.2.0, interpret@^1.2.0: +interpret@1.2.0, interpret@^1.1.0, interpret@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== @@ -17235,6 +17244,11 @@ jszip@^3.1.5: readable-stream "~2.3.6" set-immediate-shim "~1.0.1" +just-debounce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" + integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= + just-extend@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" @@ -17386,11 +17400,6 @@ killable@^1.0.1: resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== -kind-of@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" - integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= - kind-of@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" @@ -17465,6 +17474,14 @@ kuler@1.0.x: dependencies: colornames "^1.1.1" +last-run@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" + integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls= + dependencies: + default-resolution "^2.0.0" + es6-weak-map "^2.0.1" + latest-version@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" @@ -17631,13 +17648,13 @@ lie@~3.3.0: dependencies: immediate "~3.0.5" -liftoff@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" - integrity sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew= +liftoff@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" + integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== dependencies: extend "^3.0.0" - findup-sync "^2.0.0" + findup-sync "^3.0.0" fined "^1.0.1" flagged-respawn "^1.0.0" is-plain-object "^2.0.4" @@ -17933,51 +17950,11 @@ lodash-es@^4.17.11, lodash-es@^4.17.4, lodash-es@^4.17.5, lodash-es@^4.2.1: resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== -lodash._basecopy@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" - integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= - -lodash._basetostring@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" - integrity sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U= - -lodash._basevalues@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" - integrity sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc= - -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= - -lodash._isiterateecall@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" - integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= - -lodash._reescape@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" - integrity sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo= - -lodash._reevaluate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" - integrity sha1-WLx0xAZklTrgsSTYBpltrKQx4u0= - lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= -lodash._root@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" - integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= - lodash.assign@^4.0.3, lodash.assign@^4.0.6, lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" @@ -18033,13 +18010,6 @@ lodash.difference@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= -lodash.escape@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" - integrity sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg= - dependencies: - lodash._root "^3.0.0" - lodash.escape@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" @@ -18085,16 +18055,6 @@ lodash.intersection@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.intersection/-/lodash.intersection-4.4.0.tgz#0a11ba631d0e95c23c7f2f4cbb9a692ed178e705" integrity sha1-ChG6Yx0OlcI8fy9Mu5ppLtF45wU= -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= - -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" - integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= - lodash.isboolean@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" @@ -18150,15 +18110,6 @@ lodash.keyby@^4.6.0: resolved "https://registry.yarnpkg.com/lodash.keyby/-/lodash.keyby-4.6.0.tgz#7f6a1abda93fd24e22728a4d361ed8bcba5a4354" integrity sha1-f2oavak/0k4icopNNh7YvLpaQ1Q= -lodash.keys@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - lodash.lowercase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz#46515aced4acb0b7093133333af068e4c3b14e9d" @@ -18249,11 +18200,6 @@ lodash.reject@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= -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= - lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -18279,21 +18225,6 @@ lodash.startcase@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" integrity sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg= -lodash.template@^3.0.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" - integrity sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8= - dependencies: - lodash._basecopy "^3.0.0" - lodash._basetostring "^3.0.0" - lodash._basevalues "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - lodash.keys "^3.0.0" - lodash.restparam "^3.0.0" - lodash.templatesettings "^3.0.0" - lodash.template@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" @@ -18302,14 +18233,6 @@ lodash.template@^4.4.0: lodash._reinterpolate "^3.0.0" lodash.templatesettings "^4.0.0" -lodash.templatesettings@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" - integrity sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU= - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - lodash.templatesettings@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" @@ -18362,11 +18285,6 @@ lodash@^3.10.1, lodash@^3.3.1: resolved "https://registry.yarnpkg.com/@elastic/lodash/-/lodash-3.10.1-kibana3.tgz#c0e318245219eeeff535895c429e0cef5058a9ad" integrity sha512-HMfwwT2yAkEQNzHSR1BxgE5YcDMUaZ/skhNyjy1nvM/A4m0Kh940hLZeCqKBCsSaUJz/8A/9cQGd9BaAOCIBLg== -lodash@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" - integrity sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE= - lodash@~2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e" @@ -18522,11 +18440,6 @@ lowlight@~1.9.1: dependencies: highlight.js "~9.12.0" -lru-cache@2, lru-cache@^2.6.5: - version "2.7.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" - integrity sha1-bUUk6LlV+V1PW1iFHOId1y+06VI= - lru-cache@4.1.5, lru-cache@^4.0.1, lru-cache@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -18543,6 +18456,11 @@ lru-cache@4.1.x, lru-cache@^4.0.0: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^2.6.5: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + integrity sha1-bUUk6LlV+V1PW1iFHOId1y+06VI= + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -18764,6 +18682,16 @@ marky@^1.2.1: resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.1.tgz#a3fcf82ffd357756b8b8affec9fdbf3a30dc1b02" integrity sha512-md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ== +matchdep@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" + integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4= + dependencies: + findup-sync "^2.0.0" + micromatch "^3.0.4" + resolve "^1.4.0" + stack-trace "0.0.10" + material-colors@^1.2.1: version "1.2.5" resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.5.tgz#5292593e6754cb1bcc2b98030e4e0d6a3afc9ea1" @@ -19169,21 +19097,6 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: dependencies: brace-expansion "^1.1.7" -minimatch@^2.0.1: - version "2.0.10" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" - integrity sha1-jQh8OcazjAAbl/ynzm0OHoCvusc= - dependencies: - brace-expansion "^1.0.0" - -minimatch@~0.2.11: - version "0.2.14" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" - integrity sha1-x054BXT2PG+aCQ6Q775u9TpqdWo= - dependencies: - lru-cache "2" - sigmund "~1.0.0" - minimist-options@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" @@ -19593,13 +19506,6 @@ multimatch@^4.0.0: arrify "^2.0.1" minimatch "^3.0.4" -multipipe@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" - integrity sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s= - dependencies: - duplexer2 "0.0.2" - multistream@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/multistream/-/multistream-2.1.1.tgz#629d3a29bd76623489980d04519a2c365948148c" @@ -19633,6 +19539,11 @@ mutation-observer@^1.0.3: resolved "https://registry.yarnpkg.com/mutation-observer/-/mutation-observer-1.0.3.tgz#42e9222b101bca82e5ba9d5a7acf4a14c0f263d0" integrity sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA== +mute-stdout@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" + integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== + mute-stream@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" @@ -19707,11 +19618,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -natives@^1.1.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb" - integrity sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -20464,7 +20370,7 @@ object.assign@4.1.0, object.assign@^4.0.4, object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.defaults@^1.1.0: +object.defaults@^1.0.0, object.defaults@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= @@ -20527,6 +20433,14 @@ object.pick@^1.2.0, object.pick@^1.3.0: dependencies: isobject "^3.0.1" +object.reduce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" + integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + object.values@^1.0.4, object.values@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" @@ -20576,13 +20490,6 @@ once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: dependencies: wrappy "1" -once@~1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - integrity sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA= - dependencies: - wrappy "1" - one-time@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e" @@ -20716,20 +20623,6 @@ ora@^3.0.0, ora@^3.4.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" -orchestrator@^0.3.0: - version "0.3.8" - resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" - integrity sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4= - dependencies: - end-of-stream "~0.1.5" - sequencify "~0.0.7" - stream-consume "~0.1.0" - -ordered-read-streams@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" - integrity sha1-/VZamvjrRHO6abbtijQ1LLVS8SY= - ordered-read-streams@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" @@ -21641,17 +21534,6 @@ platform@^1.3.0: resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.5.tgz#fb6958c696e07e2918d2eeda0f0bc9448d733444" integrity sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q== -plugin-error@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" - integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= - dependencies: - ansi-cyan "^0.1.1" - ansi-red "^0.1.1" - arr-diff "^1.0.1" - arr-union "^2.0.1" - extend-shallow "^1.1.2" - plugin-error@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" @@ -23593,7 +23475,7 @@ read-pkg@^5.1.1, read-pkg@^5.2.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17, readable-stream@~1.0.27-1: +readable-stream@1.0, readable-stream@~1.0.17, readable-stream@~1.0.27-1: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= @@ -24058,7 +23940,7 @@ remove-bom-stream@^1.2.0: safe-buffer "^5.1.0" through2 "^2.0.3" -remove-trailing-separator@^1.0.1: +remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= @@ -24118,6 +24000,15 @@ replace-ext@1.0.0, replace-ext@^1.0.0: resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= +replace-homedir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" + integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= + dependencies: + homedir-polyfill "^1.0.1" + is-absolute "^1.0.0" + remove-trailing-separator "^1.1.0" + request-progress@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" @@ -24456,7 +24347,7 @@ resolve@^1.11.1: dependencies: path-parse "^1.0.6" -resolve@^1.12.0: +resolve@^1.12.0, resolve@^1.4.0: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== @@ -24682,15 +24573,6 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -run-sequence@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/run-sequence/-/run-sequence-2.2.1.tgz#1ce643da36fd8c7ea7e1a9329da33fc2b8898495" - integrity sha512-qkzZnQWMZjcKbh3CNly2srtrkaO/2H/SI5f2eliMCapdRD3UhMrwjfOAZJAnZ2H8Ju4aBzFZkBGXUqFs9V0yxw== - dependencies: - chalk "^1.1.3" - fancy-log "^1.3.2" - plugin-error "^0.1.2" - rw@1, rw@^1.3.2, rw@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" @@ -25016,6 +24898,13 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" +semver-greatest-satisfied-range@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" + integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els= + dependencies: + sver-compat "^1.5.0" + semver-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9" @@ -25043,11 +24932,6 @@ semver@5.7.0, semver@^5.4.1, semver@^5.6.0, semver@^5.7.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== -semver@^4.1.0: - version "4.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" - integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto= - semver@^5.5.1: version "5.5.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" @@ -25119,11 +25003,6 @@ sentence-case@^2.1.0: no-case "^2.2.0" upper-case-first "^1.1.2" -sequencify@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" - integrity sha1-kM/xnQLgcCf9dn9erT57ldHnOAw= - serialize-javascript@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" @@ -25343,11 +25222,6 @@ shot@4.x.x: hoek "5.x.x" joi "13.x.x" -sigmund@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= - 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" @@ -25923,7 +25797,7 @@ stable@^0.1.8: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -stack-trace@0.0.x: +stack-trace@0.0.10, stack-trace@0.0.x: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= @@ -26029,11 +25903,6 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" -stream-consume@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" - integrity sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8= - stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" @@ -26042,6 +25911,11 @@ stream-each@^1.1.0: end-of-stream "^1.1.0" stream-shift "^1.0.0" +stream-exhaust@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" + integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== + stream-http@^2.7.2: version "2.8.0" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10" @@ -26307,14 +26181,6 @@ strip-bom-string@1.X: resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= -strip-bom@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" - integrity sha1-hbiGLzhEtabV7IRnqTWYFzo295Q= - dependencies: - first-chunk-stream "^1.0.0" - is-utf8 "^0.2.0" - strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -26571,6 +26437,14 @@ suricata-sid-db@^1.0.2: dependencies: typescript "^3.3.3333" +sver-compat@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" + integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= + dependencies: + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + svgo@^0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" @@ -26993,7 +26867,7 @@ through2-map@^3.0.0: through2 "~2.0.0" xtend "^4.0.0" -through2@2.X, through2@^2.0.0, through2@^2.0.1, through2@^2.0.3, through2@~2.0.0: +through2@2.X, through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" integrity sha1-AARWmzfHx0ujnEPzzteNGtlBQL4= @@ -27001,14 +26875,6 @@ through2@2.X, through2@^2.0.0, through2@^2.0.1, through2@^2.0.3, through2@~2.0.0 readable-stream "^2.1.5" xtend "~4.0.1" -through2@^0.6.1: - version "0.6.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" - integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg= - dependencies: - readable-stream ">=1.0.33-1 <1.1.0-0" - xtend ">=4.0.0 <4.1.0-0" - through2@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" @@ -27034,7 +26900,7 @@ thunky@^1.0.2: resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" integrity sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E= -tildify@^1.0.0, tildify@^1.2.0: +tildify@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" integrity sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo= @@ -28134,6 +28000,26 @@ underscore@~1.6.0: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= +undertaker-registry@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" + integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= + +undertaker@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.1.tgz#701662ff8ce358715324dfd492a4f036055dfe4b" + integrity sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA== + dependencies: + arr-flatten "^1.0.1" + arr-map "^2.0.0" + bach "^1.0.0" + collection-map "^1.0.0" + es6-weak-map "^2.0.1" + last-run "^1.1.0" + object.defaults "^1.0.0" + object.reduce "^1.0.0" + undertaker-registry "^1.0.0" + unfetch@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.1.0.tgz#6ec2dd0de887e58a4dee83a050ded80ffc4137db" @@ -28247,11 +28133,6 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -unique-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" - integrity sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs= - unique-stream@^2.0.2: version "2.2.1" resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" @@ -28515,11 +28396,6 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= - user-home@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" @@ -28609,12 +28485,12 @@ v8-compile-cache@2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== -v8flags@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - integrity sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ= +v8flags@^3.0.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.3.tgz#fc9dc23521ca20c5433f81cc4eb9b3033bb105d8" + integrity sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w== dependencies: - user-home "^1.1.1" + homedir-polyfill "^1.0.1" val-loader@^1.1.1: version "1.1.1" @@ -29051,21 +28927,7 @@ vinyl-file@^2.0.0: strip-bom-stream "^2.0.0" vinyl "^1.1.0" -vinyl-fs@^0.3.0: - version "0.3.14" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" - integrity sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY= - dependencies: - defaults "^1.0.0" - glob-stream "^3.1.5" - glob-watcher "^0.0.6" - graceful-fs "^3.0.0" - mkdirp "^0.5.0" - strip-bom "^1.0.0" - through2 "^0.6.1" - vinyl "^0.4.0" - -vinyl-fs@^3.0.3: +vinyl-fs@^3.0.0, vinyl-fs@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== @@ -29108,23 +28970,6 @@ vinyl-sourcemaps-apply@^0.2.0: dependencies: source-map "^0.5.1" -vinyl@^0.4.0: - version "0.4.6" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" - integrity sha1-LzVsh6VQolVGHza76ypbqL94SEc= - dependencies: - clone "^0.2.0" - clone-stats "^0.0.1" - -vinyl@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" - integrity sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4= - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - vinyl@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" @@ -30044,7 +29889,7 @@ xregexp@4.2.4: dependencies: "@babel/runtime-corejs2" "^7.2.0" -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= @@ -30236,7 +30081,7 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^7.0.0: +yargs@^7.0.0, yargs@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= @@ -30309,10 +30154,10 @@ yauzl@^2.4.2: buffer-crc32 "~0.2.3" fd-slicer "~1.0.1" -yazl@^2.1.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.4.3.tgz#ec26e5cc87d5601b9df8432dbdd3cd2e5173a071" - integrity sha1-7CblzIfVYBud+EMtvdPNLlFzoHE= +yazl@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" + integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== dependencies: buffer-crc32 "~0.2.3"