From 98d7a37c73599f6b2e91f24a6fffe9be5a8d11dd Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Mon, 4 Oct 2021 12:28:53 -0400 Subject: [PATCH] [7.x] [Uptime] Run Sample uptime tests using @elastic/synthetics (#112128) (#113531) * [Uptime] Run Sample uptime tests using @elastic/synthetics (#112128) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> * update test according to 7.x * revert Co-authored-by: Shahzad Co-authored-by: shahzad31 --- package.json | 1 + .../src/get_server_watch_paths.test.ts | 1 + .../src/get_server_watch_paths.ts | 1 + packages/kbn-pm/dist/index.js | 2577 +++-------- packages/kbn-storybook/src/index.ts | 2 +- .../kbn-storybook/src/lib/default_config.ts | 19 + src/dev/license_checker/config.ts | 1 + src/dev/typescript/projects.ts | 5 + .../presentation_util/storybook/main.ts | 8 +- test/scripts/jenkins_uptime_playwright.sh | 12 + vars/tasks.groovy | 9 + .../storybook/{main.ts => canvas.webpack.ts} | 12 +- x-pack/plugins/canvas/storybook/main.js | 15 + x-pack/plugins/fleet/storybook/main.ts | 8 +- x-pack/plugins/uptime/e2e/config.ts | 54 + .../es_archiver/full_heartbeat/data.json.gz | Bin 0 -> 128173 bytes .../es_archiver/full_heartbeat/mappings.json | 3795 +++++++++++++++++ x-pack/plugins/uptime/e2e/journeys/index.ts | 8 + .../uptime/e2e/journeys/uptime.journey.ts | 78 + x-pack/plugins/uptime/e2e/playwright_run.ts | 19 + x-pack/plugins/uptime/e2e/playwright_start.ts | 52 + .../plugins/uptime/e2e/tasks/es_archiver.ts | 37 + x-pack/plugins/uptime/e2e/tsconfig.json | 9 + x-pack/plugins/uptime/scripts/e2e.js | 52 + x-pack/plugins/uptime/tsconfig.json | 1 + yarn.lock | 432 +- 26 files changed, 5201 insertions(+), 2007 deletions(-) create mode 100755 test/scripts/jenkins_uptime_playwright.sh rename x-pack/plugins/canvas/storybook/{main.ts => canvas.webpack.ts} (87%) create mode 100644 x-pack/plugins/canvas/storybook/main.js create mode 100644 x-pack/plugins/uptime/e2e/config.ts create mode 100644 x-pack/plugins/uptime/e2e/fixtures/es_archiver/full_heartbeat/data.json.gz create mode 100644 x-pack/plugins/uptime/e2e/fixtures/es_archiver/full_heartbeat/mappings.json create mode 100644 x-pack/plugins/uptime/e2e/journeys/index.ts create mode 100644 x-pack/plugins/uptime/e2e/journeys/uptime.journey.ts create mode 100644 x-pack/plugins/uptime/e2e/playwright_run.ts create mode 100644 x-pack/plugins/uptime/e2e/playwright_start.ts create mode 100644 x-pack/plugins/uptime/e2e/tasks/es_archiver.ts create mode 100644 x-pack/plugins/uptime/e2e/tsconfig.json create mode 100644 x-pack/plugins/uptime/scripts/e2e.js diff --git a/package.json b/package.json index 6b5f3ac3f9b84..76177b90191c7 100644 --- a/package.json +++ b/package.json @@ -441,6 +441,7 @@ "@elastic/eslint-plugin-eui": "0.0.2", "@elastic/github-checks-reporter": "0.0.20b3", "@elastic/makelogs": "^6.0.0", + "@elastic/synthetics": "^1.0.0-beta.12", "@emotion/babel-preset-css-prop": "^11.2.0", "@emotion/jest": "^11.3.0", "@istanbuljs/schema": "^0.1.2", diff --git a/packages/kbn-cli-dev-mode/src/get_server_watch_paths.test.ts b/packages/kbn-cli-dev-mode/src/get_server_watch_paths.test.ts index c07fa423992d6..9cb902882ffd7 100644 --- a/packages/kbn-cli-dev-mode/src/get_server_watch_paths.test.ts +++ b/packages/kbn-cli-dev-mode/src/get_server_watch_paths.test.ts @@ -75,6 +75,7 @@ it('produces the right watch and ignore list', () => { /x-pack/plugins/security_solution/scripts, /x-pack/plugins/security_solution/server/lib/detection_engine/scripts, /x-pack/plugins/metrics_entities/server/scripts, + /x-pack/plugins/uptime/e2e, ] `); }); diff --git a/packages/kbn-cli-dev-mode/src/get_server_watch_paths.ts b/packages/kbn-cli-dev-mode/src/get_server_watch_paths.ts index 6a45c86d794bd..53f52279c8be8 100644 --- a/packages/kbn-cli-dev-mode/src/get_server_watch_paths.ts +++ b/packages/kbn-cli-dev-mode/src/get_server_watch_paths.ts @@ -66,6 +66,7 @@ export function getServerWatchPaths({ pluginPaths, pluginScanDirs }: Options) { fromRoot('x-pack/plugins/security_solution/scripts'), fromRoot('x-pack/plugins/security_solution/server/lib/detection_engine/scripts'), fromRoot('x-pack/plugins/metrics_entities/server/scripts'), + fromRoot('x-pack/plugins/uptime/e2e'), ]; return { diff --git a/packages/kbn-pm/dist/index.js b/packages/kbn-pm/dist/index.js index 2dfda383ea601..85ea60ee549b3 100644 --- a/packages/kbn-pm/dist/index.js +++ b/packages/kbn-pm/dist/index.js @@ -61132,7 +61132,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _build_bazel_production_projects__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(557); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildBazelProductionProjects", function() { return _build_bazel_production_projects__WEBPACK_IMPORTED_MODULE_0__["buildBazelProductionProjects"]; }); -/* harmony import */ var _build_non_bazel_production_projects__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(806); +/* harmony import */ var _build_non_bazel_production_projects__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(800); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildNonBazelProductionProjects", function() { return _build_non_bazel_production_projects__WEBPACK_IMPORTED_MODULE_1__["buildNonBazelProductionProjects"]; }); /* @@ -61154,11 +61154,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildBazelProductionProjects", function() { return buildBazelProductionProjects; }); /* harmony import */ var cpy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(558); /* harmony import */ var cpy__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cpy__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var globby__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(768); +/* harmony import */ var globby__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(772); /* harmony import */ var globby__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(globby__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _build_non_bazel_production_projects__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(806); +/* harmony import */ var _build_non_bazel_production_projects__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(800); /* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(415); /* harmony import */ var _utils_fs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(233); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(222); @@ -61264,11 +61264,11 @@ const os = __webpack_require__(124); const pMap = __webpack_require__(559); const arrify = __webpack_require__(554); const globby = __webpack_require__(562); -const hasGlob = __webpack_require__(752); -const cpFile = __webpack_require__(754); -const junk = __webpack_require__(764); -const pFilter = __webpack_require__(765); -const CpyError = __webpack_require__(767); +const hasGlob = __webpack_require__(756); +const cpFile = __webpack_require__(758); +const junk = __webpack_require__(768); +const pFilter = __webpack_require__(769); +const CpyError = __webpack_require__(771); const defaultOptions = { ignoreJunk: true @@ -61612,8 +61612,8 @@ const fs = __webpack_require__(134); const arrayUnion = __webpack_require__(563); const glob = __webpack_require__(246); const fastGlob = __webpack_require__(565); -const dirGlob = __webpack_require__(745); -const gitignore = __webpack_require__(748); +const dirGlob = __webpack_require__(749); +const gitignore = __webpack_require__(752); const DEFAULT_FILTER = () => false; @@ -61864,11 +61864,11 @@ module.exports.generateTasks = pkg.generateTasks; Object.defineProperty(exports, "__esModule", { value: true }); var optionsManager = __webpack_require__(567); var taskManager = __webpack_require__(568); -var reader_async_1 = __webpack_require__(716); -var reader_stream_1 = __webpack_require__(740); -var reader_sync_1 = __webpack_require__(741); -var arrayUtils = __webpack_require__(743); -var streamUtils = __webpack_require__(744); +var reader_async_1 = __webpack_require__(720); +var reader_stream_1 = __webpack_require__(744); +var reader_sync_1 = __webpack_require__(745); +var arrayUtils = __webpack_require__(747); +var streamUtils = __webpack_require__(748); /** * Synchronous API. */ @@ -62449,16 +62449,16 @@ module.exports.win32 = win32; var util = __webpack_require__(115); var braces = __webpack_require__(574); var toRegex = __webpack_require__(575); -var extend = __webpack_require__(682); +var extend = __webpack_require__(686); /** * Local dependencies */ -var compilers = __webpack_require__(684); -var parsers = __webpack_require__(711); -var cache = __webpack_require__(712); -var utils = __webpack_require__(713); +var compilers = __webpack_require__(688); +var parsers = __webpack_require__(715); +var cache = __webpack_require__(716); +var utils = __webpack_require__(717); var MAX_LENGTH = 1024 * 64; /** @@ -63339,8 +63339,8 @@ var extend = __webpack_require__(598); */ var compilers = __webpack_require__(600); -var parsers = __webpack_require__(613); -var Braces = __webpack_require__(617); +var parsers = __webpack_require__(615); +var Braces = __webpack_require__(619); var utils = __webpack_require__(601); var MAX_LENGTH = 1024 * 64; var cache = {}; @@ -65780,7 +65780,7 @@ utils.extend = __webpack_require__(598); utils.flatten = __webpack_require__(605); utils.isObject = __webpack_require__(583); utils.fillRange = __webpack_require__(606); -utils.repeat = __webpack_require__(612); +utils.repeat = __webpack_require__(614); utils.unique = __webpack_require__(597); utils.define = function(obj, key, val) { @@ -66423,9 +66423,9 @@ function flat(arr, res) { var util = __webpack_require__(115); var isNumber = __webpack_require__(607); -var extend = __webpack_require__(598); -var repeat = __webpack_require__(610); -var toRegex = __webpack_require__(611); +var extend = __webpack_require__(610); +var repeat = __webpack_require__(612); +var toRegex = __webpack_require__(613); /** * Return a range of numbers or letters. @@ -66804,6 +66804,66 @@ function isSlowBuffer (obj) { /* 610 */ /***/ (function(module, exports, __webpack_require__) { +"use strict"; + + +var isObject = __webpack_require__(611); + +module.exports = function extend(o/*, objects*/) { + if (!isObject(o)) { o = {}; } + + var len = arguments.length; + for (var i = 1; i < len; i++) { + var obj = arguments[i]; + + if (isObject(obj)) { + assign(o, obj); + } + } + return o; +}; + +function assign(a, b) { + for (var key in b) { + if (hasOwn(b, key)) { + a[key] = b[key]; + } + } +} + +/** + * Returns true if the given `key` is an own property of `obj`. + */ + +function hasOwn(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} + + +/***/ }), +/* 611 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * is-extendable + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. + */ + + + +module.exports = function isExtendable(val) { + return typeof val !== 'undefined' && val !== null + && (typeof val === 'object' || typeof val === 'function'); +}; + + +/***/ }), +/* 612 */ +/***/ (function(module, exports, __webpack_require__) { + "use strict"; /*! * repeat-string @@ -66878,7 +66938,7 @@ function repeat(str, num) { /***/ }), -/* 611 */ +/* 613 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66891,7 +66951,7 @@ function repeat(str, num) { -var repeat = __webpack_require__(610); +var repeat = __webpack_require__(612); var isNumber = __webpack_require__(607); var cache = {}; @@ -67179,7 +67239,7 @@ module.exports = toRegexRange; /***/ }), -/* 612 */ +/* 614 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -67204,13 +67264,13 @@ module.exports = function repeat(ele, num) { /***/ }), -/* 613 */ +/* 615 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Node = __webpack_require__(614); +var Node = __webpack_require__(616); var utils = __webpack_require__(601); /** @@ -67571,15 +67631,15 @@ function concatNodes(pos, node, parent, options) { /***/ }), -/* 614 */ +/* 616 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isObject = __webpack_require__(583); -var define = __webpack_require__(615); -var utils = __webpack_require__(616); +var define = __webpack_require__(617); +var utils = __webpack_require__(618); var ownNames; /** @@ -68070,7 +68130,7 @@ exports = module.exports = Node; /***/ }), -/* 615 */ +/* 617 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68108,7 +68168,7 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 616 */ +/* 618 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69134,16 +69194,16 @@ function assert(val, message) { /***/ }), -/* 617 */ +/* 619 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var extend = __webpack_require__(598); -var Snapdragon = __webpack_require__(618); +var Snapdragon = __webpack_require__(620); var compilers = __webpack_require__(600); -var parsers = __webpack_require__(613); +var parsers = __webpack_require__(615); var utils = __webpack_require__(601); /** @@ -69245,17 +69305,17 @@ module.exports = Braces; /***/ }), -/* 618 */ +/* 620 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Base = __webpack_require__(619); -var define = __webpack_require__(646); -var Compiler = __webpack_require__(656); -var Parser = __webpack_require__(679); -var utils = __webpack_require__(659); +var Base = __webpack_require__(621); +var define = __webpack_require__(650); +var Compiler = __webpack_require__(660); +var Parser = __webpack_require__(683); +var utils = __webpack_require__(663); var regexCache = {}; var cache = {}; @@ -69426,20 +69486,20 @@ module.exports.Parser = Parser; /***/ }), -/* 619 */ +/* 621 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(115); -var define = __webpack_require__(620); -var CacheBase = __webpack_require__(621); -var Emitter = __webpack_require__(622); +var define = __webpack_require__(622); +var CacheBase = __webpack_require__(623); +var Emitter = __webpack_require__(624); var isObject = __webpack_require__(583); -var merge = __webpack_require__(640); -var pascal = __webpack_require__(643); -var cu = __webpack_require__(644); +var merge = __webpack_require__(644); +var pascal = __webpack_require__(647); +var cu = __webpack_require__(648); /** * Optionally define a custom `cache` namespace to use. @@ -69868,7 +69928,7 @@ module.exports.namespace = namespace; /***/ }), -/* 620 */ +/* 622 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69906,21 +69966,21 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 621 */ +/* 623 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isObject = __webpack_require__(583); -var Emitter = __webpack_require__(622); -var visit = __webpack_require__(623); -var toPath = __webpack_require__(626); -var union = __webpack_require__(627); -var del = __webpack_require__(631); -var get = __webpack_require__(629); -var has = __webpack_require__(636); -var set = __webpack_require__(639); +var Emitter = __webpack_require__(624); +var visit = __webpack_require__(625); +var toPath = __webpack_require__(628); +var union = __webpack_require__(629); +var del = __webpack_require__(635); +var get = __webpack_require__(632); +var has = __webpack_require__(640); +var set = __webpack_require__(643); /** * Create a `Cache` constructor that when instantiated will @@ -70174,7 +70234,7 @@ module.exports.namespace = namespace; /***/ }), -/* 622 */ +/* 624 */ /***/ (function(module, exports, __webpack_require__) { @@ -70343,7 +70403,7 @@ Emitter.prototype.hasListeners = function(event){ /***/ }), -/* 623 */ +/* 625 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70356,8 +70416,8 @@ Emitter.prototype.hasListeners = function(event){ -var visit = __webpack_require__(624); -var mapVisit = __webpack_require__(625); +var visit = __webpack_require__(626); +var mapVisit = __webpack_require__(627); module.exports = function(collection, method, val) { var result; @@ -70380,7 +70440,7 @@ module.exports = function(collection, method, val) { /***/ }), -/* 624 */ +/* 626 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70420,14 +70480,14 @@ module.exports = function visit(thisArg, method, target, val) { /***/ }), -/* 625 */ +/* 627 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(115); -var visit = __webpack_require__(624); +var visit = __webpack_require__(626); /** * Map `visit` over an array of objects. @@ -70464,7 +70524,7 @@ function isObject(val) { /***/ }), -/* 626 */ +/* 628 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70504,16 +70564,16 @@ function filter(arr) { /***/ }), -/* 627 */ +/* 629 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(599); -var union = __webpack_require__(628); -var get = __webpack_require__(629); -var set = __webpack_require__(630); +var isObject = __webpack_require__(630); +var union = __webpack_require__(631); +var get = __webpack_require__(632); +var set = __webpack_require__(633); module.exports = function unionValue(obj, prop, value) { if (!isObject(obj)) { @@ -70541,7 +70601,27 @@ function arrayify(val) { /***/ }), -/* 628 */ +/* 630 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * is-extendable + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. + */ + + + +module.exports = function isExtendable(val) { + return typeof val !== 'undefined' && val !== null + && (typeof val === 'object' || typeof val === 'function'); +}; + + +/***/ }), +/* 631 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70577,7 +70657,7 @@ module.exports = function union(init) { /***/ }), -/* 629 */ +/* 632 */ /***/ (function(module, exports) { /*! @@ -70633,7 +70713,7 @@ function toString(val) { /***/ }), -/* 630 */ +/* 633 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70647,9 +70727,9 @@ function toString(val) { var split = __webpack_require__(602); -var extend = __webpack_require__(598); +var extend = __webpack_require__(634); var isPlainObject = __webpack_require__(592); -var isObject = __webpack_require__(599); +var isObject = __webpack_require__(630); module.exports = function(obj, prop, val) { if (!isObject(obj)) { @@ -70695,7 +70775,47 @@ function isValidKey(key) { /***/ }), -/* 631 */ +/* 634 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isObject = __webpack_require__(630); + +module.exports = function extend(o/*, objects*/) { + if (!isObject(o)) { o = {}; } + + var len = arguments.length; + for (var i = 1; i < len; i++) { + var obj = arguments[i]; + + if (isObject(obj)) { + assign(o, obj); + } + } + return o; +}; + +function assign(a, b) { + for (var key in b) { + if (hasOwn(b, key)) { + a[key] = b[key]; + } + } +} + +/** + * Returns true if the given `key` is an own property of `obj`. + */ + +function hasOwn(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} + + +/***/ }), +/* 635 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70709,7 +70829,7 @@ function isValidKey(key) { var isObject = __webpack_require__(583); -var has = __webpack_require__(632); +var has = __webpack_require__(636); module.exports = function unset(obj, prop) { if (!isObject(obj)) { @@ -70734,7 +70854,7 @@ module.exports = function unset(obj, prop) { /***/ }), -/* 632 */ +/* 636 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70747,9 +70867,9 @@ module.exports = function unset(obj, prop) { -var isObject = __webpack_require__(633); -var hasValues = __webpack_require__(635); -var get = __webpack_require__(629); +var isObject = __webpack_require__(637); +var hasValues = __webpack_require__(639); +var get = __webpack_require__(632); module.exports = function(obj, prop, noZero) { if (isObject(obj)) { @@ -70760,7 +70880,7 @@ module.exports = function(obj, prop, noZero) { /***/ }), -/* 633 */ +/* 637 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70773,7 +70893,7 @@ module.exports = function(obj, prop, noZero) { -var isArray = __webpack_require__(634); +var isArray = __webpack_require__(638); module.exports = function isObject(val) { return val != null && typeof val === 'object' && isArray(val) === false; @@ -70781,7 +70901,7 @@ module.exports = function isObject(val) { /***/ }), -/* 634 */ +/* 638 */ /***/ (function(module, exports) { var toString = {}.toString; @@ -70792,7 +70912,7 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 635 */ +/* 639 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70835,7 +70955,7 @@ module.exports = function hasValue(o, noZero) { /***/ }), -/* 636 */ +/* 640 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70849,8 +70969,8 @@ module.exports = function hasValue(o, noZero) { var isObject = __webpack_require__(583); -var hasValues = __webpack_require__(637); -var get = __webpack_require__(629); +var hasValues = __webpack_require__(641); +var get = __webpack_require__(632); module.exports = function(val, prop) { return hasValues(isObject(val) && prop ? get(val, prop) : val); @@ -70858,7 +70978,7 @@ module.exports = function(val, prop) { /***/ }), -/* 637 */ +/* 641 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70871,7 +70991,7 @@ module.exports = function(val, prop) { -var typeOf = __webpack_require__(638); +var typeOf = __webpack_require__(642); var isNumber = __webpack_require__(607); module.exports = function hasValue(val) { @@ -70925,7 +71045,7 @@ module.exports = function hasValue(val) { /***/ }), -/* 638 */ +/* 642 */ /***/ (function(module, exports, __webpack_require__) { var isBuffer = __webpack_require__(609); @@ -71050,7 +71170,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 639 */ +/* 643 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -71064,9 +71184,9 @@ module.exports = function kindOf(val) { var split = __webpack_require__(602); -var extend = __webpack_require__(598); +var extend = __webpack_require__(634); var isPlainObject = __webpack_require__(592); -var isObject = __webpack_require__(599); +var isObject = __webpack_require__(630); module.exports = function(obj, prop, val) { if (!isObject(obj)) { @@ -71112,14 +71232,14 @@ function isValidKey(key) { /***/ }), -/* 640 */ +/* 644 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(641); -var forIn = __webpack_require__(642); +var isExtendable = __webpack_require__(645); +var forIn = __webpack_require__(646); function mixinDeep(target, objects) { var len = arguments.length, i = 0; @@ -71183,7 +71303,7 @@ module.exports = mixinDeep; /***/ }), -/* 641 */ +/* 645 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -71204,7 +71324,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 642 */ +/* 646 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -71227,7 +71347,7 @@ module.exports = function forIn(obj, fn, thisArg) { /***/ }), -/* 643 */ +/* 647 */ /***/ (function(module, exports) { /*! @@ -71254,14 +71374,14 @@ module.exports = pascalcase; /***/ }), -/* 644 */ +/* 648 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(115); -var utils = __webpack_require__(645); +var utils = __webpack_require__(649); /** * Expose class utils @@ -71626,7 +71746,7 @@ cu.bubble = function(Parent, events) { /***/ }), -/* 645 */ +/* 649 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -71640,10 +71760,10 @@ var utils = {}; * Lazily required module dependencies */ -utils.union = __webpack_require__(628); -utils.define = __webpack_require__(646); +utils.union = __webpack_require__(631); +utils.define = __webpack_require__(650); utils.isObj = __webpack_require__(583); -utils.staticExtend = __webpack_require__(653); +utils.staticExtend = __webpack_require__(657); /** @@ -71654,7 +71774,7 @@ module.exports = utils; /***/ }), -/* 646 */ +/* 650 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -71667,7 +71787,7 @@ module.exports = utils; -var isDescriptor = __webpack_require__(647); +var isDescriptor = __webpack_require__(651); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -71692,7 +71812,7 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 647 */ +/* 651 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -71705,9 +71825,9 @@ module.exports = function defineProperty(obj, prop, val) { -var typeOf = __webpack_require__(648); -var isAccessor = __webpack_require__(649); -var isData = __webpack_require__(651); +var typeOf = __webpack_require__(652); +var isAccessor = __webpack_require__(653); +var isData = __webpack_require__(655); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -71721,7 +71841,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 648 */ +/* 652 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -71874,7 +71994,7 @@ function isBuffer(val) { /***/ }), -/* 649 */ +/* 653 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -71887,7 +72007,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(650); +var typeOf = __webpack_require__(654); // accessor descriptor properties var accessor = { @@ -71950,7 +72070,7 @@ module.exports = isAccessorDescriptor; /***/ }), -/* 650 */ +/* 654 */ /***/ (function(module, exports, __webpack_require__) { var isBuffer = __webpack_require__(609); @@ -72072,7 +72192,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 651 */ +/* 655 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72085,7 +72205,7 @@ module.exports = function kindOf(val) { -var typeOf = __webpack_require__(652); +var typeOf = __webpack_require__(656); // data descriptor properties var data = { @@ -72134,7 +72254,7 @@ module.exports = isDataDescriptor; /***/ }), -/* 652 */ +/* 656 */ /***/ (function(module, exports, __webpack_require__) { var isBuffer = __webpack_require__(609); @@ -72256,7 +72376,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 653 */ +/* 657 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72269,8 +72389,8 @@ module.exports = function kindOf(val) { -var copy = __webpack_require__(654); -var define = __webpack_require__(646); +var copy = __webpack_require__(658); +var define = __webpack_require__(650); var util = __webpack_require__(115); /** @@ -72353,15 +72473,15 @@ module.exports = extend; /***/ }), -/* 654 */ +/* 658 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var typeOf = __webpack_require__(608); -var copyDescriptor = __webpack_require__(655); -var define = __webpack_require__(646); +var copyDescriptor = __webpack_require__(659); +var define = __webpack_require__(650); /** * Copy static properties, prototype properties, and descriptors from one object to another. @@ -72534,7 +72654,7 @@ module.exports.has = has; /***/ }), -/* 655 */ +/* 659 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72622,16 +72742,16 @@ function isObject(val) { /***/ }), -/* 656 */ +/* 660 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var use = __webpack_require__(657); -var define = __webpack_require__(646); +var use = __webpack_require__(661); +var define = __webpack_require__(650); var debug = __webpack_require__(207)('snapdragon:compiler'); -var utils = __webpack_require__(659); +var utils = __webpack_require__(663); /** * Create a new `Compiler` with the given `options`. @@ -72785,7 +72905,7 @@ Compiler.prototype = { // source map support if (opts.sourcemap) { - var sourcemaps = __webpack_require__(678); + var sourcemaps = __webpack_require__(682); sourcemaps(this); this.mapVisit(this.ast.nodes); this.applySourceMaps(); @@ -72806,7 +72926,7 @@ module.exports = Compiler; /***/ }), -/* 657 */ +/* 661 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72819,7 +72939,7 @@ module.exports = Compiler; -var utils = __webpack_require__(658); +var utils = __webpack_require__(662); module.exports = function base(app, opts) { if (!utils.isObject(app) && typeof app !== 'function') { @@ -72934,7 +73054,7 @@ module.exports = function base(app, opts) { /***/ }), -/* 658 */ +/* 662 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72948,7 +73068,7 @@ var utils = {}; * Lazily required module dependencies */ -utils.define = __webpack_require__(646); +utils.define = __webpack_require__(650); utils.isObject = __webpack_require__(583); @@ -72964,7 +73084,7 @@ module.exports = utils; /***/ }), -/* 659 */ +/* 663 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72974,9 +73094,9 @@ module.exports = utils; * Module dependencies */ -exports.extend = __webpack_require__(598); -exports.SourceMap = __webpack_require__(660); -exports.sourceMapResolve = __webpack_require__(671); +exports.extend = __webpack_require__(634); +exports.SourceMap = __webpack_require__(664); +exports.sourceMapResolve = __webpack_require__(675); /** * Convert backslash in the given string to forward slashes @@ -73019,7 +73139,7 @@ exports.last = function(arr, n) { /***/ }), -/* 660 */ +/* 664 */ /***/ (function(module, exports, __webpack_require__) { /* @@ -73027,13 +73147,13 @@ exports.last = function(arr, n) { * Licensed under the New BSD license. See LICENSE.txt or: * http://opensource.org/licenses/BSD-3-Clause */ -exports.SourceMapGenerator = __webpack_require__(661).SourceMapGenerator; -exports.SourceMapConsumer = __webpack_require__(667).SourceMapConsumer; -exports.SourceNode = __webpack_require__(670).SourceNode; +exports.SourceMapGenerator = __webpack_require__(665).SourceMapGenerator; +exports.SourceMapConsumer = __webpack_require__(671).SourceMapConsumer; +exports.SourceNode = __webpack_require__(674).SourceNode; /***/ }), -/* 661 */ +/* 665 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -73043,10 +73163,10 @@ exports.SourceNode = __webpack_require__(670).SourceNode; * http://opensource.org/licenses/BSD-3-Clause */ -var base64VLQ = __webpack_require__(662); -var util = __webpack_require__(664); -var ArraySet = __webpack_require__(665).ArraySet; -var MappingList = __webpack_require__(666).MappingList; +var base64VLQ = __webpack_require__(666); +var util = __webpack_require__(668); +var ArraySet = __webpack_require__(669).ArraySet; +var MappingList = __webpack_require__(670).MappingList; /** * An instance of the SourceMapGenerator represents a source map which is @@ -73455,7 +73575,7 @@ exports.SourceMapGenerator = SourceMapGenerator; /***/ }), -/* 662 */ +/* 666 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -73495,7 +73615,7 @@ exports.SourceMapGenerator = SourceMapGenerator; * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -var base64 = __webpack_require__(663); +var base64 = __webpack_require__(667); // A single base 64 digit can contain 6 bits of data. For the base 64 variable // length quantities we use in the source map spec, the first bit is the sign, @@ -73601,7 +73721,7 @@ exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { /***/ }), -/* 663 */ +/* 667 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -73674,7 +73794,7 @@ exports.decode = function (charCode) { /***/ }), -/* 664 */ +/* 668 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -74097,7 +74217,7 @@ exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflate /***/ }), -/* 665 */ +/* 669 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -74107,7 +74227,7 @@ exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflate * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(664); +var util = __webpack_require__(668); var has = Object.prototype.hasOwnProperty; var hasNativeMap = typeof Map !== "undefined"; @@ -74224,7 +74344,7 @@ exports.ArraySet = ArraySet; /***/ }), -/* 666 */ +/* 670 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -74234,7 +74354,7 @@ exports.ArraySet = ArraySet; * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(664); +var util = __webpack_require__(668); /** * Determine whether mappingB is after mappingA with respect to generated @@ -74309,7 +74429,7 @@ exports.MappingList = MappingList; /***/ }), -/* 667 */ +/* 671 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -74319,11 +74439,11 @@ exports.MappingList = MappingList; * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(664); -var binarySearch = __webpack_require__(668); -var ArraySet = __webpack_require__(665).ArraySet; -var base64VLQ = __webpack_require__(662); -var quickSort = __webpack_require__(669).quickSort; +var util = __webpack_require__(668); +var binarySearch = __webpack_require__(672); +var ArraySet = __webpack_require__(669).ArraySet; +var base64VLQ = __webpack_require__(666); +var quickSort = __webpack_require__(673).quickSort; function SourceMapConsumer(aSourceMap) { var sourceMap = aSourceMap; @@ -75397,7 +75517,7 @@ exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; /***/ }), -/* 668 */ +/* 672 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -75514,7 +75634,7 @@ exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { /***/ }), -/* 669 */ +/* 673 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -75634,7 +75754,7 @@ exports.quickSort = function (ary, comparator) { /***/ }), -/* 670 */ +/* 674 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -75644,8 +75764,8 @@ exports.quickSort = function (ary, comparator) { * http://opensource.org/licenses/BSD-3-Clause */ -var SourceMapGenerator = __webpack_require__(661).SourceMapGenerator; -var util = __webpack_require__(664); +var SourceMapGenerator = __webpack_require__(665).SourceMapGenerator; +var util = __webpack_require__(668); // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other // operating systems these days (capturing the result). @@ -76053,17 +76173,17 @@ exports.SourceNode = SourceNode; /***/ }), -/* 671 */ +/* 675 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2014, 2015, 2016, 2017 Simon Lydell // X11 (“MIT”) Licensed. (See LICENSE.) -var sourceMappingURL = __webpack_require__(672) -var resolveUrl = __webpack_require__(673) -var decodeUriComponent = __webpack_require__(674) -var urix = __webpack_require__(676) -var atob = __webpack_require__(677) +var sourceMappingURL = __webpack_require__(676) +var resolveUrl = __webpack_require__(677) +var decodeUriComponent = __webpack_require__(678) +var urix = __webpack_require__(680) +var atob = __webpack_require__(681) @@ -76361,7 +76481,7 @@ module.exports = { /***/ }), -/* 672 */ +/* 676 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;// Copyright 2014 Simon Lydell @@ -76424,7 +76544,7 @@ void (function(root, factory) { /***/ }), -/* 673 */ +/* 677 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2014 Simon Lydell @@ -76442,13 +76562,13 @@ module.exports = resolveUrl /***/ }), -/* 674 */ +/* 678 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2017 Simon Lydell // X11 (“MIT”) Licensed. (See LICENSE.) -var decodeUriComponent = __webpack_require__(675) +var decodeUriComponent = __webpack_require__(679) function customDecodeUriComponent(string) { // `decodeUriComponent` turns `+` into ` `, but that's not wanted. @@ -76459,7 +76579,7 @@ module.exports = customDecodeUriComponent /***/ }), -/* 675 */ +/* 679 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -76560,7 +76680,7 @@ module.exports = function (encodedURI) { /***/ }), -/* 676 */ +/* 680 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2014 Simon Lydell @@ -76583,7 +76703,7 @@ module.exports = urix /***/ }), -/* 677 */ +/* 681 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -76597,7 +76717,7 @@ module.exports = atob.atob = atob; /***/ }), -/* 678 */ +/* 682 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -76605,8 +76725,8 @@ module.exports = atob.atob = atob; var fs = __webpack_require__(134); var path = __webpack_require__(4); -var define = __webpack_require__(646); -var utils = __webpack_require__(659); +var define = __webpack_require__(650); +var utils = __webpack_require__(663); /** * Expose `mixin()`. @@ -76749,19 +76869,19 @@ exports.comment = function(node) { /***/ }), -/* 679 */ +/* 683 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var use = __webpack_require__(657); +var use = __webpack_require__(661); var util = __webpack_require__(115); -var Cache = __webpack_require__(680); -var define = __webpack_require__(646); +var Cache = __webpack_require__(684); +var define = __webpack_require__(650); var debug = __webpack_require__(207)('snapdragon:parser'); -var Position = __webpack_require__(681); -var utils = __webpack_require__(659); +var Position = __webpack_require__(685); +var utils = __webpack_require__(663); /** * Create a new `Parser` with the given `input` and `options`. @@ -77289,7 +77409,7 @@ module.exports = Parser; /***/ }), -/* 680 */ +/* 684 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -77396,13 +77516,13 @@ MapCache.prototype.del = function mapDelete(key) { /***/ }), -/* 681 */ +/* 685 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var define = __webpack_require__(646); +var define = __webpack_require__(650); /** * Store position for a node @@ -77417,13 +77537,13 @@ module.exports = function Position(start, parser) { /***/ }), -/* 682 */ +/* 686 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(683); +var isExtendable = __webpack_require__(687); var assignSymbols = __webpack_require__(593); module.exports = Object.assign || function(obj/*, objects*/) { @@ -77484,7 +77604,7 @@ function isEnum(obj, key) { /***/ }), -/* 683 */ +/* 687 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -77505,14 +77625,14 @@ module.exports = function isExtendable(val) { /***/ }), -/* 684 */ +/* 688 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var nanomatch = __webpack_require__(685); -var extglob = __webpack_require__(700); +var nanomatch = __webpack_require__(689); +var extglob = __webpack_require__(704); module.exports = function(snapdragon) { var compilers = snapdragon.compiler.compilers; @@ -77589,7 +77709,7 @@ function escapeExtglobs(compiler) { /***/ }), -/* 685 */ +/* 689 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -77601,16 +77721,16 @@ function escapeExtglobs(compiler) { var util = __webpack_require__(115); var toRegex = __webpack_require__(575); -var extend = __webpack_require__(686); +var extend = __webpack_require__(690); /** * Local dependencies */ -var compilers = __webpack_require__(688); -var parsers = __webpack_require__(689); -var cache = __webpack_require__(692); -var utils = __webpack_require__(694); +var compilers = __webpack_require__(692); +var parsers = __webpack_require__(693); +var cache = __webpack_require__(696); +var utils = __webpack_require__(698); var MAX_LENGTH = 1024 * 64; /** @@ -78434,13 +78554,13 @@ module.exports = nanomatch; /***/ }), -/* 686 */ +/* 690 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(687); +var isExtendable = __webpack_require__(691); var assignSymbols = __webpack_require__(593); module.exports = Object.assign || function(obj/*, objects*/) { @@ -78501,7 +78621,7 @@ function isEnum(obj, key) { /***/ }), -/* 687 */ +/* 691 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78522,7 +78642,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 688 */ +/* 692 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78868,7 +78988,7 @@ module.exports = function(nanomatch, options) { /***/ }), -/* 689 */ +/* 693 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78876,7 +78996,7 @@ module.exports = function(nanomatch, options) { var regexNot = __webpack_require__(594); var toRegex = __webpack_require__(575); -var isOdd = __webpack_require__(690); +var isOdd = __webpack_require__(694); /** * Characters to use in negation regex (we want to "not" match @@ -79262,7 +79382,7 @@ module.exports.not = NOT_REGEX; /***/ }), -/* 690 */ +/* 694 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79275,7 +79395,7 @@ module.exports.not = NOT_REGEX; -var isNumber = __webpack_require__(691); +var isNumber = __webpack_require__(695); module.exports = function isOdd(i) { if (!isNumber(i)) { @@ -79289,7 +79409,7 @@ module.exports = function isOdd(i) { /***/ }), -/* 691 */ +/* 695 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79317,14 +79437,14 @@ module.exports = function isNumber(num) { /***/ }), -/* 692 */ +/* 696 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = new (__webpack_require__(693))(); +module.exports = new (__webpack_require__(697))(); /***/ }), -/* 693 */ +/* 697 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79337,7 +79457,7 @@ module.exports = new (__webpack_require__(693))(); -var MapCache = __webpack_require__(680); +var MapCache = __webpack_require__(684); /** * Create a new `FragmentCache` with an optional object to use for `caches`. @@ -79459,7 +79579,7 @@ exports = module.exports = FragmentCache; /***/ }), -/* 694 */ +/* 698 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79472,13 +79592,13 @@ var path = __webpack_require__(4); * Module dependencies */ -var isWindows = __webpack_require__(695)(); -var Snapdragon = __webpack_require__(618); -utils.define = __webpack_require__(696); -utils.diff = __webpack_require__(697); -utils.extend = __webpack_require__(686); -utils.pick = __webpack_require__(698); -utils.typeOf = __webpack_require__(699); +var isWindows = __webpack_require__(699)(); +var Snapdragon = __webpack_require__(620); +utils.define = __webpack_require__(700); +utils.diff = __webpack_require__(701); +utils.extend = __webpack_require__(690); +utils.pick = __webpack_require__(702); +utils.typeOf = __webpack_require__(703); utils.unique = __webpack_require__(597); /** @@ -79845,7 +79965,7 @@ utils.unixify = function(options) { /***/ }), -/* 695 */ +/* 699 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -79873,7 +79993,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 696 */ +/* 700 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79918,7 +80038,7 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 697 */ +/* 701 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79972,7 +80092,7 @@ function diffArray(one, two) { /***/ }), -/* 698 */ +/* 702 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80014,7 +80134,7 @@ module.exports = function pick(obj, keys) { /***/ }), -/* 699 */ +/* 703 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -80149,7 +80269,7 @@ function isBuffer(val) { /***/ }), -/* 700 */ +/* 704 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80159,7 +80279,7 @@ function isBuffer(val) { * Module dependencies */ -var extend = __webpack_require__(598); +var extend = __webpack_require__(634); var unique = __webpack_require__(597); var toRegex = __webpack_require__(575); @@ -80167,10 +80287,10 @@ var toRegex = __webpack_require__(575); * Local dependencies */ -var compilers = __webpack_require__(701); -var parsers = __webpack_require__(707); -var Extglob = __webpack_require__(710); -var utils = __webpack_require__(709); +var compilers = __webpack_require__(705); +var parsers = __webpack_require__(711); +var Extglob = __webpack_require__(714); +var utils = __webpack_require__(713); var MAX_LENGTH = 1024 * 64; /** @@ -80487,13 +80607,13 @@ module.exports = extglob; /***/ }), -/* 701 */ +/* 705 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var brackets = __webpack_require__(702); +var brackets = __webpack_require__(706); /** * Extglob compilers @@ -80663,7 +80783,7 @@ module.exports = function(extglob) { /***/ }), -/* 702 */ +/* 706 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80673,16 +80793,16 @@ module.exports = function(extglob) { * Local dependencies */ -var compilers = __webpack_require__(703); -var parsers = __webpack_require__(705); +var compilers = __webpack_require__(707); +var parsers = __webpack_require__(709); /** * Module dependencies */ var debug = __webpack_require__(207)('expand-brackets'); -var extend = __webpack_require__(598); -var Snapdragon = __webpack_require__(618); +var extend = __webpack_require__(634); +var Snapdragon = __webpack_require__(620); var toRegex = __webpack_require__(575); /** @@ -80881,13 +81001,13 @@ module.exports = brackets; /***/ }), -/* 703 */ +/* 707 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var posix = __webpack_require__(704); +var posix = __webpack_require__(708); module.exports = function(brackets) { brackets.compiler @@ -80975,7 +81095,7 @@ module.exports = function(brackets) { /***/ }), -/* 704 */ +/* 708 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81004,14 +81124,14 @@ module.exports = { /***/ }), -/* 705 */ +/* 709 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var utils = __webpack_require__(706); -var define = __webpack_require__(646); +var utils = __webpack_require__(710); +var define = __webpack_require__(650); /** * Text regex @@ -81230,7 +81350,7 @@ module.exports.TEXT_REGEX = TEXT_REGEX; /***/ }), -/* 706 */ +/* 710 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81271,15 +81391,15 @@ exports.createRegex = function(pattern, include) { /***/ }), -/* 707 */ +/* 711 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var brackets = __webpack_require__(702); -var define = __webpack_require__(708); -var utils = __webpack_require__(709); +var brackets = __webpack_require__(706); +var define = __webpack_require__(712); +var utils = __webpack_require__(713); /** * Characters to use in text regex (we want to "not" match @@ -81434,7 +81554,7 @@ module.exports = parsers; /***/ }), -/* 708 */ +/* 712 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81472,14 +81592,14 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 709 */ +/* 713 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var regex = __webpack_require__(594); -var Cache = __webpack_require__(693); +var Cache = __webpack_require__(697); /** * Utils @@ -81548,7 +81668,7 @@ utils.createRegex = function(str) { /***/ }), -/* 710 */ +/* 714 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81558,16 +81678,16 @@ utils.createRegex = function(str) { * Module dependencies */ -var Snapdragon = __webpack_require__(618); -var define = __webpack_require__(708); -var extend = __webpack_require__(598); +var Snapdragon = __webpack_require__(620); +var define = __webpack_require__(712); +var extend = __webpack_require__(634); /** * Local dependencies */ -var compilers = __webpack_require__(701); -var parsers = __webpack_require__(707); +var compilers = __webpack_require__(705); +var parsers = __webpack_require__(711); /** * Customize Snapdragon parser and renderer @@ -81633,14 +81753,14 @@ module.exports = Extglob; /***/ }), -/* 711 */ +/* 715 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extglob = __webpack_require__(700); -var nanomatch = __webpack_require__(685); +var extglob = __webpack_require__(704); +var nanomatch = __webpack_require__(689); var regexNot = __webpack_require__(594); var toRegex = __webpack_require__(575); var not; @@ -81723,14 +81843,14 @@ function textRegex(pattern) { /***/ }), -/* 712 */ +/* 716 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = new (__webpack_require__(693))(); +module.exports = new (__webpack_require__(697))(); /***/ }), -/* 713 */ +/* 717 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81743,12 +81863,12 @@ var path = __webpack_require__(4); * Module dependencies */ -var Snapdragon = __webpack_require__(618); -utils.define = __webpack_require__(714); -utils.diff = __webpack_require__(697); -utils.extend = __webpack_require__(682); -utils.pick = __webpack_require__(698); -utils.typeOf = __webpack_require__(715); +var Snapdragon = __webpack_require__(620); +utils.define = __webpack_require__(718); +utils.diff = __webpack_require__(701); +utils.extend = __webpack_require__(686); +utils.pick = __webpack_require__(702); +utils.typeOf = __webpack_require__(719); utils.unique = __webpack_require__(597); /** @@ -82046,7 +82166,7 @@ utils.unixify = function(options) { /***/ }), -/* 714 */ +/* 718 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82091,7 +82211,7 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 715 */ +/* 719 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -82226,7 +82346,7 @@ function isBuffer(val) { /***/ }), -/* 716 */ +/* 720 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82245,9 +82365,9 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var readdir = __webpack_require__(717); -var reader_1 = __webpack_require__(730); -var fs_stream_1 = __webpack_require__(734); +var readdir = __webpack_require__(721); +var reader_1 = __webpack_require__(734); +var fs_stream_1 = __webpack_require__(738); var ReaderAsync = /** @class */ (function (_super) { __extends(ReaderAsync, _super); function ReaderAsync() { @@ -82308,15 +82428,15 @@ exports.default = ReaderAsync; /***/ }), -/* 717 */ +/* 721 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const readdirSync = __webpack_require__(718); -const readdirAsync = __webpack_require__(726); -const readdirStream = __webpack_require__(729); +const readdirSync = __webpack_require__(722); +const readdirAsync = __webpack_require__(730); +const readdirStream = __webpack_require__(733); module.exports = exports = readdirAsyncPath; exports.readdir = exports.readdirAsync = exports.async = readdirAsyncPath; @@ -82400,7 +82520,7 @@ function readdirStreamStat (dir, options) { /***/ }), -/* 718 */ +/* 722 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82408,11 +82528,11 @@ function readdirStreamStat (dir, options) { module.exports = readdirSync; -const DirectoryReader = __webpack_require__(719); +const DirectoryReader = __webpack_require__(723); let syncFacade = { - fs: __webpack_require__(724), - forEach: __webpack_require__(725), + fs: __webpack_require__(728), + forEach: __webpack_require__(729), sync: true }; @@ -82441,7 +82561,7 @@ function readdirSync (dir, options, internalOptions) { /***/ }), -/* 719 */ +/* 723 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82450,9 +82570,9 @@ function readdirSync (dir, options, internalOptions) { const Readable = __webpack_require__(175).Readable; const EventEmitter = __webpack_require__(166).EventEmitter; const path = __webpack_require__(4); -const normalizeOptions = __webpack_require__(720); -const stat = __webpack_require__(722); -const call = __webpack_require__(723); +const normalizeOptions = __webpack_require__(724); +const stat = __webpack_require__(726); +const call = __webpack_require__(727); /** * Asynchronously reads the contents of a directory and streams the results @@ -82828,14 +82948,14 @@ module.exports = DirectoryReader; /***/ }), -/* 720 */ +/* 724 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const globToRegExp = __webpack_require__(721); +const globToRegExp = __webpack_require__(725); module.exports = normalizeOptions; @@ -83012,7 +83132,7 @@ function normalizeOptions (options, internalOptions) { /***/ }), -/* 721 */ +/* 725 */ /***/ (function(module, exports) { module.exports = function (glob, opts) { @@ -83149,13 +83269,13 @@ module.exports = function (glob, opts) { /***/ }), -/* 722 */ +/* 726 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const call = __webpack_require__(723); +const call = __webpack_require__(727); module.exports = stat; @@ -83230,7 +83350,7 @@ function symlinkStat (fs, path, lstats, callback) { /***/ }), -/* 723 */ +/* 727 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83291,14 +83411,14 @@ function callOnce (fn) { /***/ }), -/* 724 */ +/* 728 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(134); -const call = __webpack_require__(723); +const call = __webpack_require__(727); /** * A facade around {@link fs.readdirSync} that allows it to be called @@ -83362,7 +83482,7 @@ exports.lstat = function (path, callback) { /***/ }), -/* 725 */ +/* 729 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83391,7 +83511,7 @@ function syncForEach (array, iterator, done) { /***/ }), -/* 726 */ +/* 730 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83399,12 +83519,12 @@ function syncForEach (array, iterator, done) { module.exports = readdirAsync; -const maybe = __webpack_require__(727); -const DirectoryReader = __webpack_require__(719); +const maybe = __webpack_require__(731); +const DirectoryReader = __webpack_require__(723); let asyncFacade = { fs: __webpack_require__(134), - forEach: __webpack_require__(728), + forEach: __webpack_require__(732), async: true }; @@ -83446,7 +83566,7 @@ function readdirAsync (dir, options, callback, internalOptions) { /***/ }), -/* 727 */ +/* 731 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83473,7 +83593,7 @@ module.exports = function maybe (cb, promise) { /***/ }), -/* 728 */ +/* 732 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83509,7 +83629,7 @@ function asyncForEach (array, iterator, done) { /***/ }), -/* 729 */ +/* 733 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83517,11 +83637,11 @@ function asyncForEach (array, iterator, done) { module.exports = readdirStream; -const DirectoryReader = __webpack_require__(719); +const DirectoryReader = __webpack_require__(723); let streamFacade = { fs: __webpack_require__(134), - forEach: __webpack_require__(728), + forEach: __webpack_require__(732), async: true }; @@ -83541,16 +83661,16 @@ function readdirStream (dir, options, internalOptions) { /***/ }), -/* 730 */ +/* 734 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var path = __webpack_require__(4); -var deep_1 = __webpack_require__(731); -var entry_1 = __webpack_require__(733); -var pathUtil = __webpack_require__(732); +var deep_1 = __webpack_require__(735); +var entry_1 = __webpack_require__(737); +var pathUtil = __webpack_require__(736); var Reader = /** @class */ (function () { function Reader(options) { this.options = options; @@ -83616,13 +83736,13 @@ exports.default = Reader; /***/ }), -/* 731 */ +/* 735 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var pathUtils = __webpack_require__(732); +var pathUtils = __webpack_require__(736); var patternUtils = __webpack_require__(569); var DeepFilter = /** @class */ (function () { function DeepFilter(options, micromatchOptions) { @@ -83706,7 +83826,7 @@ exports.default = DeepFilter; /***/ }), -/* 732 */ +/* 736 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83737,13 +83857,13 @@ exports.makeAbsolute = makeAbsolute; /***/ }), -/* 733 */ +/* 737 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var pathUtils = __webpack_require__(732); +var pathUtils = __webpack_require__(736); var patternUtils = __webpack_require__(569); var EntryFilter = /** @class */ (function () { function EntryFilter(options, micromatchOptions) { @@ -83829,7 +83949,7 @@ exports.default = EntryFilter; /***/ }), -/* 734 */ +/* 738 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83849,8 +83969,8 @@ var __extends = (this && this.__extends) || (function () { })(); Object.defineProperty(exports, "__esModule", { value: true }); var stream = __webpack_require__(175); -var fsStat = __webpack_require__(735); -var fs_1 = __webpack_require__(739); +var fsStat = __webpack_require__(739); +var fs_1 = __webpack_require__(743); var FileSystemStream = /** @class */ (function (_super) { __extends(FileSystemStream, _super); function FileSystemStream() { @@ -83900,14 +84020,14 @@ exports.default = FileSystemStream; /***/ }), -/* 735 */ +/* 739 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const optionsManager = __webpack_require__(736); -const statProvider = __webpack_require__(738); +const optionsManager = __webpack_require__(740); +const statProvider = __webpack_require__(742); /** * Asynchronous API. */ @@ -83938,13 +84058,13 @@ exports.statSync = statSync; /***/ }), -/* 736 */ +/* 740 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fsAdapter = __webpack_require__(737); +const fsAdapter = __webpack_require__(741); function prepare(opts) { const options = Object.assign({ fs: fsAdapter.getFileSystemAdapter(opts ? opts.fs : undefined), @@ -83957,7 +84077,7 @@ exports.prepare = prepare; /***/ }), -/* 737 */ +/* 741 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83980,7 +84100,7 @@ exports.getFileSystemAdapter = getFileSystemAdapter; /***/ }), -/* 738 */ +/* 742 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84032,7 +84152,7 @@ exports.isFollowedSymlink = isFollowedSymlink; /***/ }), -/* 739 */ +/* 743 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84063,7 +84183,7 @@ exports.default = FileSystem; /***/ }), -/* 740 */ +/* 744 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84083,9 +84203,9 @@ var __extends = (this && this.__extends) || (function () { })(); Object.defineProperty(exports, "__esModule", { value: true }); var stream = __webpack_require__(175); -var readdir = __webpack_require__(717); -var reader_1 = __webpack_require__(730); -var fs_stream_1 = __webpack_require__(734); +var readdir = __webpack_require__(721); +var reader_1 = __webpack_require__(734); +var fs_stream_1 = __webpack_require__(738); var TransformStream = /** @class */ (function (_super) { __extends(TransformStream, _super); function TransformStream(reader) { @@ -84153,7 +84273,7 @@ exports.default = ReaderStream; /***/ }), -/* 741 */ +/* 745 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84172,9 +84292,9 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var readdir = __webpack_require__(717); -var reader_1 = __webpack_require__(730); -var fs_sync_1 = __webpack_require__(742); +var readdir = __webpack_require__(721); +var reader_1 = __webpack_require__(734); +var fs_sync_1 = __webpack_require__(746); var ReaderSync = /** @class */ (function (_super) { __extends(ReaderSync, _super); function ReaderSync() { @@ -84234,7 +84354,7 @@ exports.default = ReaderSync; /***/ }), -/* 742 */ +/* 746 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84253,8 +84373,8 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var fsStat = __webpack_require__(735); -var fs_1 = __webpack_require__(739); +var fsStat = __webpack_require__(739); +var fs_1 = __webpack_require__(743); var FileSystemSync = /** @class */ (function (_super) { __extends(FileSystemSync, _super); function FileSystemSync() { @@ -84300,7 +84420,7 @@ exports.default = FileSystemSync; /***/ }), -/* 743 */ +/* 747 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84316,7 +84436,7 @@ exports.flatten = flatten; /***/ }), -/* 744 */ +/* 748 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84337,13 +84457,13 @@ exports.merge = merge; /***/ }), -/* 745 */ +/* 749 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const pathType = __webpack_require__(746); +const pathType = __webpack_require__(750); const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; @@ -84409,13 +84529,13 @@ module.exports.sync = (input, opts) => { /***/ }), -/* 746 */ +/* 750 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(134); -const pify = __webpack_require__(747); +const pify = __webpack_require__(751); function type(fn, fn2, fp) { if (typeof fp !== 'string') { @@ -84458,7 +84578,7 @@ exports.symlinkSync = typeSync.bind(null, 'lstatSync', 'isSymbolicLink'); /***/ }), -/* 747 */ +/* 751 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84549,7 +84669,7 @@ module.exports = (obj, opts) => { /***/ }), -/* 748 */ +/* 752 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84557,9 +84677,9 @@ module.exports = (obj, opts) => { const fs = __webpack_require__(134); const path = __webpack_require__(4); const fastGlob = __webpack_require__(565); -const gitIgnore = __webpack_require__(749); -const pify = __webpack_require__(750); -const slash = __webpack_require__(751); +const gitIgnore = __webpack_require__(753); +const pify = __webpack_require__(754); +const slash = __webpack_require__(755); const DEFAULT_IGNORE = [ '**/node_modules/**', @@ -84657,7 +84777,7 @@ module.exports.sync = options => { /***/ }), -/* 749 */ +/* 753 */ /***/ (function(module, exports) { // A simple implementation of make-array @@ -85126,7 +85246,7 @@ module.exports = options => new IgnoreBase(options) /***/ }), -/* 750 */ +/* 754 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -85201,7 +85321,7 @@ module.exports = (input, options) => { /***/ }), -/* 751 */ +/* 755 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -85219,7 +85339,7 @@ module.exports = input => { /***/ }), -/* 752 */ +/* 756 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -85232,7 +85352,7 @@ module.exports = input => { -var isGlob = __webpack_require__(753); +var isGlob = __webpack_require__(757); module.exports = function hasGlob(val) { if (val == null) return false; @@ -85252,7 +85372,7 @@ module.exports = function hasGlob(val) { /***/ }), -/* 753 */ +/* 757 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -85283,17 +85403,17 @@ module.exports = function isGlob(str) { /***/ }), -/* 754 */ +/* 758 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); const {constants: fsConstants} = __webpack_require__(134); -const pEvent = __webpack_require__(755); -const CpFileError = __webpack_require__(758); -const fs = __webpack_require__(760); -const ProgressEmitter = __webpack_require__(763); +const pEvent = __webpack_require__(759); +const CpFileError = __webpack_require__(762); +const fs = __webpack_require__(764); +const ProgressEmitter = __webpack_require__(767); const cpFileAsync = async (source, destination, options, progressEmitter) => { let readError; @@ -85407,12 +85527,12 @@ module.exports.sync = (source, destination, options) => { /***/ }), -/* 755 */ +/* 759 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pTimeout = __webpack_require__(756); +const pTimeout = __webpack_require__(760); const symbolAsyncIterator = Symbol.asyncIterator || '@@asyncIterator'; @@ -85703,12 +85823,12 @@ module.exports.iterator = (emitter, event, options) => { /***/ }), -/* 756 */ +/* 760 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pFinally = __webpack_require__(757); +const pFinally = __webpack_require__(761); class TimeoutError extends Error { constructor(message) { @@ -85754,7 +85874,7 @@ module.exports.TimeoutError = TimeoutError; /***/ }), -/* 757 */ +/* 761 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -85776,12 +85896,12 @@ module.exports = (promise, onFinally) => { /***/ }), -/* 758 */ +/* 762 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const NestedError = __webpack_require__(759); +const NestedError = __webpack_require__(763); class CpFileError extends NestedError { constructor(message, nested) { @@ -85795,7 +85915,7 @@ module.exports = CpFileError; /***/ }), -/* 759 */ +/* 763 */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(115).inherits; @@ -85851,16 +85971,16 @@ module.exports = NestedError; /***/ }), -/* 760 */ +/* 764 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const {promisify} = __webpack_require__(115); const fs = __webpack_require__(235); -const makeDir = __webpack_require__(761); -const pEvent = __webpack_require__(755); -const CpFileError = __webpack_require__(758); +const makeDir = __webpack_require__(765); +const pEvent = __webpack_require__(759); +const CpFileError = __webpack_require__(762); const stat = promisify(fs.stat); const lstat = promisify(fs.lstat); @@ -85957,7 +86077,7 @@ exports.copyFileSync = (source, destination, flags) => { /***/ }), -/* 761 */ +/* 765 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -85965,7 +86085,7 @@ exports.copyFileSync = (source, destination, flags) => { const fs = __webpack_require__(134); const path = __webpack_require__(4); const {promisify} = __webpack_require__(115); -const semver = __webpack_require__(762); +const semver = __webpack_require__(766); const useNativeRecursiveOption = semver.satisfies(process.version, '>=10.12.0'); @@ -86120,7 +86240,7 @@ module.exports.sync = (input, options) => { /***/ }), -/* 762 */ +/* 766 */ /***/ (function(module, exports) { exports = module.exports = SemVer @@ -87722,7 +87842,7 @@ function coerce (version, options) { /***/ }), -/* 763 */ +/* 767 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -87763,7 +87883,7 @@ module.exports = ProgressEmitter; /***/ }), -/* 764 */ +/* 768 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -87809,12 +87929,12 @@ exports.default = module.exports; /***/ }), -/* 765 */ +/* 769 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pMap = __webpack_require__(766); +const pMap = __webpack_require__(770); const pFilter = async (iterable, filterer, options) => { const values = await pMap( @@ -87831,7 +87951,7 @@ module.exports.default = pFilter; /***/ }), -/* 766 */ +/* 770 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -87910,12 +88030,12 @@ module.exports.default = pMap; /***/ }), -/* 767 */ +/* 771 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const NestedError = __webpack_require__(759); +const NestedError = __webpack_require__(763); class CpyError extends NestedError { constructor(message, nested) { @@ -87929,7 +88049,7 @@ module.exports = CpyError; /***/ }), -/* 768 */ +/* 772 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -87937,10 +88057,10 @@ module.exports = CpyError; const fs = __webpack_require__(134); const arrayUnion = __webpack_require__(244); const merge2 = __webpack_require__(245); -const fastGlob = __webpack_require__(769); +const fastGlob = __webpack_require__(773); const dirGlob = __webpack_require__(328); -const gitignore = __webpack_require__(804); -const {FilterStream, UniqueStream} = __webpack_require__(805); +const gitignore = __webpack_require__(798); +const {FilterStream, UniqueStream} = __webpack_require__(799); const DEFAULT_FILTER = () => false; @@ -88117,17 +88237,17 @@ module.exports.gitignore = gitignore; /***/ }), -/* 769 */ +/* 773 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const taskManager = __webpack_require__(770); -const async_1 = __webpack_require__(790); -const stream_1 = __webpack_require__(800); -const sync_1 = __webpack_require__(801); -const settings_1 = __webpack_require__(803); -const utils = __webpack_require__(771); +const taskManager = __webpack_require__(774); +const async_1 = __webpack_require__(784); +const stream_1 = __webpack_require__(794); +const sync_1 = __webpack_require__(795); +const settings_1 = __webpack_require__(797); +const utils = __webpack_require__(775); async function FastGlob(source, options) { assertPatternsInput(source); const works = getWorks(source, async_1.default, options); @@ -88191,14 +88311,14 @@ module.exports = FastGlob; /***/ }), -/* 770 */ +/* 774 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; -const utils = __webpack_require__(771); +const utils = __webpack_require__(775); function generate(patterns, settings) { const positivePatterns = getPositivePatterns(patterns); const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); @@ -88263,31 +88383,31 @@ exports.convertPatternGroupToTask = convertPatternGroupToTask; /***/ }), -/* 771 */ +/* 775 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; -const array = __webpack_require__(772); +const array = __webpack_require__(776); exports.array = array; -const errno = __webpack_require__(773); +const errno = __webpack_require__(777); exports.errno = errno; -const fs = __webpack_require__(774); +const fs = __webpack_require__(778); exports.fs = fs; -const path = __webpack_require__(775); +const path = __webpack_require__(779); exports.path = path; -const pattern = __webpack_require__(776); +const pattern = __webpack_require__(780); exports.pattern = pattern; -const stream = __webpack_require__(788); +const stream = __webpack_require__(782); exports.stream = stream; -const string = __webpack_require__(789); +const string = __webpack_require__(783); exports.string = string; /***/ }), -/* 772 */ +/* 776 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -88316,7 +88436,7 @@ exports.splitWhen = splitWhen; /***/ }), -/* 773 */ +/* 777 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -88330,7 +88450,7 @@ exports.isEnoentCodeError = isEnoentCodeError; /***/ }), -/* 774 */ +/* 778 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -88356,7 +88476,7 @@ exports.createDirentFromStats = createDirentFromStats; /***/ }), -/* 775 */ +/* 779 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -88396,7 +88516,7 @@ exports.removeLeadingDotSegment = removeLeadingDotSegment; /***/ }), -/* 776 */ +/* 780 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -88405,7 +88525,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; const path = __webpack_require__(4); const globParent = __webpack_require__(267); -const micromatch = __webpack_require__(777); +const micromatch = __webpack_require__(781); const picomatch = __webpack_require__(281); const GLOBSTAR = '**'; const ESCAPE_SYMBOL = '\\'; @@ -88535,14 +88655,14 @@ exports.matchAny = matchAny; /***/ }), -/* 777 */ +/* 781 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const util = __webpack_require__(115); -const braces = __webpack_require__(778); +const braces = __webpack_require__(271); const picomatch = __webpack_require__(281); const utils = __webpack_require__(284); const isEmptyString = val => typeof val === 'string' && (val === '' || val === './'); @@ -89009,1531 +89129,32 @@ module.exports = micromatch; /***/ }), -/* 778 */ +/* 782 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.merge = void 0; +const merge2 = __webpack_require__(245); +function merge(streams) { + const mergedStream = merge2(streams); + streams.forEach((stream) => { + stream.once('error', (error) => mergedStream.emit('error', error)); + }); + mergedStream.once('close', () => propagateCloseEventToSources(streams)); + mergedStream.once('end', () => propagateCloseEventToSources(streams)); + return mergedStream; +} +exports.merge = merge; +function propagateCloseEventToSources(streams) { + streams.forEach((stream) => stream.emit('close')); +} -const stringify = __webpack_require__(779); -const compile = __webpack_require__(781); -const expand = __webpack_require__(785); -const parse = __webpack_require__(786); - -/** - * Expand the given pattern or create a regex-compatible string. - * - * ```js - * const braces = require('braces'); - * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] - * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] - * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {String} - * @api public - */ - -const braces = (input, options = {}) => { - let output = []; - - if (Array.isArray(input)) { - for (let pattern of input) { - let result = braces.create(pattern, options); - if (Array.isArray(result)) { - output.push(...result); - } else { - output.push(result); - } - } - } else { - output = [].concat(braces.create(input, options)); - } - - if (options && options.expand === true && options.nodupes === true) { - output = [...new Set(output)]; - } - return output; -}; - -/** - * Parse the given `str` with the given `options`. - * - * ```js - * // braces.parse(pattern, [, options]); - * const ast = braces.parse('a/{b,c}/d'); - * console.log(ast); - * ``` - * @param {String} pattern Brace pattern to parse - * @param {Object} options - * @return {Object} Returns an AST - * @api public - */ - -braces.parse = (input, options = {}) => parse(input, options); - -/** - * Creates a braces string from an AST, or an AST node. - * - * ```js - * const braces = require('braces'); - * let ast = braces.parse('foo/{a,b}/bar'); - * console.log(stringify(ast.nodes[2])); //=> '{a,b}' - * ``` - * @param {String} `input` Brace pattern or AST. - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.stringify = (input, options = {}) => { - if (typeof input === 'string') { - return stringify(braces.parse(input, options), options); - } - return stringify(input, options); -}; - -/** - * Compiles a brace pattern into a regex-compatible, optimized string. - * This method is called by the main [braces](#braces) function by default. - * - * ```js - * const braces = require('braces'); - * console.log(braces.compile('a/{b,c}/d')); - * //=> ['a/(b|c)/d'] - * ``` - * @param {String} `input` Brace pattern or AST. - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.compile = (input, options = {}) => { - if (typeof input === 'string') { - input = braces.parse(input, options); - } - return compile(input, options); -}; - -/** - * Expands a brace pattern into an array. This method is called by the - * main [braces](#braces) function when `options.expand` is true. Before - * using this method it's recommended that you read the [performance notes](#performance)) - * and advantages of using [.compile](#compile) instead. - * - * ```js - * const braces = require('braces'); - * console.log(braces.expand('a/{b,c}/d')); - * //=> ['a/b/d', 'a/c/d']; - * ``` - * @param {String} `pattern` Brace pattern - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.expand = (input, options = {}) => { - if (typeof input === 'string') { - input = braces.parse(input, options); - } - - let result = expand(input, options); - - // filter out empty strings if specified - if (options.noempty === true) { - result = result.filter(Boolean); - } - - // filter out duplicates if specified - if (options.nodupes === true) { - result = [...new Set(result)]; - } - - return result; -}; - -/** - * Processes a brace pattern and returns either an expanded array - * (if `options.expand` is true), a highly optimized regex-compatible string. - * This method is called by the main [braces](#braces) function. - * - * ```js - * const braces = require('braces'); - * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) - * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' - * ``` - * @param {String} `pattern` Brace pattern - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.create = (input, options = {}) => { - if (input === '' || input.length < 3) { - return [input]; - } - - return options.expand !== true - ? braces.compile(input, options) - : braces.expand(input, options); -}; - -/** - * Expose "braces" - */ - -module.exports = braces; - - -/***/ }), -/* 779 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -const utils = __webpack_require__(780); - -module.exports = (ast, options = {}) => { - let stringify = (node, parent = {}) => { - let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); - let invalidNode = node.invalid === true && options.escapeInvalid === true; - let output = ''; - - if (node.value) { - if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { - return '\\' + node.value; - } - return node.value; - } - - if (node.value) { - return node.value; - } - - if (node.nodes) { - for (let child of node.nodes) { - output += stringify(child); - } - } - return output; - }; - - return stringify(ast); -}; - - - -/***/ }), -/* 780 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.isInteger = num => { - if (typeof num === 'number') { - return Number.isInteger(num); - } - if (typeof num === 'string' && num.trim() !== '') { - return Number.isInteger(Number(num)); - } - return false; -}; - -/** - * Find a node of the given type - */ - -exports.find = (node, type) => node.nodes.find(node => node.type === type); - -/** - * Find a node of the given type - */ - -exports.exceedsLimit = (min, max, step = 1, limit) => { - if (limit === false) return false; - if (!exports.isInteger(min) || !exports.isInteger(max)) return false; - return ((Number(max) - Number(min)) / Number(step)) >= limit; -}; - -/** - * Escape the given node with '\\' before node.value - */ - -exports.escapeNode = (block, n = 0, type) => { - let node = block.nodes[n]; - if (!node) return; - - if ((type && node.type === type) || node.type === 'open' || node.type === 'close') { - if (node.escaped !== true) { - node.value = '\\' + node.value; - node.escaped = true; - } - } -}; - -/** - * Returns true if the given brace node should be enclosed in literal braces - */ - -exports.encloseBrace = node => { - if (node.type !== 'brace') return false; - if ((node.commas >> 0 + node.ranges >> 0) === 0) { - node.invalid = true; - return true; - } - return false; -}; - -/** - * Returns true if a brace node is invalid. - */ - -exports.isInvalidBrace = block => { - if (block.type !== 'brace') return false; - if (block.invalid === true || block.dollar) return true; - if ((block.commas >> 0 + block.ranges >> 0) === 0) { - block.invalid = true; - return true; - } - if (block.open !== true || block.close !== true) { - block.invalid = true; - return true; - } - return false; -}; - -/** - * Returns true if a node is an open or close node - */ - -exports.isOpenOrClose = node => { - if (node.type === 'open' || node.type === 'close') { - return true; - } - return node.open === true || node.close === true; -}; - -/** - * Reduce an array of text nodes. - */ - -exports.reduce = nodes => nodes.reduce((acc, node) => { - if (node.type === 'text') acc.push(node.value); - if (node.type === 'range') node.type = 'text'; - return acc; -}, []); - -/** - * Flatten an array - */ - -exports.flatten = (...args) => { - const result = []; - const flat = arr => { - for (let i = 0; i < arr.length; i++) { - let ele = arr[i]; - Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele); - } - return result; - }; - flat(args); - return result; -}; - - -/***/ }), -/* 781 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -const fill = __webpack_require__(782); -const utils = __webpack_require__(780); - -const compile = (ast, options = {}) => { - let walk = (node, parent = {}) => { - let invalidBlock = utils.isInvalidBrace(parent); - let invalidNode = node.invalid === true && options.escapeInvalid === true; - let invalid = invalidBlock === true || invalidNode === true; - let prefix = options.escapeInvalid === true ? '\\' : ''; - let output = ''; - - if (node.isOpen === true) { - return prefix + node.value; - } - if (node.isClose === true) { - return prefix + node.value; - } - - if (node.type === 'open') { - return invalid ? (prefix + node.value) : '('; - } - - if (node.type === 'close') { - return invalid ? (prefix + node.value) : ')'; - } - - if (node.type === 'comma') { - return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|'); - } - - if (node.value) { - return node.value; - } - - if (node.nodes && node.ranges > 0) { - let args = utils.reduce(node.nodes); - let range = fill(...args, { ...options, wrap: false, toRegex: true }); - - if (range.length !== 0) { - return args.length > 1 && range.length > 1 ? `(${range})` : range; - } - } - - if (node.nodes) { - for (let child of node.nodes) { - output += walk(child, node); - } - } - return output; - }; - - return walk(ast); -}; - -module.exports = compile; - - -/***/ }), -/* 782 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * fill-range - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - */ - - - -const util = __webpack_require__(115); -const toRegexRange = __webpack_require__(783); - -const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); - -const transform = toNumber => { - return value => toNumber === true ? Number(value) : String(value); -}; - -const isValidValue = value => { - return typeof value === 'number' || (typeof value === 'string' && value !== ''); -}; - -const isNumber = num => Number.isInteger(+num); - -const zeros = input => { - let value = `${input}`; - let index = -1; - if (value[0] === '-') value = value.slice(1); - if (value === '0') return false; - while (value[++index] === '0'); - return index > 0; -}; - -const stringify = (start, end, options) => { - if (typeof start === 'string' || typeof end === 'string') { - return true; - } - return options.stringify === true; -}; - -const pad = (input, maxLength, toNumber) => { - if (maxLength > 0) { - let dash = input[0] === '-' ? '-' : ''; - if (dash) input = input.slice(1); - input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0')); - } - if (toNumber === false) { - return String(input); - } - return input; -}; - -const toMaxLen = (input, maxLength) => { - let negative = input[0] === '-' ? '-' : ''; - if (negative) { - input = input.slice(1); - maxLength--; - } - while (input.length < maxLength) input = '0' + input; - return negative ? ('-' + input) : input; -}; - -const toSequence = (parts, options) => { - parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - - let prefix = options.capture ? '' : '?:'; - let positives = ''; - let negatives = ''; - let result; - - if (parts.positives.length) { - positives = parts.positives.join('|'); - } - - if (parts.negatives.length) { - negatives = `-(${prefix}${parts.negatives.join('|')})`; - } - - if (positives && negatives) { - result = `${positives}|${negatives}`; - } else { - result = positives || negatives; - } - - if (options.wrap) { - return `(${prefix}${result})`; - } - - return result; -}; - -const toRange = (a, b, isNumbers, options) => { - if (isNumbers) { - return toRegexRange(a, b, { wrap: false, ...options }); - } - - let start = String.fromCharCode(a); - if (a === b) return start; - - let stop = String.fromCharCode(b); - return `[${start}-${stop}]`; -}; - -const toRegex = (start, end, options) => { - if (Array.isArray(start)) { - let wrap = options.wrap === true; - let prefix = options.capture ? '' : '?:'; - return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); - } - return toRegexRange(start, end, options); -}; - -const rangeError = (...args) => { - return new RangeError('Invalid range arguments: ' + util.inspect(...args)); -}; - -const invalidRange = (start, end, options) => { - if (options.strictRanges === true) throw rangeError([start, end]); - return []; -}; - -const invalidStep = (step, options) => { - if (options.strictRanges === true) { - throw new TypeError(`Expected step "${step}" to be a number`); - } - return []; -}; - -const fillNumbers = (start, end, step = 1, options = {}) => { - let a = Number(start); - let b = Number(end); - - if (!Number.isInteger(a) || !Number.isInteger(b)) { - if (options.strictRanges === true) throw rangeError([start, end]); - return []; - } - - // fix negative zero - if (a === 0) a = 0; - if (b === 0) b = 0; - - let descending = a > b; - let startString = String(start); - let endString = String(end); - let stepString = String(step); - step = Math.max(Math.abs(step), 1); - - let padded = zeros(startString) || zeros(endString) || zeros(stepString); - let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; - let toNumber = padded === false && stringify(start, end, options) === false; - let format = options.transform || transform(toNumber); - - if (options.toRegex && step === 1) { - return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); - } - - let parts = { negatives: [], positives: [] }; - let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); - let range = []; - let index = 0; - - while (descending ? a >= b : a <= b) { - if (options.toRegex === true && step > 1) { - push(a); - } else { - range.push(pad(format(a, index), maxLen, toNumber)); - } - a = descending ? a - step : a + step; - index++; - } - - if (options.toRegex === true) { - return step > 1 - ? toSequence(parts, options) - : toRegex(range, null, { wrap: false, ...options }); - } - - return range; -}; - -const fillLetters = (start, end, step = 1, options = {}) => { - if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) { - return invalidRange(start, end, options); - } - - - let format = options.transform || (val => String.fromCharCode(val)); - let a = `${start}`.charCodeAt(0); - let b = `${end}`.charCodeAt(0); - - let descending = a > b; - let min = Math.min(a, b); - let max = Math.max(a, b); - - if (options.toRegex && step === 1) { - return toRange(min, max, false, options); - } - - let range = []; - let index = 0; - - while (descending ? a >= b : a <= b) { - range.push(format(a, index)); - a = descending ? a - step : a + step; - index++; - } - - if (options.toRegex === true) { - return toRegex(range, null, { wrap: false, options }); - } - - return range; -}; - -const fill = (start, end, step, options = {}) => { - if (end == null && isValidValue(start)) { - return [start]; - } - - if (!isValidValue(start) || !isValidValue(end)) { - return invalidRange(start, end, options); - } - - if (typeof step === 'function') { - return fill(start, end, 1, { transform: step }); - } - - if (isObject(step)) { - return fill(start, end, 0, step); - } - - let opts = { ...options }; - if (opts.capture === true) opts.wrap = true; - step = step || opts.step || 1; - - if (!isNumber(step)) { - if (step != null && !isObject(step)) return invalidStep(step, opts); - return fill(start, end, 1, step); - } - - if (isNumber(start) && isNumber(end)) { - return fillNumbers(start, end, step, opts); - } - - return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); -}; - -module.exports = fill; - - -/***/ }), -/* 783 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * to-regex-range - * - * Copyright (c) 2015-present, Jon Schlinkert. - * Released under the MIT License. - */ - - - -const isNumber = __webpack_require__(784); - -const toRegexRange = (min, max, options) => { - if (isNumber(min) === false) { - throw new TypeError('toRegexRange: expected the first argument to be a number'); - } - - if (max === void 0 || min === max) { - return String(min); - } - - if (isNumber(max) === false) { - throw new TypeError('toRegexRange: expected the second argument to be a number.'); - } - - let opts = { relaxZeros: true, ...options }; - if (typeof opts.strictZeros === 'boolean') { - opts.relaxZeros = opts.strictZeros === false; - } - - let relax = String(opts.relaxZeros); - let shorthand = String(opts.shorthand); - let capture = String(opts.capture); - let wrap = String(opts.wrap); - let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; - - if (toRegexRange.cache.hasOwnProperty(cacheKey)) { - return toRegexRange.cache[cacheKey].result; - } - - let a = Math.min(min, max); - let b = Math.max(min, max); - - if (Math.abs(a - b) === 1) { - let result = min + '|' + max; - if (opts.capture) { - return `(${result})`; - } - if (opts.wrap === false) { - return result; - } - return `(?:${result})`; - } - - let isPadded = hasPadding(min) || hasPadding(max); - let state = { min, max, a, b }; - let positives = []; - let negatives = []; - - if (isPadded) { - state.isPadded = isPadded; - state.maxLen = String(state.max).length; - } - - if (a < 0) { - let newMin = b < 0 ? Math.abs(b) : 1; - negatives = splitToPatterns(newMin, Math.abs(a), state, opts); - a = state.a = 0; - } - - if (b >= 0) { - positives = splitToPatterns(a, b, state, opts); - } - - state.negatives = negatives; - state.positives = positives; - state.result = collatePatterns(negatives, positives, opts); - - if (opts.capture === true) { - state.result = `(${state.result})`; - } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) { - state.result = `(?:${state.result})`; - } - - toRegexRange.cache[cacheKey] = state; - return state.result; -}; - -function collatePatterns(neg, pos, options) { - let onlyNegative = filterPatterns(neg, pos, '-', false, options) || []; - let onlyPositive = filterPatterns(pos, neg, '', false, options) || []; - let intersected = filterPatterns(neg, pos, '-?', true, options) || []; - let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); - return subpatterns.join('|'); -} - -function splitToRanges(min, max) { - let nines = 1; - let zeros = 1; - - let stop = countNines(min, nines); - let stops = new Set([max]); - - while (min <= stop && stop <= max) { - stops.add(stop); - nines += 1; - stop = countNines(min, nines); - } - - stop = countZeros(max + 1, zeros) - 1; - - while (min < stop && stop <= max) { - stops.add(stop); - zeros += 1; - stop = countZeros(max + 1, zeros) - 1; - } - - stops = [...stops]; - stops.sort(compare); - return stops; -} - -/** - * Convert a range to a regex pattern - * @param {Number} `start` - * @param {Number} `stop` - * @return {String} - */ - -function rangeToPattern(start, stop, options) { - if (start === stop) { - return { pattern: start, count: [], digits: 0 }; - } - - let zipped = zip(start, stop); - let digits = zipped.length; - let pattern = ''; - let count = 0; - - for (let i = 0; i < digits; i++) { - let [startDigit, stopDigit] = zipped[i]; - - if (startDigit === stopDigit) { - pattern += startDigit; - - } else if (startDigit !== '0' || stopDigit !== '9') { - pattern += toCharacterClass(startDigit, stopDigit, options); - - } else { - count++; - } - } - - if (count) { - pattern += options.shorthand === true ? '\\d' : '[0-9]'; - } - - return { pattern, count: [count], digits }; -} - -function splitToPatterns(min, max, tok, options) { - let ranges = splitToRanges(min, max); - let tokens = []; - let start = min; - let prev; - - for (let i = 0; i < ranges.length; i++) { - let max = ranges[i]; - let obj = rangeToPattern(String(start), String(max), options); - let zeros = ''; - - if (!tok.isPadded && prev && prev.pattern === obj.pattern) { - if (prev.count.length > 1) { - prev.count.pop(); - } - - prev.count.push(obj.count[0]); - prev.string = prev.pattern + toQuantifier(prev.count); - start = max + 1; - continue; - } - - if (tok.isPadded) { - zeros = padZeros(max, tok, options); - } - - obj.string = zeros + obj.pattern + toQuantifier(obj.count); - tokens.push(obj); - start = max + 1; - prev = obj; - } - - return tokens; -} - -function filterPatterns(arr, comparison, prefix, intersection, options) { - let result = []; - - for (let ele of arr) { - let { string } = ele; - - // only push if _both_ are negative... - if (!intersection && !contains(comparison, 'string', string)) { - result.push(prefix + string); - } - - // or _both_ are positive - if (intersection && contains(comparison, 'string', string)) { - result.push(prefix + string); - } - } - return result; -} - -/** - * Zip strings - */ - -function zip(a, b) { - let arr = []; - for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); - return arr; -} - -function compare(a, b) { - return a > b ? 1 : b > a ? -1 : 0; -} - -function contains(arr, key, val) { - return arr.some(ele => ele[key] === val); -} - -function countNines(min, len) { - return Number(String(min).slice(0, -len) + '9'.repeat(len)); -} - -function countZeros(integer, zeros) { - return integer - (integer % Math.pow(10, zeros)); -} - -function toQuantifier(digits) { - let [start = 0, stop = ''] = digits; - if (stop || start > 1) { - return `{${start + (stop ? ',' + stop : '')}}`; - } - return ''; -} - -function toCharacterClass(a, b, options) { - return `[${a}${(b - a === 1) ? '' : '-'}${b}]`; -} - -function hasPadding(str) { - return /^-?(0+)\d/.test(str); -} - -function padZeros(value, tok, options) { - if (!tok.isPadded) { - return value; - } - - let diff = Math.abs(tok.maxLen - String(value).length); - let relax = options.relaxZeros !== false; - - switch (diff) { - case 0: - return ''; - case 1: - return relax ? '0?' : '0'; - case 2: - return relax ? '0{0,2}' : '00'; - default: { - return relax ? `0{0,${diff}}` : `0{${diff}}`; - } - } -} - -/** - * Cache - */ - -toRegexRange.cache = {}; -toRegexRange.clearCache = () => (toRegexRange.cache = {}); - -/** - * Expose `toRegexRange` - */ - -module.exports = toRegexRange; - - -/***/ }), -/* 784 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * is-number - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */ - - - -module.exports = function(num) { - if (typeof num === 'number') { - return num - num === 0; - } - if (typeof num === 'string' && num.trim() !== '') { - return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); - } - return false; -}; - - -/***/ }), -/* 785 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -const fill = __webpack_require__(782); -const stringify = __webpack_require__(779); -const utils = __webpack_require__(780); - -const append = (queue = '', stash = '', enclose = false) => { - let result = []; - - queue = [].concat(queue); - stash = [].concat(stash); - - if (!stash.length) return queue; - if (!queue.length) { - return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash; - } - - for (let item of queue) { - if (Array.isArray(item)) { - for (let value of item) { - result.push(append(value, stash, enclose)); - } - } else { - for (let ele of stash) { - if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; - result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele)); - } - } - } - return utils.flatten(result); -}; - -const expand = (ast, options = {}) => { - let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit; - - let walk = (node, parent = {}) => { - node.queue = []; - - let p = parent; - let q = parent.queue; - - while (p.type !== 'brace' && p.type !== 'root' && p.parent) { - p = p.parent; - q = p.queue; - } - - if (node.invalid || node.dollar) { - q.push(append(q.pop(), stringify(node, options))); - return; - } - - if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { - q.push(append(q.pop(), ['{}'])); - return; - } - - if (node.nodes && node.ranges > 0) { - let args = utils.reduce(node.nodes); - - if (utils.exceedsLimit(...args, options.step, rangeLimit)) { - throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); - } - - let range = fill(...args, options); - if (range.length === 0) { - range = stringify(node, options); - } - - q.push(append(q.pop(), range)); - node.nodes = []; - return; - } - - let enclose = utils.encloseBrace(node); - let queue = node.queue; - let block = node; - - while (block.type !== 'brace' && block.type !== 'root' && block.parent) { - block = block.parent; - queue = block.queue; - } - - for (let i = 0; i < node.nodes.length; i++) { - let child = node.nodes[i]; - - if (child.type === 'comma' && node.type === 'brace') { - if (i === 1) queue.push(''); - queue.push(''); - continue; - } - - if (child.type === 'close') { - q.push(append(q.pop(), queue, enclose)); - continue; - } - - if (child.value && child.type !== 'open') { - queue.push(append(queue.pop(), child.value)); - continue; - } - - if (child.nodes) { - walk(child, node); - } - } - - return queue; - }; - - return utils.flatten(walk(ast)); -}; - -module.exports = expand; - - -/***/ }), -/* 786 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -const stringify = __webpack_require__(779); - -/** - * Constants - */ - -const { - MAX_LENGTH, - CHAR_BACKSLASH, /* \ */ - CHAR_BACKTICK, /* ` */ - CHAR_COMMA, /* , */ - CHAR_DOT, /* . */ - CHAR_LEFT_PARENTHESES, /* ( */ - CHAR_RIGHT_PARENTHESES, /* ) */ - CHAR_LEFT_CURLY_BRACE, /* { */ - CHAR_RIGHT_CURLY_BRACE, /* } */ - CHAR_LEFT_SQUARE_BRACKET, /* [ */ - CHAR_RIGHT_SQUARE_BRACKET, /* ] */ - CHAR_DOUBLE_QUOTE, /* " */ - CHAR_SINGLE_QUOTE, /* ' */ - CHAR_NO_BREAK_SPACE, - CHAR_ZERO_WIDTH_NOBREAK_SPACE -} = __webpack_require__(787); - -/** - * parse - */ - -const parse = (input, options = {}) => { - if (typeof input !== 'string') { - throw new TypeError('Expected a string'); - } - - let opts = options || {}; - let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - if (input.length > max) { - throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); - } - - let ast = { type: 'root', input, nodes: [] }; - let stack = [ast]; - let block = ast; - let prev = ast; - let brackets = 0; - let length = input.length; - let index = 0; - let depth = 0; - let value; - let memo = {}; - - /** - * Helpers - */ - - const advance = () => input[index++]; - const push = node => { - if (node.type === 'text' && prev.type === 'dot') { - prev.type = 'text'; - } - - if (prev && prev.type === 'text' && node.type === 'text') { - prev.value += node.value; - return; - } - - block.nodes.push(node); - node.parent = block; - node.prev = prev; - prev = node; - return node; - }; - - push({ type: 'bos' }); - - while (index < length) { - block = stack[stack.length - 1]; - value = advance(); - - /** - * Invalid chars - */ - - if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { - continue; - } - - /** - * Escaped chars - */ - - if (value === CHAR_BACKSLASH) { - push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() }); - continue; - } - - /** - * Right square bracket (literal): ']' - */ - - if (value === CHAR_RIGHT_SQUARE_BRACKET) { - push({ type: 'text', value: '\\' + value }); - continue; - } - - /** - * Left square bracket: '[' - */ - - if (value === CHAR_LEFT_SQUARE_BRACKET) { - brackets++; - - let closed = true; - let next; - - while (index < length && (next = advance())) { - value += next; - - if (next === CHAR_LEFT_SQUARE_BRACKET) { - brackets++; - continue; - } - - if (next === CHAR_BACKSLASH) { - value += advance(); - continue; - } - - if (next === CHAR_RIGHT_SQUARE_BRACKET) { - brackets--; - - if (brackets === 0) { - break; - } - } - } - - push({ type: 'text', value }); - continue; - } - - /** - * Parentheses - */ - - if (value === CHAR_LEFT_PARENTHESES) { - block = push({ type: 'paren', nodes: [] }); - stack.push(block); - push({ type: 'text', value }); - continue; - } - - if (value === CHAR_RIGHT_PARENTHESES) { - if (block.type !== 'paren') { - push({ type: 'text', value }); - continue; - } - block = stack.pop(); - push({ type: 'text', value }); - block = stack[stack.length - 1]; - continue; - } - - /** - * Quotes: '|"|` - */ - - if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { - let open = value; - let next; - - if (options.keepQuotes !== true) { - value = ''; - } - - while (index < length && (next = advance())) { - if (next === CHAR_BACKSLASH) { - value += next + advance(); - continue; - } - - if (next === open) { - if (options.keepQuotes === true) value += next; - break; - } - - value += next; - } - - push({ type: 'text', value }); - continue; - } - - /** - * Left curly brace: '{' - */ - - if (value === CHAR_LEFT_CURLY_BRACE) { - depth++; - - let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; - let brace = { - type: 'brace', - open: true, - close: false, - dollar, - depth, - commas: 0, - ranges: 0, - nodes: [] - }; - - block = push(brace); - stack.push(block); - push({ type: 'open', value }); - continue; - } - - /** - * Right curly brace: '}' - */ - - if (value === CHAR_RIGHT_CURLY_BRACE) { - if (block.type !== 'brace') { - push({ type: 'text', value }); - continue; - } - - let type = 'close'; - block = stack.pop(); - block.close = true; - - push({ type, value }); - depth--; - - block = stack[stack.length - 1]; - continue; - } - - /** - * Comma: ',' - */ - - if (value === CHAR_COMMA && depth > 0) { - if (block.ranges > 0) { - block.ranges = 0; - let open = block.nodes.shift(); - block.nodes = [open, { type: 'text', value: stringify(block) }]; - } - - push({ type: 'comma', value }); - block.commas++; - continue; - } - - /** - * Dot: '.' - */ - - if (value === CHAR_DOT && depth > 0 && block.commas === 0) { - let siblings = block.nodes; - - if (depth === 0 || siblings.length === 0) { - push({ type: 'text', value }); - continue; - } - - if (prev.type === 'dot') { - block.range = []; - prev.value += value; - prev.type = 'range'; - - if (block.nodes.length !== 3 && block.nodes.length !== 5) { - block.invalid = true; - block.ranges = 0; - prev.type = 'text'; - continue; - } - - block.ranges++; - block.args = []; - continue; - } - - if (prev.type === 'range') { - siblings.pop(); - - let before = siblings[siblings.length - 1]; - before.value += prev.value + value; - prev = before; - block.ranges--; - continue; - } - - push({ type: 'dot', value }); - continue; - } - - /** - * Text - */ - - push({ type: 'text', value }); - } - - // Mark imbalanced braces and brackets as invalid - do { - block = stack.pop(); - - if (block.type !== 'root') { - block.nodes.forEach(node => { - if (!node.nodes) { - if (node.type === 'open') node.isOpen = true; - if (node.type === 'close') node.isClose = true; - if (!node.nodes) node.type = 'text'; - node.invalid = true; - } - }); - - // get the location of the block on parent.nodes (block's siblings) - let parent = stack[stack.length - 1]; - let index = parent.nodes.indexOf(block); - // replace the (invalid) block with it's nodes - parent.nodes.splice(index, 1, ...block.nodes); - } - } while (stack.length > 0); - - push({ type: 'eos' }); - return ast; -}; - -module.exports = parse; - - -/***/ }), -/* 787 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = { - MAX_LENGTH: 1024 * 64, - - // Digits - CHAR_0: '0', /* 0 */ - CHAR_9: '9', /* 9 */ - - // Alphabet chars. - CHAR_UPPERCASE_A: 'A', /* A */ - CHAR_LOWERCASE_A: 'a', /* a */ - CHAR_UPPERCASE_Z: 'Z', /* Z */ - CHAR_LOWERCASE_Z: 'z', /* z */ - - CHAR_LEFT_PARENTHESES: '(', /* ( */ - CHAR_RIGHT_PARENTHESES: ')', /* ) */ - - CHAR_ASTERISK: '*', /* * */ - - // Non-alphabetic chars. - CHAR_AMPERSAND: '&', /* & */ - CHAR_AT: '@', /* @ */ - CHAR_BACKSLASH: '\\', /* \ */ - CHAR_BACKTICK: '`', /* ` */ - CHAR_CARRIAGE_RETURN: '\r', /* \r */ - CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */ - CHAR_COLON: ':', /* : */ - CHAR_COMMA: ',', /* , */ - CHAR_DOLLAR: '$', /* . */ - CHAR_DOT: '.', /* . */ - CHAR_DOUBLE_QUOTE: '"', /* " */ - CHAR_EQUAL: '=', /* = */ - CHAR_EXCLAMATION_MARK: '!', /* ! */ - CHAR_FORM_FEED: '\f', /* \f */ - CHAR_FORWARD_SLASH: '/', /* / */ - CHAR_HASH: '#', /* # */ - CHAR_HYPHEN_MINUS: '-', /* - */ - CHAR_LEFT_ANGLE_BRACKET: '<', /* < */ - CHAR_LEFT_CURLY_BRACE: '{', /* { */ - CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */ - CHAR_LINE_FEED: '\n', /* \n */ - CHAR_NO_BREAK_SPACE: '\u00A0', /* \u00A0 */ - CHAR_PERCENT: '%', /* % */ - CHAR_PLUS: '+', /* + */ - CHAR_QUESTION_MARK: '?', /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */ - CHAR_RIGHT_CURLY_BRACE: '}', /* } */ - CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */ - CHAR_SEMICOLON: ';', /* ; */ - CHAR_SINGLE_QUOTE: '\'', /* ' */ - CHAR_SPACE: ' ', /* */ - CHAR_TAB: '\t', /* \t */ - CHAR_UNDERSCORE: '_', /* _ */ - CHAR_VERTICAL_LINE: '|', /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */ -}; - - -/***/ }), -/* 788 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.merge = void 0; -const merge2 = __webpack_require__(245); -function merge(streams) { - const mergedStream = merge2(streams); - streams.forEach((stream) => { - stream.once('error', (error) => mergedStream.emit('error', error)); - }); - mergedStream.once('close', () => propagateCloseEventToSources(streams)); - mergedStream.once('end', () => propagateCloseEventToSources(streams)); - return mergedStream; -} -exports.merge = merge; -function propagateCloseEventToSources(streams) { - streams.forEach((stream) => stream.emit('close')); -} - - -/***/ }), -/* 789 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ }), +/* 783 */ +/***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -90550,14 +89171,14 @@ exports.isEmpty = isEmpty; /***/ }), -/* 790 */ +/* 784 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const stream_1 = __webpack_require__(791); -const provider_1 = __webpack_require__(793); +const stream_1 = __webpack_require__(785); +const provider_1 = __webpack_require__(787); class ProviderAsync extends provider_1.default { constructor() { super(...arguments); @@ -90585,7 +89206,7 @@ exports.default = ProviderAsync; /***/ }), -/* 791 */ +/* 785 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -90594,7 +89215,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const stream_1 = __webpack_require__(175); const fsStat = __webpack_require__(291); const fsWalk = __webpack_require__(296); -const reader_1 = __webpack_require__(792); +const reader_1 = __webpack_require__(786); class ReaderStream extends reader_1.default { constructor() { super(...arguments); @@ -90647,7 +89268,7 @@ exports.default = ReaderStream; /***/ }), -/* 792 */ +/* 786 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -90655,7 +89276,7 @@ exports.default = ReaderStream; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); const fsStat = __webpack_require__(291); -const utils = __webpack_require__(771); +const utils = __webpack_require__(775); class Reader { constructor(_settings) { this._settings = _settings; @@ -90687,17 +89308,17 @@ exports.default = Reader; /***/ }), -/* 793 */ +/* 787 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); -const deep_1 = __webpack_require__(794); -const entry_1 = __webpack_require__(797); -const error_1 = __webpack_require__(798); -const entry_2 = __webpack_require__(799); +const deep_1 = __webpack_require__(788); +const entry_1 = __webpack_require__(791); +const error_1 = __webpack_require__(792); +const entry_2 = __webpack_require__(793); class Provider { constructor(_settings) { this._settings = _settings; @@ -90742,14 +89363,14 @@ exports.default = Provider; /***/ }), -/* 794 */ +/* 788 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(771); -const partial_1 = __webpack_require__(795); +const utils = __webpack_require__(775); +const partial_1 = __webpack_require__(789); class DeepFilter { constructor(_settings, _micromatchOptions) { this._settings = _settings; @@ -90811,13 +89432,13 @@ exports.default = DeepFilter; /***/ }), -/* 795 */ +/* 789 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const matcher_1 = __webpack_require__(796); +const matcher_1 = __webpack_require__(790); class PartialMatcher extends matcher_1.default { match(filepath) { const parts = filepath.split('/'); @@ -90856,13 +89477,13 @@ exports.default = PartialMatcher; /***/ }), -/* 796 */ +/* 790 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(771); +const utils = __webpack_require__(775); class Matcher { constructor(_patterns, _settings, _micromatchOptions) { this._patterns = _patterns; @@ -90913,13 +89534,13 @@ exports.default = Matcher; /***/ }), -/* 797 */ +/* 791 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(771); +const utils = __webpack_require__(775); class EntryFilter { constructor(_settings, _micromatchOptions) { this._settings = _settings; @@ -90976,13 +89597,13 @@ exports.default = EntryFilter; /***/ }), -/* 798 */ +/* 792 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(771); +const utils = __webpack_require__(775); class ErrorFilter { constructor(_settings) { this._settings = _settings; @@ -90998,13 +89619,13 @@ exports.default = ErrorFilter; /***/ }), -/* 799 */ +/* 793 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(771); +const utils = __webpack_require__(775); class EntryTransformer { constructor(_settings) { this._settings = _settings; @@ -91031,15 +89652,15 @@ exports.default = EntryTransformer; /***/ }), -/* 800 */ +/* 794 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const stream_1 = __webpack_require__(175); -const stream_2 = __webpack_require__(791); -const provider_1 = __webpack_require__(793); +const stream_2 = __webpack_require__(785); +const provider_1 = __webpack_require__(787); class ProviderStream extends provider_1.default { constructor() { super(...arguments); @@ -91069,14 +89690,14 @@ exports.default = ProviderStream; /***/ }), -/* 801 */ +/* 795 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const sync_1 = __webpack_require__(802); -const provider_1 = __webpack_require__(793); +const sync_1 = __webpack_require__(796); +const provider_1 = __webpack_require__(787); class ProviderSync extends provider_1.default { constructor() { super(...arguments); @@ -91099,7 +89720,7 @@ exports.default = ProviderSync; /***/ }), -/* 802 */ +/* 796 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -91107,7 +89728,7 @@ exports.default = ProviderSync; Object.defineProperty(exports, "__esModule", { value: true }); const fsStat = __webpack_require__(291); const fsWalk = __webpack_require__(296); -const reader_1 = __webpack_require__(792); +const reader_1 = __webpack_require__(786); class ReaderSync extends reader_1.default { constructor() { super(...arguments); @@ -91149,7 +89770,7 @@ exports.default = ReaderSync; /***/ }), -/* 803 */ +/* 797 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -91213,7 +89834,7 @@ exports.default = Settings; /***/ }), -/* 804 */ +/* 798 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -91221,7 +89842,7 @@ exports.default = Settings; const {promisify} = __webpack_require__(115); const fs = __webpack_require__(134); const path = __webpack_require__(4); -const fastGlob = __webpack_require__(769); +const fastGlob = __webpack_require__(773); const gitIgnore = __webpack_require__(331); const slash = __webpack_require__(332); @@ -91340,7 +89961,7 @@ module.exports.sync = options => { /***/ }), -/* 805 */ +/* 799 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -91393,7 +90014,7 @@ module.exports = { /***/ }), -/* 806 */ +/* 800 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; diff --git a/packages/kbn-storybook/src/index.ts b/packages/kbn-storybook/src/index.ts index 1694c995c577f..b3258be91ed82 100644 --- a/packages/kbn-storybook/src/index.ts +++ b/packages/kbn-storybook/src/index.ts @@ -6,6 +6,6 @@ * Side Public License, v 1. */ -export { defaultConfig } from './lib/default_config'; +export { defaultConfig, defaultConfigWebFinal, mergeWebpackFinal } from './lib/default_config'; export { runStorybookCli } from './lib/run_storybook_cli'; export { default as WebpackConfig } from './webpack.config'; diff --git a/packages/kbn-storybook/src/lib/default_config.ts b/packages/kbn-storybook/src/lib/default_config.ts index 989f707b06fed..5326be5912ca5 100644 --- a/packages/kbn-storybook/src/lib/default_config.ts +++ b/packages/kbn-storybook/src/lib/default_config.ts @@ -8,7 +8,10 @@ import * as path from 'path'; import { StorybookConfig } from '@storybook/core/types'; +import { Configuration } from 'webpack'; +import webpackMerge from 'webpack-merge'; import { REPO_ROOT } from './constants'; +import { default as WebpackConfig } from '../webpack.config'; const toPath = (_path: string) => path.join(REPO_ROOT, _path); export const defaultConfig: StorybookConfig = { @@ -43,3 +46,19 @@ export const defaultConfig: StorybookConfig = { return emotion11CompatibleConfig; }, }; + +// defaultConfigWebFinal and mergeWebpackFinal have been moved here because webpackFinal usage in +// storybook main.ts somehow is causing issues with newly added dependency of ts-node most likely +// an issue with storybook typescript setup see this issue for more details +// https://github.com/storybookjs/storybook/issues/9610 + +export const defaultConfigWebFinal = { + ...defaultConfig, + webpackFinal: (config: Configuration) => { + return WebpackConfig({ config }); + }, +}; + +export const mergeWebpackFinal = (extraConfig: Configuration) => { + return { webpackFinal: (config: Configuration) => webpackMerge(config, extraConfig) }; +}; diff --git a/src/dev/license_checker/config.ts b/src/dev/license_checker/config.ts index b996ae0167555..132d2bfa82aa2 100644 --- a/src/dev/license_checker/config.ts +++ b/src/dev/license_checker/config.ts @@ -22,6 +22,7 @@ export const LICENSE_ALLOWED = [ '(MIT OR Apache-2.0)', '(MIT OR GPL-3.0)', '(WTFPL OR MIT)', + '(MIT OR WTFPL)', '(Unlicense OR Apache-2.0)', 'AFLv2.1', 'Apache 2.0', diff --git a/src/dev/typescript/projects.ts b/src/dev/typescript/projects.ts index a9e1e0da8e97f..de432b51c0bbf 100644 --- a/src/dev/typescript/projects.ts +++ b/src/dev/typescript/projects.ts @@ -64,6 +64,11 @@ export const PROJECTS = [ disableTypeCheck: true, }), + createProject('x-pack/plugins/uptime/e2e/tsconfig.json', { + name: 'uptime/synthetics-e2e-tests', + disableTypeCheck: true, + }), + ...findProjects('packages/*/tsconfig.json'), ...findProjects('src/plugins/*/tsconfig.json'), ...findProjects('src/plugins/chart_expressions/*/tsconfig.json'), diff --git a/src/plugins/presentation_util/storybook/main.ts b/src/plugins/presentation_util/storybook/main.ts index 09de9240c1aee..e822f11780d65 100644 --- a/src/plugins/presentation_util/storybook/main.ts +++ b/src/plugins/presentation_util/storybook/main.ts @@ -6,13 +6,9 @@ * Side Public License, v 1. */ -import { Configuration } from 'webpack'; -import { defaultConfig, WebpackConfig } from '@kbn/storybook'; +import { defaultConfigWebFinal } from '@kbn/storybook'; module.exports = { - ...defaultConfig, + ...defaultConfigWebFinal, addons: ['@storybook/addon-essentials'], - webpackFinal: (config: Configuration) => { - return WebpackConfig({ config }); - }, }; diff --git a/test/scripts/jenkins_uptime_playwright.sh b/test/scripts/jenkins_uptime_playwright.sh new file mode 100755 index 0000000000000..8eeea762040cb --- /dev/null +++ b/test/scripts/jenkins_uptime_playwright.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +source test/scripts/jenkins_test_setup_xpack.sh + +echo " -> Running Uptime @elastic/synthetics tests" +cd "$XPACK_DIR" + +checks-reporter-with-killswitch "Uptime @elastic/synthetics Tests" \ + node plugins/uptime/scripts/e2e.js + +echo "" +echo "" diff --git a/vars/tasks.groovy b/vars/tasks.groovy index 1437101cb1d63..1842e278282b1 100644 --- a/vars/tasks.groovy +++ b/vars/tasks.groovy @@ -153,6 +153,15 @@ def functionalXpack(Map params = [:]) { task(kibanaPipeline.functionalTestProcess('xpack-APMCypress', './test/scripts/jenkins_apm_cypress.sh')) } } + + whenChanged([ + 'x-pack/plugins/uptime/', + ]) { + if (githubPr.isPr()) { + task(kibanaPipeline.functionalTestProcess('xpack-UptimePlaywright', './test/scripts/jenkins_uptime_playwright.sh')) + } + } + } } diff --git a/x-pack/plugins/canvas/storybook/main.ts b/x-pack/plugins/canvas/storybook/canvas.webpack.ts similarity index 87% rename from x-pack/plugins/canvas/storybook/main.ts rename to x-pack/plugins/canvas/storybook/canvas.webpack.ts index 5d77dd0fc85e6..29dd6cf3dda65 100644 --- a/x-pack/plugins/canvas/storybook/main.ts +++ b/x-pack/plugins/canvas/storybook/canvas.webpack.ts @@ -6,14 +6,10 @@ */ import { resolve } from 'path'; -import webpackMerge from 'webpack-merge'; -import { defaultConfig } from '@kbn/storybook'; - -import type { Configuration } from 'webpack'; - +import { defaultConfig, mergeWebpackFinal } from '@kbn/storybook'; import { KIBANA_ROOT } from './constants'; -const canvasWebpack = { +export const canvasWebpack = { module: { rules: [ // Enable CSS Modules in Storybook (Shareable Runtime) @@ -67,8 +63,8 @@ const canvasWebpack = { }, }; -module.exports = { +export const canvasStorybookConfig = { ...defaultConfig, addons: [...(defaultConfig.addons || []), './addon/target/register'], - webpackFinal: (config: Configuration) => webpackMerge(config, canvasWebpack), + ...mergeWebpackFinal(canvasWebpack), }; diff --git a/x-pack/plugins/canvas/storybook/main.js b/x-pack/plugins/canvas/storybook/main.js new file mode 100644 index 0000000000000..99c61c61d87c8 --- /dev/null +++ b/x-pack/plugins/canvas/storybook/main.js @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { canvasStorybookConfig } from './canvas.webpack'; + +module.exports = canvasStorybookConfig; + +// This file wsa converted to .js again because of ts-node causing issues with +// storybook typescript setup, this is more or less relevant to +// https://github.com/storybookjs/storybook/issues/9610 +// ts usage was moved to separate file canvas.webpack.ts, keep this file only was module.exports diff --git a/x-pack/plugins/fleet/storybook/main.ts b/x-pack/plugins/fleet/storybook/main.ts index 2cf4124c61783..5934e54066634 100644 --- a/x-pack/plugins/fleet/storybook/main.ts +++ b/x-pack/plugins/fleet/storybook/main.ts @@ -5,16 +5,12 @@ * 2.0. */ -import type { Configuration } from 'webpack'; -import { defaultConfig, WebpackConfig } from '@kbn/storybook'; +import { defaultConfigWebFinal } from '@kbn/storybook'; module.exports = { - ...defaultConfig, + ...defaultConfigWebFinal, addons: ['@storybook/addon-essentials'], babel: () => ({ presets: [require.resolve('@kbn/babel-preset/webpack_preset')], }), - webpackFinal: (config: Configuration) => { - return WebpackConfig({ config }); - }, }; diff --git a/x-pack/plugins/uptime/e2e/config.ts b/x-pack/plugins/uptime/e2e/config.ts new file mode 100644 index 0000000000000..70cc57247d490 --- /dev/null +++ b/x-pack/plugins/uptime/e2e/config.ts @@ -0,0 +1,54 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +import { CA_CERT_PATH } from '@kbn/dev-utils'; +async function config({ readConfigFile }: FtrConfigProviderContext) { + const kibanaCommonTestsConfig = await readConfigFile( + require.resolve('../../../../test/common/config.js') + ); + const xpackFunctionalTestsConfig = await readConfigFile( + require.resolve('../../../test/functional/config.js') + ); + + return { + ...kibanaCommonTestsConfig.getAll(), + + esTestCluster: { + ...xpackFunctionalTestsConfig.get('esTestCluster'), + serverArgs: [ + ...xpackFunctionalTestsConfig.get('esTestCluster.serverArgs'), + // define custom es server here + // API Keys is enabled at the top level + 'xpack.security.enabled=true', + ], + }, + + kbnTestServer: { + ...xpackFunctionalTestsConfig.get('kbnTestServer'), + sourceArgs: [...xpackFunctionalTestsConfig.get('kbnTestServer.sourceArgs'), '--no-watch'], + serverArgs: [ + ...xpackFunctionalTestsConfig.get('kbnTestServer.serverArgs'), + '--csp.strict=false', + '--home.disableWelcomeScreen=true', + '--csp.warnLegacyBrowsers=false', + // define custom kibana server args here + `--elasticsearch.ssl.certificateAuthorities=${CA_CERT_PATH}`, + `--elasticsearch.ignoreVersionMismatch=true`, + `--uiSettings.overrides.theme:darkMode=true`, + `--elasticsearch.username=kibana_system`, + `--elasticsearch.password=changeme`, + '--migrations.enableV2=false', + '--xpack.reporting.enabled=false', + ], + }, + }; +} + +// eslint-disable-next-line import/no-default-export +export default config; diff --git a/x-pack/plugins/uptime/e2e/fixtures/es_archiver/full_heartbeat/data.json.gz b/x-pack/plugins/uptime/e2e/fixtures/es_archiver/full_heartbeat/data.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..250db8c8471d795ea4db803706ad31291984e5b9 GIT binary patch literal 128173 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 z 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 z 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 z z_?|^%QcnXmY@I>j%v5wdgl!Mm$j|%>Te2GO0>n`rW+3A$R-2oro>KUR&S~sKJvkXJ ztvx%8pZDj}R?EFG-1p5-Z z&IMy#*J#UQU|u6&+fQ9{L~0#;wdvN)ddqt(5jg8KsNDqZBG2r!4b-6H%&DT<{?>?I zGsX80vajVUsjw4R=2>!Xv&Q_CA1Aet4KXM1-wzCc_8*yZVXC#Jy1f7`y1w@Ptjb#v z3wi%1=(GDd@7_%HJ$d6t??Bkurm&0C=Q2JY_;!9S&Gy~{m_V*7qT=FWLxj~mC;PG& z7C8O~r4E07khzY$*>UW+l61?Q4%(#}5=hGI2l$3M@qY=&pNj-o$c;^PwkdRrR{ceY z9s51-=Lsa&L49JNj5Cpm`9j7-5wD(`qo2{oe;f+wmClJ)WbK2Af~*R(ss22+wf>v5 zzv$XGm|4@wpd#GkN{VgDDMayATl~!y!ooctkn9jA+zbH@oNaLdLmY{;X&BJHB^qw+ z+js1xJJZhn&$+>iY~1#-bxl$|TFv_v$xZ?9#mg#~=5i+Vg-B*Qb+T5+^Yj=wl)sHKO{2w*#*p84B!oq? zQRp2-#18=^CBfYo-`ZT^d3qU?MuXm#y|&T!nRP@fH2TIdD5~*zANzy*heS}Rmp!5E zLf-z3kwqiXh%=FSeIKyV@62IVVD>Y^6(ltQ3P_-*xb+GYILVV^K8OymeQ?sC-n;6o zVKMfmPqS{n%Aq6d(RuaOWY4crpF^!CMZ%!b)k+B$P~tmt%`qxhz;LWJ`1I4Oj%)KX z?O!+AcWZyWu>D-((EISZe1KuVQ+IJc>9dK$N-E+b+`EhU?%3}3dD|O&qSs|EZrb0p z{P}8WJ3m!5VNq<#Zm-H~r~09!Y&%DH4_bTA!g}AUai6yOI1xtat1oE7wyb+(h~Wt0 zvg!76%}6~t790v7!&u|az(cDZL-CJ$kYSLg$wsoQpKHg=B}I@k!LQTaC`vj zM=8BN5-H}?$9KtDCb2lq^u2$BL)V?__mBIDReJ_WvSU`wz$PYSvQVfV^n;`oYX)TI z2a=AfqFiIj!geZ|x_YPA_RTzoER=vAaj2Ehe6&W=hcd$|L5=Y@8J z9h|;)EvfpM?v!e60vAg5VZK5Qf=czN&WEv3d)-<%uVe3L{zJAy!!wPqjb|F;hN*?mg(6A$kID$ow2l z0JoDDQ3GNJ-gg?*wE~=EyZdF6NeOhYj_DL^vd19B@RSxu8sqFF2khiAh*m4;d4uJg zI)$nCU$)}Vdc=7-xPz0#J%@tG{HQ!N@}Zyb>&-T1!WN}kvY)HIH%4R$&njUUKs1;Fk%4?RHB`sSrjdu6PKPYdPJv69( z1O-F!s|bkqXOu>(+0XzO&;IYx48EjS3gOq+5EiPxW0Y|IFL|y$=Iqb3F&1KYjyaBz zLCCL*pzanPCir$Vw2*`KifpR)1(TD*$6|cE>kAkJZU=W5q%1P9Y&pi~h_P7Az!xYu z?R-&s9=!$W&n%LxD9CS~_8n@=3smIrJmyHWbWz?>nTcQo_{sPhr>#YF%x= zJ`;IdlL ze{4p*wO#5<-ZkzBQTOC&}o>#Ga^+KvH+)4)ux`_{Jkuo1~cw^8Nz`$sEq(Ws&<@R>t%N8@L0g30djeA|*D_T<3$>n;U{_!)g=pxWOZ8umGL}$ zeiNL28TwKYR!&_;ckSocv6#yKUli&GZ7B}CKZ5=|#s&4 z$~ezcKrW*Z`TRlr>kqN{sd8VE55~PHOV6~ry!t}QuFTPs4B&ssIV`~ntlc!wn9icZ(K(3H$vk)nP946Ib9!>G-fq&!Q_HkDfU8qv`m`GD>ZZ zlAww-Uck>G1J z;m5-6VV#Gp*S;bEbF7Gb0708yO7d2J-+@QPAZ+$`fxXkomzcR`0Fkba6R3&g%PVIu zyGtPb&9kR_`PP438+i2R^f0B+A^rH1>$xJ{SNSn~?K83{$)VvRcjI%cPfoiPZtzp6 zGIZ91Cuv|b8jSewopliCgvp#KqJ^ZH03|r?j`7v^G*Z`=X7ci95L`J!Ca1?JfsgmD7cFpQFIrZ z31?4)@UTI^1R8Kl5TR!<>WrN~&LbUbQ>9q-`ofqZgYQPGh$7ymm#vz7ODsGMuEE9o zvzj?+2X1cg*-!^0V|HNRi=_H+QI$s*elc|qZ3G}3I3VS=^2FJ;IUDmEcG4z-JZ5b8 zRapU{3(|NLJq7rTWugB*W0&|*SI$b4JL`#>@p3WK`RLNFjpdQ-Q>vJqEQ(lG{hl?` zc>g3PJpPmSNYGOQGF^bMBVxs>jX({UGJ2CQU#P$i>uN-d6?zy(pfRRj?lOn_VpZ~T zcZ{VmWcnFd>aQV0w8LpSob3V7Benyx17>DyKcqk0-MN=wTwq7m>uRZT>?Ir)#ApYU z(Izx|zLL&A%?ttZ*+}lIns(r5hr$9FL!LFHSUQm-1`gyC1nCi~tlzh-PzqH&WUU%B zy3O_2*x^EkghUIyPphKACif9%`O%a@9(dv3f$*mKpAq2ipxuBYs<=WDYU_@!soy7Z7&e0ie43 zbR2=_eky(Wi(GPYh%JkZGDGjfcPN(43!o+WP`WnouS1HAWHb+pJYn&dz6ac0E#r(Y zxG$>dL_Oq|C3@P2UWFq{DU!=~1f4=8ywr@(wYj50(h&OkFyS$XPka~HzU4Ip_h1oJ z3ZoZR&TKj#;InK2A?qXEk9x7OIDbMJcY#cU^U7f$U&5hvT zFw#SRkmLnmZju1Bd1riSerfFjI^1Gg0n$k}wH3C#Ytl@BK@O`C3rpVVB@4$xgpH`H zndGn@;WG&OmDiR^td%nr3waq3qw4SpS?qE9OAw8$7H9{SD3A}j6 z+56c;_q7)Fg30@kEk`kX%RE9L1u^Y8`?Iw1)XN!1gwIrSsTnpWTq2&oALoiTnJYnL zgVA9U;CBg+xxBQ9bjW8%h?WsJ72qnGl#uURF@HWOH7fAhwji!*;u$u)$tUe(`0DkIs*cUxL2qhg61Xq6S0bZDQ1uko=tjL*0 zcjVi7S1=061+t6H;=x^09+L-s_&x$TOiAx~UayI(gUQ4i2ejo({+XgDZAE zfnzQ&TqYJ~^EY3j&9=B1K^!GP)hvc1-ZRZKs+0o2auxX)A3eT{FmLo^#V^@5C0f1+E! zcnC_2wUfyhUlrq)AB(+t?*x3jevE5!gkxf1U_rui-e@i+L0=7ZF&Vu$1c7`cEF{j@ zf-upUwsY$feH^csGl3*f=B>;Ap4|zbZ$A_H^?CjX$MY+{tuO3++Ld`I^kbW6H>%~! zdfD%vk(uk>cXxJ`&wi${&2q~^TU+cvNpjS&;`gM7=bzcN zN(bFeTEqE1k>uX~)D8cN4T-hx7}R()X*mP3Xl?OYiiE#9Ptkrv3AgNBIvjrSYQSM* z29M5@ZlcDcs+AwyKc5Vcxs1&NO{!R`QnRdL5C({~1%zlzC!U2WI2DpVKA<*9-g}zi zo^qBGW8o%xB#ZZ|j%&Aqp#C0CxEt!ZArxD9XvTmB1iWuNqNsuZR?qH@!Q;(N1gc`{ zhiRrNCst6FkvmXcTuCQkVwX77b`$*~)oWy_g9j36SS^8?RFpksN@(msATgtb z%;!cj|DKY;+nzL8a@`pSbpmSS_z2na@Q7OSG*{^fNX1kp9>aI}Kp~}I)LsUU@ZiYh zw2l)Mh8F^lm$k3#vxY}4pQ9PqXD}RQC}g(lvSw7vW$oU0`9l^_r|e>_3%%uQ2ELg=qe1+N z$Y~wm7Xrv*;1{|)n0*1xh9?sO!@p4z*RRxC$ZV__zOjL1j+RhvktLs5O_f+RdDl_Y zyt8O_K~=)Clo-gLXMjX{7D#pNksWFg8cH3ZnSk9si?<9>KHESBj&x_GhBKF^G$$-T z1(pp|NXhHTvKOn?SIc4wN}+|&q1K_Wp*6+Phcm)> z=fpeDZr^;%2V;;2VGEf$%v`URY!=i47*UuN0toEZ1L>-d?;&%JQjUEkHl^ImevUx) z=#DwrNCv84Um5lKqpu^ozLd~uJFV&Dxf{IgpU86uq@geMH=v;iCV)=a>p!9Arhs+u z<4~T6bp6v?IZXCmVemYZOI;(OGilp79KxY^?pXyig~Z@`TmlOH%hLk>)3W&S39KRp zFJt^VS#&h*F(e?yGuX^bnLHq1kT?l}>*`{A(}Z<>4t;l{(!+UZRF+||XHapGq+#s@ zHsnEVcR{#kcwp5IImey=aB#o7)c}9#1H~NSJY%gN8fDTbxv=7K{H6hdwL`|jPvg86t3f)} z@M#y&J(j)zc!RUwM6$C{>S?60TH2|v`!FXs;w@do)ahyQ8Peyd^vjB*uNTM{joZlT z=so1pU*0}&68Lmd0?p^DC4DB7Tz_F`GCWaM41D$RzJYO(Go}!5XI#W7DHKe>NDo7n z|MxxTRCD=zJS9?dxZVE00Eq*3{3yV95Qg&;V#4Kl97S-+I$eUmCDs{X*Yjfkq2~5pFRK-WxI9VBqVCEXD#o zHw0vcZZD=#TBHFKSVe*Vgj@h902Ij2EF~O_u5wFYRedGF@@G@qaG*HPwbWBc{%FL8 z1AIMELOoGWAP7V62{ak#2it*QC((cc5C8}U1_IxlKj`c9gN88!Y|RFAo2O8^snGdZ zENCbZFBwokfu1PfXy|}}@CKkk0#zgc%>YOMB#@u^g#?uB_51fAM;hk05XVs1`Vm9O@(BUF3?T_&`%)B_WYnI z_3-Usdide|`F`c7uXo4igN$Eq@}~#ln~Q&aMG!w}9lbX*nL~_jc@dGG$RFqAVmKZS zkIKaOxIEdDpVCa)pC+&8WQ;i+56PAyh#e>U*w=*}TE;uEHH=_l5_btT@JUCpy#$XS zq`o{~dJ+(F`HO%d&u@r~Q2#m%p-T)=?|xhWL;T)>hgK9r-u<>)V8|b!RTvpVJ~}IW z*nxy@ZcL8rg9Vlbn9RaWH{*I2Q_(;|I{BE?0s=xb;P}4e=rNG!M*>a{tx_PhHwk=# zfy5t>Yyc7f3FK$KBId6k0Yh~p@Z@G(-!N>391SK@m^Fz_20U+J@CZ4&-(&-@fCLLb zrT`WI3*=`$i~kx~z`M%2v}85Zzl`F2DL`$9(+ z(3$*YKo&3x_Jw8^_%Emhzye@_{LC^%2*lJG@GRi#o02s%&L}EE5S|N!aD22 { + return `[data-test-subj=${testId}]`; +}; + +journey('uptime', ({ page, params }) => { + async function waitForLoadingToFinish() { + let isLoadingVisible = true; + + while (isLoadingVisible) { + const loading = await page.$(byTestId('kbnLoadingMessage')); + isLoadingVisible = loading !== null; + await page.waitForTimeout(5 * 1000); + } + } + + step('Go to Kibana', async () => { + await page.goto(`${params.kibanaUrl}/app/uptime?dateRangeStart=now-5y&dateRangeEnd=now`, { + waitUntil: 'networkidle', + }); + }); + + step('Login into kibana', async () => { + await page.fill('[data-test-subj=loginUsername]', 'elastic', { + timeout: 60 * 1000, + }); + await page.fill('[data-test-subj=loginPassword]', 'changeme'); + + await page.click('[data-test-subj=loginSubmit]'); + }); + + step('dismiss synthetics notice', async () => { + await waitForLoadingToFinish(); + await page.click('[data-test-subj=uptimeDismissSyntheticsCallout]', { + timeout: 60 * 1000, + }); + }); + + step('change uptime index pattern', async () => { + if (await page.$(byTestId('toastCloseButton'))) { + await page.click(byTestId('toastCloseButton')); + } + + await page.click(byTestId('settings-page-link')); + + await page.waitForTimeout(5 * 1000); + + const currentIndex = await page.inputValue(byTestId('heartbeat-indices-input-loaded')); + + if (currentIndex !== 'heartbeat-*') { + await page.fill(byTestId('heartbeat-indices-input-loaded'), 'heartbeat-*'); + await page.click(byTestId('apply-settings-button')); + } + + await page.goBack(); + }); + + step('Check if there is table data', async () => { + await page.click('[data-test-subj=uptimeOverviewPage]'); + await page.click('div.euiBasicTable', { timeout: 60 * 1000 }); + }); + + step('Click on my monitor', async () => { + await page.click('[data-test-subj=monitor-page-link-0001-up]'); + }); + + step('Navigates to details page', async () => { + await page.click('[data-test-subj=uptimeMonitorPage]'); + }); +}); diff --git a/x-pack/plugins/uptime/e2e/playwright_run.ts b/x-pack/plugins/uptime/e2e/playwright_run.ts new file mode 100644 index 0000000000000..361a4bc6f7491 --- /dev/null +++ b/x-pack/plugins/uptime/e2e/playwright_run.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { FtrConfigProviderContext } from '@kbn/test'; +import { playwrightRunTests } from './playwright_start'; + +async function runE2ETests({ readConfigFile }: FtrConfigProviderContext) { + const kibanaConfig = await readConfigFile(require.resolve('./config.ts')); + return { + ...kibanaConfig.getAll(), + testRunner: playwrightRunTests(), + }; +} + +// eslint-disable-next-line import/no-default-export +export default runE2ETests; diff --git a/x-pack/plugins/uptime/e2e/playwright_start.ts b/x-pack/plugins/uptime/e2e/playwright_start.ts new file mode 100644 index 0000000000000..99ceb591b90c8 --- /dev/null +++ b/x-pack/plugins/uptime/e2e/playwright_start.ts @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +/* eslint-disable no-console */ + +import Url from 'url'; +import { run as playwrightRun } from '@elastic/synthetics'; +import { esArchiverLoad, esArchiverUnload } from './tasks/es_archiver'; + +import './journeys'; + +export function playwrightRunTests() { + return async ({ getService }: any) => { + try { + const result = await playwrightStart(getService); + + if (result && result.uptime.status !== 'succeeded') { + process.exit(1); + } + } catch (error) { + console.error('errors: ', error); + process.exit(1); + } + }; +} + +async function playwrightStart(getService: any) { + console.log('Loading esArchiver...'); + await esArchiverLoad('full_heartbeat'); + + const config = getService('config'); + + const kibanaUrl = Url.format({ + protocol: config.get('servers.kibana.protocol'), + hostname: config.get('servers.kibana.hostname'), + port: config.get('servers.kibana.port'), + }); + + const res = await playwrightRun({ + params: { kibanaUrl }, + playwrightOptions: { chromiumSandbox: false }, + }); + + console.log('Removing esArchiver...'); + await esArchiverUnload('full_heartbeat'); + + return res; +} diff --git a/x-pack/plugins/uptime/e2e/tasks/es_archiver.ts b/x-pack/plugins/uptime/e2e/tasks/es_archiver.ts new file mode 100644 index 0000000000000..ce82be18dff7f --- /dev/null +++ b/x-pack/plugins/uptime/e2e/tasks/es_archiver.ts @@ -0,0 +1,37 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import Path from 'path'; +import { execSync } from 'child_process'; + +const ES_ARCHIVE_DIR = './fixtures/es_archiver'; + +// Otherwise execSync would inject NODE_TLS_REJECT_UNAUTHORIZED=0 and node would abort if used over https +const NODE_TLS_REJECT_UNAUTHORIZED = '1'; + +export const esArchiverLoad = (folder: string) => { + const path = Path.join(ES_ARCHIVE_DIR, folder); + execSync( + `node ../../../../scripts/es_archiver load "${path}" --config ../../../test/functional/config.js`, + { env: { ...process.env, NODE_TLS_REJECT_UNAUTHORIZED } } + ); +}; + +export const esArchiverUnload = (folder: string) => { + const path = Path.join(ES_ARCHIVE_DIR, folder); + execSync( + `node ../../../../scripts/es_archiver unload "${path}" --config ../../../test/functional/config.js`, + { env: { ...process.env, NODE_TLS_REJECT_UNAUTHORIZED } } + ); +}; + +export const esArchiverResetKibana = () => { + execSync( + `node ../../../../scripts/es_archiver empty-kibana-index --config ../../../test/functional/config.js`, + { env: { ...process.env, NODE_TLS_REJECT_UNAUTHORIZED } } + ); +}; diff --git a/x-pack/plugins/uptime/e2e/tsconfig.json b/x-pack/plugins/uptime/e2e/tsconfig.json new file mode 100644 index 0000000000000..a9ec63a92fef8 --- /dev/null +++ b/x-pack/plugins/uptime/e2e/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../../../tsconfig.base.json", + "exclude": ["tmp", "target/**/*"], + "include": ["./**/*"], + "compilerOptions": { + "outDir": "target/types", + "types": [ "node"], + } +} diff --git a/x-pack/plugins/uptime/scripts/e2e.js b/x-pack/plugins/uptime/scripts/e2e.js new file mode 100644 index 0000000000000..e2a8dfaf25c93 --- /dev/null +++ b/x-pack/plugins/uptime/scripts/e2e.js @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +/* eslint-disable no-console */ + +const path = require('path'); +const yargs = require('yargs'); +const childProcess = require('child_process'); + +const { argv } = yargs(process.argv.slice(2)) + .option('server', { + default: false, + type: 'boolean', + description: 'Start Elasticsearch and kibana', + }) + .option('runner', { + default: false, + type: 'boolean', + description: + 'Run all tests (an instance of Elasticsearch and kibana are needs to be available)', + }) + .option('open', { + default: false, + type: 'boolean', + description: 'Opens the Playwright Test Runner', + }) + .help(); + +const { server, runner, open } = argv; + +const e2eDir = path.join(__dirname, '../e2e'); + +let ftrScript = 'functional_tests'; +if (server) { + ftrScript = 'functional_tests_server'; +} else if (runner || open) { + ftrScript = 'functional_test_runner'; +} + +const config = './playwright_run.ts'; + +function executeRunner() { + childProcess.execSync(`node ../../../scripts/${ftrScript} --config ${config}`, { + cwd: e2eDir, + stdio: 'inherit', + }); +} +executeRunner(); diff --git a/x-pack/plugins/uptime/tsconfig.json b/x-pack/plugins/uptime/tsconfig.json index a41da4837f453..8e50623755fa9 100644 --- a/x-pack/plugins/uptime/tsconfig.json +++ b/x-pack/plugins/uptime/tsconfig.json @@ -8,6 +8,7 @@ }, "include": [ "common/**/*", + "scripts/**/*", "public/**/*", "public/components/monitor/status_details/location_map/embeddables/low_poly_layer.json", "server/**/*", diff --git a/yarn.lock b/yarn.lock index e2f8481a15099..554b1280c0be3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1226,6 +1226,18 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@cspotcode/source-map-consumer@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" + integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== + +"@cspotcode/source-map-support@0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz#118511f316e2e87ee4294761868e254d3da47960" + integrity sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg== + dependencies: + "@cspotcode/source-map-consumer" "0.8.0" + "@cypress/browserify-preprocessor@^3.0.1": version "3.0.1" resolved "https://registry.yarnpkg.com/@cypress/browserify-preprocessor/-/browserify-preprocessor-3.0.1.tgz#ab86335b0c061d11f5ad7df03f06b1877b836f71" @@ -1581,6 +1593,25 @@ history "^4.9.0" qs "^6.7.0" +"@elastic/synthetics@^1.0.0-beta.12": + version "1.0.0-beta.13" + resolved "https://registry.yarnpkg.com/@elastic/synthetics/-/synthetics-1.0.0-beta.13.tgz#84b3353b6bfff5623613016d8ed3d47e48ed17ea" + integrity sha512-CXpdfq/E6sVwDU6aGkH9mvcBPimQvR3/2QfBS5U4J58145m7YRPhJzaPJqXVApKomYcE/yzN49zOTIDsMcdOkg== + dependencies: + commander "^7.0.0" + deepmerge "^4.2.2" + expect "^27.0.2" + http-proxy "^1.18.1" + kleur "^4.1.3" + micromatch "^4.0.4" + playwright-chromium "=1.14.0" + sharp "^0.28.3" + snakecase-keys "^3.2.1" + sonic-boom "^2.1.0" + source-map-support "^0.5.19" + ts-node "^10.2.1" + typescript "^4.3.5" + "@emotion/babel-plugin-jsx-pragmatic@^0.1.5": version "0.1.5" resolved "https://registry.yarnpkg.com/@emotion/babel-plugin-jsx-pragmatic/-/babel-plugin-jsx-pragmatic-0.1.5.tgz#27debfe9c27c4d83574d509787ae553bf8a34d7e" @@ -2396,6 +2427,17 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" +"@jest/types@^27.1.1": + version "27.1.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.1.1.tgz#77a3fc014f906c65752d12123a0134359707c0ad" + integrity sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + "@jimp/bmp@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.14.0.tgz#6df246026554f276f7b354047c6fff9f5b2b5182" @@ -4607,6 +4649,26 @@ multimatch "^5.0.0" typescript "~4.1.2" +"@tsconfig/node10@^1.0.7": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" + integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + +"@tsconfig/node12@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" + integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + +"@tsconfig/node14@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" + integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== + +"@tsconfig/node16@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" + integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + "@turf/along@6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@turf/along/-/along-6.0.1.tgz#595cecdc48fc7fcfa83c940a8e3eb24d4c2e04d4" @@ -6291,6 +6353,13 @@ dependencies: "@types/yargs-parser" "*" +"@types/yargs@^16.0.0": + version "16.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== + dependencies: + "@types/yargs-parser" "*" + "@types/yauzl@^2.9.1": version "2.9.1" resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" @@ -6705,6 +6774,11 @@ acorn-walk@^7.0.0, acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + acorn@5.X, acorn@^5.0.3: version "5.7.4" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" @@ -6720,6 +6794,11 @@ acorn@^7.0.0, acorn@^7.1.0, acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== +acorn@^8.4.1: + version "8.5.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" + integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== + address@1.1.2, address@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -7040,6 +7119,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: "@types/color-name" "^1.1.1" color-convert "^2.0.1" +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + ansi-to-html@^0.6.11: version "0.6.13" resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.13.tgz#c72eae8b63e5ca0643aab11bfc6e6f2217425833" @@ -7205,6 +7289,11 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + argparse@^1.0.7, argparse@~1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -9740,7 +9829,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.8.2, color-convert@^1.9.0, color-convert@^1.9.1: +color-convert@^1.8.2, color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -9772,6 +9861,14 @@ color-string@^1.4.0, color-string@^1.5.2, color-string@^1.5.4: color-name "^1.0.0" simple-swizzle "^0.2.2" +color-string@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" + integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + color-support@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" @@ -9801,6 +9898,14 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.4" +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + colorette@^1.2.0, colorette@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" @@ -9891,6 +9996,16 @@ commander@^5.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== +commander@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commander@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + common-tags@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" @@ -10384,6 +10499,11 @@ create-react-context@0.3.0, create-react-context@^0.3.0: gud "^1.0.0" warning "^4.0.3" +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + cronstrue@^1.51.0: version "1.51.0" resolved "https://registry.yarnpkg.com/cronstrue/-/cronstrue-1.51.0.tgz#7a63153d61d940344049037628da38a60784c8e2" @@ -11377,6 +11497,13 @@ decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -11690,6 +11817,11 @@ detect-indent@^5.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + detect-newline@2.X: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" @@ -11783,6 +11915,11 @@ diff-sequences@^26.6.2: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== +diff-sequences@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" + integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== + diff@4.0.2, diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -13250,6 +13387,11 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" @@ -13281,6 +13423,18 @@ expect@^26.6.2: jest-message-util "^26.6.2" jest-regex-util "^26.0.0" +expect@^27.0.2: + version "27.2.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.2.0.tgz#40eb89a492afb726a3929ccf3611ee0799ab976f" + integrity sha512-oOTbawMQv7AK1FZURbPTgGSzmhxkjFzoARSvDjOMnOpeWuYQx1tP6rXu9MIX5mrACmyCAM7fSNP8IJO2f1p0CQ== + dependencies: + "@jest/types" "^27.1.1" + ansi-styles "^5.0.0" + jest-get-type "^27.0.6" + jest-matcher-utils "^27.2.0" + jest-message-util "^27.2.0" + jest-regex-util "^27.0.6" + expiry-js@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/expiry-js/-/expiry-js-0.1.7.tgz#76be8c05e572bf936df40c1766448d0b3b2f555f" @@ -14422,6 +14576,11 @@ gifwrap@^0.9.2: image-q "^1.1.1" omggif "^1.0.10" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + github-slugger@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" @@ -16972,6 +17131,16 @@ jest-diff@^26.0.0, jest-diff@^26.6.2: jest-get-type "^26.3.0" pretty-format "^26.6.2" +jest-diff@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.2.0.tgz#bda761c360f751bab1e7a2fe2fc2b0a35ce8518c" + integrity sha512-QSO9WC6btFYWtRJ3Hac0sRrkspf7B01mGrrQEiCW6TobtViJ9RWL0EmOs/WnBsZDsI/Y2IoSHZA2x6offu0sYw== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.0.6" + jest-get-type "^27.0.6" + pretty-format "^27.2.0" + jest-docblock@^26.0.0: version "26.0.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" @@ -17039,6 +17208,11 @@ jest-get-type@^26.3.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== +jest-get-type@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" + integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== + jest-haste-map@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" @@ -17112,6 +17286,16 @@ jest-matcher-utils@^26.6.2: jest-get-type "^26.3.0" pretty-format "^26.6.2" +jest-matcher-utils@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.2.0.tgz#b4d224ab88655d5fab64b96b989ac349e2f5da43" + integrity sha512-F+LG3iTwJ0gPjxBX6HCyrARFXq6jjiqhwBQeskkJQgSLeF1j6ui1RTV08SR7O51XTUhtc8zqpDj8iCG4RGmdKw== + dependencies: + chalk "^4.0.0" + jest-diff "^27.2.0" + jest-get-type "^27.0.6" + pretty-format "^27.2.0" + jest-message-util@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" @@ -17141,6 +17325,21 @@ jest-message-util@^26.6.2: slash "^3.0.0" stack-utils "^2.0.2" +jest-message-util@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.2.0.tgz#2f65c71df55267208686b1d7514e18106c91ceaf" + integrity sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.1.1" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.4" + pretty-format "^27.2.0" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-mock@^24.0.0, jest-mock@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" @@ -17176,6 +17375,11 @@ jest-regex-util@^26.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== +jest-regex-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" + integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== + jest-resolve-dependencies@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" @@ -17470,6 +17674,11 @@ jpeg-js@^0.4.0: resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.1.tgz#937a3ae911eb6427f151760f8123f04c8bfe6ef7" integrity sha512-jA55yJiB5tCXEddos8JBbvW+IMrqY0y1tjjx9KNVtA+QPmu7ND5j0zkKopClpUTsaETL135uOM2XfcYG4XRjmw== +jpeg-js@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b" + integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q== + jquery@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.0.tgz#9980b97d9e4194611c36530e7dc46a58d7340fc9" @@ -17930,6 +18139,11 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +kleur@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" + integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + klona@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" @@ -18722,6 +18936,11 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + make-fetch-happen@^8.0.14: version "8.0.14" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz#aaba73ae0ab5586ad8eaa68bd83332669393e222" @@ -18772,6 +18991,11 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== +map-obj@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7" + integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ== + map-or-similar@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" @@ -19191,6 +19415,14 @@ micromatch@^4.0.0, micromatch@^4.0.2: braces "^3.0.1" picomatch "^2.0.5" +micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + microseconds@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/microseconds/-/microseconds-0.2.0.tgz#233b25f50c62a65d861f978a4a4f8ec18797dc39" @@ -19238,6 +19470,11 @@ mime@^2.4.4: resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== +mime@^2.4.6: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -19253,6 +19490,11 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" @@ -19313,7 +19555,7 @@ minimist-options@4.1.0, minimist-options@^4.0.2: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@0.0.8, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0: +minimist@0.0.8, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@~1.2.0: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -19410,7 +19652,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp-classic@^0.5.2: +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== @@ -19804,6 +20046,11 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + native-url@^0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae" @@ -19938,6 +20185,18 @@ nock@12.0.3: lodash "^4.17.13" propagate "^2.0.0" +node-abi@^2.21.0: + version "2.30.1" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf" + integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w== + dependencies: + semver "^5.4.1" + +node-addon-api@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== + node-bitmap@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/node-bitmap/-/node-bitmap-0.0.1.tgz#180eac7003e0c707618ef31368f62f84b2a69091" @@ -20242,7 +20501,7 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -npmlog@^4.0.0, npmlog@^4.1.2: +npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -21328,6 +21587,11 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + pify@^2.0.0, pify@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -21426,6 +21690,26 @@ platform@^1.3.0: resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.5.tgz#fb6958c696e07e2918d2eeda0f0bc9448d733444" integrity sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q== +playwright-chromium@=1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/playwright-chromium/-/playwright-chromium-1.14.0.tgz#b153eb96412fd6a4fa8d9233a4fdf694fc9f3139" + integrity sha512-qWQN9VTPhvEZdRpn1564EOtiNU+hRHhogKg1heBX9VsfGy6WHytR9XPFJjD4M6fhNAV1WKM2McVPYIbi1EOYww== + dependencies: + commander "^6.1.0" + debug "^4.1.1" + extract-zip "^2.0.1" + https-proxy-agent "^5.0.0" + jpeg-js "^0.4.2" + mime "^2.4.6" + pngjs "^5.0.0" + progress "^2.0.3" + proper-lockfile "^4.1.1" + proxy-from-env "^1.1.0" + rimraf "^3.0.2" + stack-utils "^2.0.3" + ws "^7.4.6" + yazl "^2.5.1" + plugin-error@^1.0.0, plugin-error@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" @@ -21468,6 +21752,11 @@ pngjs@^3.0.0, pngjs@^3.3.3, pngjs@^3.4.0: resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== + pnp-webpack-plugin@1.6.4: version "1.6.4" resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" @@ -21936,6 +22225,25 @@ potpack@^1.0.1: resolved "https://registry.yarnpkg.com/potpack/-/potpack-1.0.1.tgz#d1b1afd89e4c8f7762865ec30bd112ab767e2ebf" integrity sha512-15vItUAbViaYrmaB/Pbw7z6qX2xENbFSTA7Ii4tgbPtasxm5v6ryKhKtL91tpWovDJzTiZqdwzhcFBCwiMVdVw== +prebuild-install@^6.1.2: + version "6.1.4" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" + integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^2.21.0" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^3.0.3" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -22011,6 +22319,16 @@ pretty-format@^26.0.0, pretty-format@^26.4.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" +pretty-format@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.0.tgz#ee37a94ce2a79765791a8649ae374d468c18ef19" + integrity sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA== + dependencies: + "@jest/types" "^27.1.1" + ansi-regex "^5.0.0" + ansi-styles "^5.0.0" + react-is "^17.0.1" + pretty-hrtime@^1.0.0, pretty-hrtime@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" @@ -22077,7 +22395,7 @@ progress@^1.1.8: resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= -progress@^2.0.0, progress@^2.0.1: +progress@^2.0.0, progress@^2.0.1, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -22158,6 +22476,15 @@ propagate@^2.0.0: resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== +proper-lockfile@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" + integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== + dependencies: + graceful-fs "^4.2.4" + retry "^0.12.0" + signal-exit "^3.0.2" + property-information@^5.0.0, property-information@^5.0.1, property-information@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.5.0.tgz#4dc075d493061a82e2b7d096f406e076ed859943" @@ -22553,7 +22880,7 @@ rc-pagination@^1.20.1: prop-types "^15.5.7" react-lifecycles-compat "^3.0.4" -rc@^1.0.1, rc@^1.2.8: +rc@^1.0.1, rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -24870,6 +25197,20 @@ shallowequal@1.1.0, shallowequal@^1.1.0: resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== +sharp@^0.28.3: + version "0.28.3" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.28.3.tgz#ecd74cefd020bee4891bb137c9850ee2ce277a8b" + integrity sha512-21GEP45Rmr7q2qcmdnjDkNP04Ooh5v0laGS5FDpojOO84D1DJwUijLiSq8XNNM6e8aGXYtoYRh3sVNdm8NodMA== + dependencies: + color "^3.1.3" + detect-libc "^1.0.3" + node-addon-api "^3.2.0" + prebuild-install "^6.1.2" + semver "^7.3.5" + simple-get "^3.1.0" + tar-fs "^2.1.1" + tunnel-agent "^0.6.0" + shasum-object@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" @@ -24960,6 +25301,15 @@ simple-concat@^1.0.0: resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== +simple-get@^3.0.3, simple-get@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-git@1.116.0: version "1.116.0" resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.116.0.tgz#ea6e533466f1e0152186e306e004d4eefa6e3e00" @@ -25044,6 +25394,14 @@ smart-buffer@^4.1.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== +snakecase-keys@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/snakecase-keys/-/snakecase-keys-3.2.1.tgz#ce5d1a2de8a93c939d7992f76f2743aa59f3d5ad" + integrity sha512-CjU5pyRfwOtaOITYv5C8DzpZ8XA/ieRsDpr93HI2r6e3YInC6moZpSQbmUtg8cTk58tq2x3jcG2gv+p1IZGmMA== + dependencies: + map-obj "^4.1.0" + to-snake-case "^1.0.0" + snap-shot-compare@2.8.3: version "2.8.3" resolved "https://registry.yarnpkg.com/snap-shot-compare/-/snap-shot-compare-2.8.3.tgz#b4982fb7b4e9cd4fa0b03a40a100b5f005b2d515" @@ -25151,6 +25509,13 @@ sonic-boom@^1.0.2: atomic-sleep "^1.0.0" flatstr "^1.0.12" +sonic-boom@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.2.3.tgz#4b97146c4986481b5245aec371bde025415db532" + integrity sha512-dm32bzlBchhXoJZe0yLY/kdYsHtXhZphidIcCzJib1aEjfciZyvHJ3NjA1zh6jJCO/OBLfdjc5iw6jLS/Go2fg== + dependencies: + atomic-sleep "^1.0.0" + sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" @@ -25205,6 +25570,14 @@ source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@^0.5. buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@^0.5.20: + version "0.5.20" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" + integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" @@ -25476,6 +25849,14 @@ stack-utils@^2.0.2: dependencies: escape-string-regexp "^2.0.0" +stack-utils@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.4.tgz#bf967ae2813d3d2d1e1f59a4408676495c8112ab" + integrity sha512-ERg+H//lSSYlZhBIUu+wJnqg30AbyBbpZlIhcshpn7BNzpoRODZgfyr9J+8ERf3ooC6af3u7Lcl01nleau7MrA== + dependencies: + escape-string-regexp "^2.0.0" + source-map-support "^0.5.20" + stackframe@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4" @@ -26357,7 +26738,7 @@ tape@^5.0.1: string.prototype.trim "^1.2.1" through "^2.3.8" -tar-fs@^2.0.0: +tar-fs@^2.0.0, tar-fs@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== @@ -26852,6 +27233,13 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" +to-snake-case@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-snake-case/-/to-snake-case-1.0.0.tgz#ce746913897946019a87e62edfaeaea4c608ab8c" + integrity sha1-znRpE4l5RgGah+Yu366upMYIq4w= + dependencies: + to-space-case "^1.0.0" + to-source-code@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/to-source-code/-/to-source-code-1.0.2.tgz#dd136bdb1e1dbd80bbeacf088992678e9070bfea" @@ -27050,6 +27438,24 @@ ts-morph@^9.1.0: "@ts-morph/common" "~0.7.0" code-block-writer "^10.1.1" +ts-node@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.2.1.tgz#4cc93bea0a7aba2179497e65bb08ddfc198b3ab5" + integrity sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw== + dependencies: + "@cspotcode/source-map-support" "0.6.1" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + yn "3.1.1" + ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" @@ -27251,7 +27657,7 @@ typescript-tuple@^2.2.1: dependencies: typescript-compare "^0.0.2" -typescript@4.1.3, typescript@^3.3.3333, typescript@^3.5.3, typescript@~3.7.2, typescript@~4.1.2: +typescript@4.1.3, typescript@^3.3.3333, typescript@^3.5.3, typescript@^4.3.5, typescript@~3.7.2, typescript@~4.1.2: version "4.1.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== @@ -29178,6 +29584,11 @@ ws@^7.2.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +ws@^7.4.6: + version "7.5.5" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" + integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== + x-is-function@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/x-is-function/-/x-is-function-1.0.4.tgz#5d294dc3d268cbdd062580e0c5df77a391d1fa1e" @@ -29467,6 +29878,11 @@ yazl@^2.5.1: dependencies: buffer-crc32 "~0.2.3" +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + z-schema@~3.18.3: version "3.18.4" resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-3.18.4.tgz#ea8132b279533ee60be2485a02f7e3e42541a9a2"