diff --git a/package.json b/package.json index c668cce2bc510..d662b6d7b884f 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ }, "dependencies": { "@elastic/datemath": "5.0.1", - "@elastic/eui": "5.3.0", + "@elastic/eui": "5.6.0", "@elastic/filesaver": "1.1.2", "@elastic/good": "8.1.1-kibana2", "@elastic/numeral": "2.3.2", @@ -205,7 +205,7 @@ "regression": "2.0.0", "request": "^2.88.0", "reselect": "^3.0.1", - "resize-observer-polyfill": "1.2.1", + "resize-observer-polyfill": "^1.5.0", "rimraf": "2.4.3", "rison-node": "1.0.0", "rxjs": "^6.2.1", @@ -216,7 +216,7 @@ "style-loader": "0.23.1", "tar": "2.2.0", "tinygradient": "0.3.0", - "tinymath": "1.1.0", + "tinymath": "1.1.1", "topojson-client": "3.0.0", "trunc-html": "1.0.2", "trunc-text": "1.0.2", diff --git a/packages/kbn-interpreter/src/public/socket.js b/packages/kbn-interpreter/src/public/socket.js index 9143f0018377b..e3a2068086b34 100644 --- a/packages/kbn-interpreter/src/public/socket.js +++ b/packages/kbn-interpreter/src/public/socket.js @@ -55,6 +55,9 @@ export async function createSocket(basePath) { socket.on('connect', () => { resolve(); + socket.off('connectionFailed', errorHandler); + socket.off('connect_error', errorHandler); + socket.off('connect_timeout', errorHandler); }); function errorHandler(err) { diff --git a/packages/kbn-interpreter/src/server/plugin_paths.js b/packages/kbn-interpreter/src/server/plugin_paths.js index 26c22cdd2b8e9..ba80b93b054d7 100644 --- a/packages/kbn-interpreter/src/server/plugin_paths.js +++ b/packages/kbn-interpreter/src/server/plugin_paths.js @@ -30,4 +30,6 @@ export const pluginPaths = { modelUIs: ['uis', 'models'], viewUIs: ['uis', 'views'], argumentUIs: ['uis', 'arguments'], + templates: ['templates'], + tagUIs: ['uis', 'tags'], }; diff --git a/packages/kbn-pm/dist/index.js b/packages/kbn-pm/dist/index.js index 5db0bc9b63068..ecbb46bb7f6ab 100644 --- a/packages/kbn-pm/dist/index.js +++ b/packages/kbn-pm/dist/index.js @@ -82,23045 +82,11054 @@ module.exports = /******/ /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 161); +/******/ return __webpack_require__(__webpack_require__.s = 0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { "use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __extends; }); -/* unused harmony export __assign */ -/* unused harmony export __rest */ -/* unused harmony export __decorate */ -/* unused harmony export __param */ -/* unused harmony export __metadata */ -/* unused harmony export __awaiter */ -/* unused harmony export __generator */ -/* unused harmony export __exportStar */ -/* unused harmony export __values */ -/* unused harmony export __read */ -/* unused harmony export __spread */ -/* unused harmony export __await */ -/* unused harmony export __asyncGenerator */ -/* unused harmony export __asyncDelegator */ -/* unused harmony export __asyncValues */ -/* unused harmony export __makeTemplateObject */ -/* unused harmony export __importStar */ -/* unused harmony export __importDefault */ -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - } - return __assign.apply(this, arguments); -} - -function __rest(s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) - t[p[i]] = s[p[i]]; - return t; -} - -function __decorate(decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -} - -function __param(paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -} - -function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); -} - -function __awaiter(thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} - -function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -} - -function __exportStar(m, exports) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} - -function __values(o) { - var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; - if (m) return m.call(o); - return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; -} - -function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -} - -function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; -} - -function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); -} - -function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } -} - -function __asyncDelegator(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } -} - -function __asyncValues(o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } -} - -function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; - -function __importStar(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result.default = mod; - return result; -} - -function __importDefault(mod) { - return (mod && mod.__esModule) ? mod : { default: mod }; -} -/***/ }), -/* 1 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +Object.defineProperty(exports, "__esModule", { + value: true +}); -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Subscriber; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33); -/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6); -/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(42); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19); -/* harmony import */ var _util_hostReportError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41); -/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */ +var _cli = __webpack_require__(1); +Object.defineProperty(exports, 'run', { + enumerable: true, + get: function () { + return _cli.run; + } +}); +var _production = __webpack_require__(372); +Object.defineProperty(exports, 'buildProductionProjects', { + enumerable: true, + get: function () { + return _production.buildProductionProjects; + } +}); +Object.defineProperty(exports, 'prepareExternalProjectDependencies', { + enumerable: true, + get: function () { + return _production.prepareExternalProjectDependencies; + } +}); +var _workspaces = __webpack_require__(135); +Object.defineProperty(exports, 'copyWorkspacePackages', { + enumerable: true, + get: function () { + return _workspaces.copyWorkspacePackages; + } +}); +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { -var Subscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](Subscriber, _super); - function Subscriber(destinationOrNext, error, complete) { - var _this = _super.call(this) || this; - _this.syncErrorValue = null; - _this.syncErrorThrown = false; - _this.syncErrorThrowable = false; - _this.isStopped = false; - switch (arguments.length) { - case 0: - _this.destination = _Observer__WEBPACK_IMPORTED_MODULE_2__[/* empty */ "a"]; - break; - case 1: - if (!destinationOrNext) { - _this.destination = _Observer__WEBPACK_IMPORTED_MODULE_2__[/* empty */ "a"]; - break; - } - if (typeof destinationOrNext === 'object') { - if (isTrustedSubscriber(destinationOrNext)) { - var trustedSubscriber = destinationOrNext[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__[/* rxSubscriber */ "a"]](); - _this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable; - _this.destination = trustedSubscriber; - trustedSubscriber.add(_this); - } - else { - _this.syncErrorThrowable = true; - _this.destination = new SafeSubscriber(_this, destinationOrNext); - } - break; - } - default: - _this.syncErrorThrowable = true; - _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete); - break; - } - return _this; - } - Subscriber.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__[/* rxSubscriber */ "a"]] = function () { return this; }; - Subscriber.create = function (next, error, complete) { - var subscriber = new Subscriber(next, error, complete); - subscriber.syncErrorThrowable = false; - return subscriber; - }; - Subscriber.prototype.next = function (value) { - if (!this.isStopped) { - this._next(value); - } - }; - Subscriber.prototype.error = function (err) { - if (!this.isStopped) { - this.isStopped = true; - this._error(err); - } - }; - Subscriber.prototype.complete = function () { - if (!this.isStopped) { - this.isStopped = true; - this._complete(); - } - }; - Subscriber.prototype.unsubscribe = function () { - if (this.closed) { - return; - } - this.isStopped = true; - _super.prototype.unsubscribe.call(this); - }; - Subscriber.prototype._next = function (value) { - this.destination.next(value); - }; - Subscriber.prototype._error = function (err) { - this.destination.error(err); - this.unsubscribe(); - }; - Subscriber.prototype._complete = function () { - this.destination.complete(); - this.unsubscribe(); - }; - Subscriber.prototype._unsubscribeAndRecycle = function () { - var _a = this, _parent = _a._parent, _parents = _a._parents; - this._parent = null; - this._parents = null; - this.unsubscribe(); - this.closed = false; - this.isStopped = false; - this._parent = _parent; - this._parents = _parents; - return this; - }; - return Subscriber; -}(_Subscription__WEBPACK_IMPORTED_MODULE_3__[/* Subscription */ "a"])); +"use strict"; -var SafeSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](SafeSubscriber, _super); - function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) { - var _this = _super.call(this) || this; - _this._parentSubscriber = _parentSubscriber; - var next; - var context = _this; - if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_1__[/* isFunction */ "a"])(observerOrNext)) { - next = observerOrNext; - } - else if (observerOrNext) { - next = observerOrNext.next; - error = observerOrNext.error; - complete = observerOrNext.complete; - if (observerOrNext !== _Observer__WEBPACK_IMPORTED_MODULE_2__[/* empty */ "a"]) { - context = Object.create(observerOrNext); - if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_1__[/* isFunction */ "a"])(context.unsubscribe)) { - _this.add(context.unsubscribe.bind(context)); - } - context.unsubscribe = _this.unsubscribe.bind(_this); - } - } - _this._context = context; - _this._next = next; - _this._error = error; - _this._complete = complete; - return _this; - } - SafeSubscriber.prototype.next = function (value) { - if (!this.isStopped && this._next) { - var _parentSubscriber = this._parentSubscriber; - if (!_config__WEBPACK_IMPORTED_MODULE_5__[/* config */ "a"].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { - this.__tryOrUnsub(this._next, value); - } - else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) { - this.unsubscribe(); - } - } - }; - SafeSubscriber.prototype.error = function (err) { - if (!this.isStopped) { - var _parentSubscriber = this._parentSubscriber; - var useDeprecatedSynchronousErrorHandling = _config__WEBPACK_IMPORTED_MODULE_5__[/* config */ "a"].useDeprecatedSynchronousErrorHandling; - if (this._error) { - if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { - this.__tryOrUnsub(this._error, err); - this.unsubscribe(); - } - else { - this.__tryOrSetError(_parentSubscriber, this._error, err); - this.unsubscribe(); - } - } - else if (!_parentSubscriber.syncErrorThrowable) { - this.unsubscribe(); - if (useDeprecatedSynchronousErrorHandling) { - throw err; - } - Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[/* hostReportError */ "a"])(err); - } - else { - if (useDeprecatedSynchronousErrorHandling) { - _parentSubscriber.syncErrorValue = err; - _parentSubscriber.syncErrorThrown = true; - } - else { - Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[/* hostReportError */ "a"])(err); - } - this.unsubscribe(); - } - } - }; - SafeSubscriber.prototype.complete = function () { - var _this = this; - if (!this.isStopped) { - var _parentSubscriber = this._parentSubscriber; - if (this._complete) { - var wrappedComplete = function () { return _this._complete.call(_this._context); }; - if (!_config__WEBPACK_IMPORTED_MODULE_5__[/* config */ "a"].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { - this.__tryOrUnsub(wrappedComplete); - this.unsubscribe(); - } - else { - this.__tryOrSetError(_parentSubscriber, wrappedComplete); - this.unsubscribe(); - } - } - else { - this.unsubscribe(); - } - } - }; - SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) { - try { - fn.call(this._context, value); - } - catch (err) { - this.unsubscribe(); - if (_config__WEBPACK_IMPORTED_MODULE_5__[/* config */ "a"].useDeprecatedSynchronousErrorHandling) { - throw err; - } - else { - Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[/* hostReportError */ "a"])(err); - } - } - }; - SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) { - if (!_config__WEBPACK_IMPORTED_MODULE_5__[/* config */ "a"].useDeprecatedSynchronousErrorHandling) { - throw new Error('bad call'); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.run = undefined; + +let run = exports.run = (() => { + var _ref = _asyncToGenerator(function* (argv) { + // We can simplify this setup (and remove this extra handling) once Yarn + // starts forwarding the `--` directly to this script, see + // https://github.com/yarnpkg/yarn/blob/b2d3e1a8fe45ef376b716d597cc79b38702a9320/src/cli/index.js#L174-L182 + if (argv.includes('--')) { + _log.log.write(_chalk2.default.red(`Using "--" is not allowed, as it doesn't work with 'yarn kbn'.`)); + process.exit(1); } - try { - fn.call(this._context, value); + const options = (0, _getopts2.default)(argv, { + alias: { + e: 'exclude', + h: 'help', + i: 'include' + }, + boolean: ['prefer-offline', 'frozen-lockfile'] + }); + const args = options._; + if (options.help || args.length === 0) { + help(); + return; } - catch (err) { - if (_config__WEBPACK_IMPORTED_MODULE_5__[/* config */ "a"].useDeprecatedSynchronousErrorHandling) { - parent.syncErrorValue = err; - parent.syncErrorThrown = true; - return true; - } - else { - Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[/* hostReportError */ "a"])(err); - return true; - } + // This `rootPath` is relative to `./dist/` as that's the location of the + // built version of this tool. + const rootPath = (0, _path.resolve)(__dirname, '../../../'); + const commandName = args[0]; + const extraArgs = args.slice(1); + const commandOptions = { options, extraArgs, rootPath }; + const command = _commands.commands[commandName]; + if (command === undefined) { + _log.log.write(_chalk2.default.red(`[${commandName}] is not a valid command, see 'kbn --help'`)); + process.exit(1); } - return false; - }; - SafeSubscriber.prototype._unsubscribe = function () { - var _parentSubscriber = this._parentSubscriber; - this._context = null; - this._parentSubscriber = null; - _parentSubscriber.unsubscribe(); + yield (0, _run.runCommand)(command, commandOptions); + }); + + return function run(_x) { + return _ref.apply(this, arguments); }; - return SafeSubscriber; -}(Subscriber)); -function isTrustedSubscriber(obj) { - return obj instanceof Subscriber || ('syncErrorThrowable' in obj && obj[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__[/* rxSubscriber */ "a"]]); -} -//# sourceMappingURL=Subscriber.js.map +})(); +var _chalk = __webpack_require__(2); -/***/ }), -/* 2 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +var _chalk2 = _interopRequireDefault(_chalk); -"use strict"; +var _dedent = __webpack_require__(14); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Subscriber.js -var Subscriber = __webpack_require__(1); +var _dedent2 = _interopRequireDefault(_dedent); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js -var rxSubscriber = __webpack_require__(42); +var _getopts = __webpack_require__(15); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Observer.js -var Observer = __webpack_require__(60); +var _getopts2 = _interopRequireDefault(_getopts); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/toSubscriber.js -/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */ +var _path = __webpack_require__(16); +var _commands = __webpack_require__(17); +var _run = __webpack_require__(362); -function toSubscriber(nextOrObserver, error, complete) { - if (nextOrObserver) { - if (nextOrObserver instanceof Subscriber["a" /* Subscriber */]) { - return nextOrObserver; - } - if (nextOrObserver[rxSubscriber["a" /* rxSubscriber */]]) { - return nextOrObserver[rxSubscriber["a" /* rxSubscriber */]](); - } - } - if (!nextOrObserver && !error && !complete) { - return new Subscriber["a" /* Subscriber */](Observer["a" /* empty */]); - } - return new Subscriber["a" /* Subscriber */](nextOrObserver, error, complete); -} -//# sourceMappingURL=toSubscriber.js.map +var _log = __webpack_require__(33); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/symbol/observable.js -var observable = __webpack_require__(27); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/pipe.js -var pipe = __webpack_require__(45); +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/config.js -var config = __webpack_require__(19); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Observable.js -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Observable_Observable; }); -/** PURE_IMPORTS_START _util_toSubscriber,_internal_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */ +function help() { + const availableCommands = Object.keys(_commands.commands).map(commandName => _commands.commands[commandName]).map(command => `${command.name} - ${command.description}`); + _log.log.write(_dedent2.default` + usage: kbn [] + By default commands are run for Kibana itself, all packages in the 'packages/' + folder and for all plugins in '../kibana-extra'. + Available commands: + ${availableCommands.join('\n ')} -var Observable_Observable = /*@__PURE__*/ (function () { - function Observable(subscribe) { - this._isScalar = false; - if (subscribe) { - this._subscribe = subscribe; - } - } - Observable.prototype.lift = function (operator) { - var observable = new Observable(); - observable.source = this; - observable.operator = operator; - return observable; - }; - Observable.prototype.subscribe = function (observerOrNext, error, complete) { - var operator = this.operator; - var sink = toSubscriber(observerOrNext, error, complete); - if (operator) { - operator.call(sink, this.source); - } - else { - sink.add(this.source || (config["a" /* config */].useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? - this._subscribe(sink) : - this._trySubscribe(sink)); - } - if (config["a" /* config */].useDeprecatedSynchronousErrorHandling) { - if (sink.syncErrorThrowable) { - sink.syncErrorThrowable = false; - if (sink.syncErrorThrown) { - throw sink.syncErrorValue; - } - } - } - return sink; - }; - Observable.prototype._trySubscribe = function (sink) { - try { - return this._subscribe(sink); - } - catch (err) { - if (config["a" /* config */].useDeprecatedSynchronousErrorHandling) { - sink.syncErrorThrown = true; - sink.syncErrorValue = err; - } - sink.error(err); - } - }; - Observable.prototype.forEach = function (next, promiseCtor) { - var _this = this; - promiseCtor = getPromiseCtor(promiseCtor); - return new promiseCtor(function (resolve, reject) { - var subscription; - subscription = _this.subscribe(function (value) { - try { - next(value); - } - catch (err) { - reject(err); - if (subscription) { - subscription.unsubscribe(); - } - } - }, reject, resolve); - }); - }; - Observable.prototype._subscribe = function (subscriber) { - var source = this.source; - return source && source.subscribe(subscriber); - }; - Observable.prototype[observable["a" /* observable */]] = function () { - return this; - }; - Observable.prototype.pipe = function () { - var operations = []; - for (var _i = 0; _i < arguments.length; _i++) { - operations[_i] = arguments[_i]; - } - if (operations.length === 0) { - return this; - } - return Object(pipe["b" /* pipeFromArray */])(operations)(this); - }; - Observable.prototype.toPromise = function (promiseCtor) { - var _this = this; - promiseCtor = getPromiseCtor(promiseCtor); - return new promiseCtor(function (resolve, reject) { - var value; - _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); }); - }); - }; - Observable.create = function (subscribe) { - return new Observable(subscribe); - }; - return Observable; -}()); + Global options: -function getPromiseCtor(promiseCtor) { - if (!promiseCtor) { - promiseCtor = config["a" /* config */].Promise || Promise; - } - if (!promiseCtor) { - throw new Error('no Promise impl found'); - } - return promiseCtor; + -e, --exclude Exclude specified project. Can be specified multiple times to exclude multiple projects, e.g. '-e kibana -e @kbn/pm'. + -i, --include Include only specified projects. If left unspecified, it defaults to including all projects. + --oss Do not include the x-pack when running command. + --skip-kibana-extra Filter all plugins in ../kibana-extra when running command. + `); } -//# sourceMappingURL=Observable.js.map - /***/ }), -/* 3 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { "use strict"; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/tslib/tslib.es6.js -var tslib_es6 = __webpack_require__(0); +const escapeStringRegexp = __webpack_require__(3); +const ansiStyles = __webpack_require__(4); +const stdoutColor = __webpack_require__(10).stdout; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Subscriber.js -var Subscriber = __webpack_require__(1); +const template = __webpack_require__(13); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/InnerSubscriber.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); +// `supportsColor.level` → `ansiStyles.color[name]` mapping +const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; -var InnerSubscriber_InnerSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](InnerSubscriber, _super); - function InnerSubscriber(parent, outerValue, outerIndex) { - var _this = _super.call(this) || this; - _this.parent = parent; - _this.outerValue = outerValue; - _this.outerIndex = outerIndex; - _this.index = 0; - return _this; - } - InnerSubscriber.prototype._next = function (value) { - this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this); - }; - InnerSubscriber.prototype._error = function (error) { - this.parent.notifyError(error, this); - this.unsubscribe(); - }; - InnerSubscriber.prototype._complete = function () { - this.parent.notifyComplete(this); - this.unsubscribe(); - }; - return InnerSubscriber; -}(Subscriber["a" /* Subscriber */])); +// `color-convert` models to exclude from the Chalk API due to conflicts and such +const skipModels = new Set(['gray']); -//# sourceMappingURL=InnerSubscriber.js.map +const styles = Object.create(null); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/subscribeTo.js -var subscribeTo = __webpack_require__(92); +function applyOptions(obj, options) { + options = options || {}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return subscribeToResult; }); -/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo PURE_IMPORTS_END */ + // Detect level if not set manually + const scLevel = stdoutColor ? stdoutColor.level : 0; + obj.level = options.level === undefined ? scLevel : options.level; + obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0; +} + +function Chalk(options) { + // We check for this.template here since calling `chalk.constructor()` + // by itself will have a `this` of a previously constructed chalk object + if (!this || !(this instanceof Chalk) || this.template) { + const chalk = {}; + applyOptions(chalk, options); + chalk.template = function () { + const args = [].slice.call(arguments); + return chalkTag.apply(null, [chalk.template].concat(args)); + }; -function subscribeToResult(outerSubscriber, result, outerValue, outerIndex) { - var destination = new InnerSubscriber_InnerSubscriber(outerSubscriber, outerValue, outerIndex); - return Object(subscribeTo["a" /* subscribeTo */])(result)(destination); + Object.setPrototypeOf(chalk, Chalk.prototype); + Object.setPrototypeOf(chalk.template, chalk); + + chalk.template.constructor = Chalk; + + return chalk.template; + } + + applyOptions(this, options); } -//# sourceMappingURL=subscribeToResult.js.map +// Use bright blue on Windows as the normal blue color is illegible +if (isSimpleWindowsTerm) { + ansiStyles.blue.open = '\u001B[94m'; +} -/***/ }), -/* 4 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +for (const key of Object.keys(ansiStyles)) { + ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return OuterSubscriber; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + styles[key] = { + get() { + const codes = ansiStyles[key]; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); + } + }; +} +styles.visible = { + get() { + return build.call(this, this._styles || [], true, 'visible'); + } +}; -var OuterSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](OuterSubscriber, _super); - function OuterSubscriber() { - return _super !== null && _super.apply(this, arguments) || this; - } - OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(innerValue); - }; - OuterSubscriber.prototype.notifyError = function (error, innerSub) { - this.destination.error(error); - }; - OuterSubscriber.prototype.notifyComplete = function (innerSub) { - this.destination.complete(); - }; - return OuterSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[/* Subscriber */ "a"])); +ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g'); +for (const model of Object.keys(ansiStyles.color.ansi)) { + if (skipModels.has(model)) { + continue; + } -//# sourceMappingURL=OuterSubscriber.js.map + styles[model] = { + get() { + const level = this.level; + return function () { + const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles.color.close, + closeRe: ansiStyles.color.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; +} +ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g'); +for (const model of Object.keys(ansiStyles.bgColor.ansi)) { + if (skipModels.has(model)) { + continue; + } -/***/ }), -/* 5 */ -/***/ (function(module, exports) { + const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); + styles[bgModel] = { + get() { + const level = this.level; + return function () { + const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles.bgColor.close, + closeRe: ansiStyles.bgColor.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; +} -module.exports = require("path"); +const proto = Object.defineProperties(() => {}, styles); -/***/ }), -/* 6 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +function build(_styles, _empty, key) { + const builder = function () { + return applyStyle.apply(builder, arguments); + }; -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Subscription; }); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11); -/* harmony import */ var _util_isObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89); -/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33); -/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16); -/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7); -/* harmony import */ var _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(46); -/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_tryCatch,_util_errorObject,_util_UnsubscriptionError PURE_IMPORTS_END */ + builder._styles = _styles; + builder._empty = _empty; + const self = this; + Object.defineProperty(builder, 'level', { + enumerable: true, + get() { + return self.level; + }, + set(level) { + self.level = level; + } + }); + Object.defineProperty(builder, 'enabled', { + enumerable: true, + get() { + return self.enabled; + }, + set(enabled) { + self.enabled = enabled; + } + }); + // See below for fix regarding invisible grey/dim combination on Windows + builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey'; + // `__proto__` is used because we must return a function, but there is + // no way to create a function with a different prototype + builder.__proto__ = proto; // eslint-disable-line no-proto -var Subscription = /*@__PURE__*/ (function () { - function Subscription(unsubscribe) { - this.closed = false; - this._parent = null; - this._parents = null; - this._subscriptions = null; - if (unsubscribe) { - this._unsubscribe = unsubscribe; - } - } - Subscription.prototype.unsubscribe = function () { - var hasErrors = false; - var errors; - if (this.closed) { - return; - } - var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions; - this.closed = true; - this._parent = null; - this._parents = null; - this._subscriptions = null; - var index = -1; - var len = _parents ? _parents.length : 0; - while (_parent) { - _parent.remove(this); - _parent = ++index < len && _parents[index] || null; - } - if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__[/* isFunction */ "a"])(_unsubscribe)) { - var trial = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_3__[/* tryCatch */ "a"])(_unsubscribe).call(this); - if (trial === _util_errorObject__WEBPACK_IMPORTED_MODULE_4__[/* errorObject */ "a"]) { - hasErrors = true; - errors = errors || (_util_errorObject__WEBPACK_IMPORTED_MODULE_4__[/* errorObject */ "a"].e instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__[/* UnsubscriptionError */ "a"] ? - flattenUnsubscriptionErrors(_util_errorObject__WEBPACK_IMPORTED_MODULE_4__[/* errorObject */ "a"].e.errors) : [_util_errorObject__WEBPACK_IMPORTED_MODULE_4__[/* errorObject */ "a"].e]); - } - } - if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__[/* isArray */ "a"])(_subscriptions)) { - index = -1; - len = _subscriptions.length; - while (++index < len) { - var sub = _subscriptions[index]; - if (Object(_util_isObject__WEBPACK_IMPORTED_MODULE_1__[/* isObject */ "a"])(sub)) { - var trial = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_3__[/* tryCatch */ "a"])(sub.unsubscribe).call(sub); - if (trial === _util_errorObject__WEBPACK_IMPORTED_MODULE_4__[/* errorObject */ "a"]) { - hasErrors = true; - errors = errors || []; - var err = _util_errorObject__WEBPACK_IMPORTED_MODULE_4__[/* errorObject */ "a"].e; - if (err instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__[/* UnsubscriptionError */ "a"]) { - errors = errors.concat(flattenUnsubscriptionErrors(err.errors)); - } - else { - errors.push(err); - } - } - } - } - } - if (hasErrors) { - throw new _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__[/* UnsubscriptionError */ "a"](errors); - } - }; - Subscription.prototype.add = function (teardown) { - if (!teardown || (teardown === Subscription.EMPTY)) { - return Subscription.EMPTY; - } - if (teardown === this) { - return this; - } - var subscription = teardown; - switch (typeof teardown) { - case 'function': - subscription = new Subscription(teardown); - case 'object': - if (subscription.closed || typeof subscription.unsubscribe !== 'function') { - return subscription; - } - else if (this.closed) { - subscription.unsubscribe(); - return subscription; - } - else if (typeof subscription._addParent !== 'function') { - var tmp = subscription; - subscription = new Subscription(); - subscription._subscriptions = [tmp]; - } - break; - default: - throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); - } - var subscriptions = this._subscriptions || (this._subscriptions = []); - subscriptions.push(subscription); - subscription._addParent(this); - return subscription; - }; - Subscription.prototype.remove = function (subscription) { - var subscriptions = this._subscriptions; - if (subscriptions) { - var subscriptionIndex = subscriptions.indexOf(subscription); - if (subscriptionIndex !== -1) { - subscriptions.splice(subscriptionIndex, 1); - } - } - }; - Subscription.prototype._addParent = function (parent) { - var _a = this, _parent = _a._parent, _parents = _a._parents; - if (!_parent || _parent === parent) { - this._parent = parent; - } - else if (!_parents) { - this._parents = [parent]; - } - else if (_parents.indexOf(parent) === -1) { - _parents.push(parent); - } - }; - Subscription.EMPTY = (function (empty) { - empty.closed = true; - return empty; - }(new Subscription())); - return Subscription; -}()); + return builder; +} -function flattenUnsubscriptionErrors(errors) { - return errors.reduce(function (errs, err) { return errs.concat((err instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__[/* UnsubscriptionError */ "a"]) ? err.errors : err); }, []); +function applyStyle() { + // Support varags, but simply cast to string in case there's only one arg + const args = arguments; + const argsLen = args.length; + let str = String(arguments[0]); + + if (argsLen === 0) { + return ''; + } + + if (argsLen > 1) { + // Don't slice `arguments`, it prevents V8 optimizations + for (let a = 1; a < argsLen; a++) { + str += ' ' + args[a]; + } + } + + if (!this.enabled || this.level <= 0 || !str) { + return this._empty ? '' : str; + } + + // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe, + // see https://github.com/chalk/chalk/issues/58 + // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop. + const originalDim = ansiStyles.dim.open; + if (isSimpleWindowsTerm && this.hasGrey) { + ansiStyles.dim.open = ''; + } + + for (const code of this._styles.slice().reverse()) { + // Replace any instances already present with a re-opening code + // otherwise only the part of the string until said closing code + // will be colored, and the rest will simply be 'plain'. + str = code.open + str.replace(code.closeRe, code.open) + code.close; + + // Close the styling before a linebreak and reopen + // after next line to fix a bleed issue on macOS + // https://github.com/chalk/chalk/pull/92 + str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`); + } + + // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue + ansiStyles.dim.open = originalDim; + + return str; } -//# sourceMappingURL=Subscription.js.map +function chalkTag(chalk, strings) { + if (!Array.isArray(strings)) { + // If chalk() was called by itself or with a string, + // return the string itself as a string. + return [].slice.call(arguments, 1).join(' '); + } + + const args = [].slice.call(arguments, 2); + const parts = [strings.raw[0]]; -/***/ }), -/* 7 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + for (let i = 1; i < strings.length; i++) { + parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&')); + parts.push(String(strings.raw[i])); + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return errorObject; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var errorObject = { e: {} }; -//# sourceMappingURL=errorObject.js.map + return template(chalk, parts.join('')); +} + +Object.defineProperties(Chalk.prototype, styles); + +module.exports = Chalk(); // eslint-disable-line new-cap +module.exports.supportsColor = stdoutColor; +module.exports.default = module.exports; // For TypeScript /***/ }), -/* 8 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { "use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return SubjectSubscriber; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Subject; }); -/* unused harmony export AnonymousSubject */ -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6); -/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(28); -/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(90); -/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(42); -/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */ +var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; +module.exports = function (str) { + if (typeof str !== 'string') { + throw new TypeError('Expected a string'); + } + return str.replace(matchOperatorsRe, '\\$&'); +}; +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { -var SubjectSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](SubjectSubscriber, _super); - function SubjectSubscriber(destination) { - var _this = _super.call(this, destination) || this; - _this.destination = destination; - return _this; - } - return SubjectSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__[/* Subscriber */ "a"])); +"use strict"; +/* WEBPACK VAR INJECTION */(function(module) { +const colorConvert = __webpack_require__(6); -var Subject = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](Subject, _super); - function Subject() { - var _this = _super.call(this) || this; - _this.observers = []; - _this.closed = false; - _this.isStopped = false; - _this.hasError = false; - _this.thrownError = null; - return _this; - } - Subject.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__[/* rxSubscriber */ "a"]] = function () { - return new SubjectSubscriber(this); - }; - Subject.prototype.lift = function (operator) { - var subject = new AnonymousSubject(this, this); - subject.operator = operator; - return subject; - }; - Subject.prototype.next = function (value) { - if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[/* ObjectUnsubscribedError */ "a"](); - } - if (!this.isStopped) { - var observers = this.observers; - var len = observers.length; - var copy = observers.slice(); - for (var i = 0; i < len; i++) { - copy[i].next(value); - } - } - }; - Subject.prototype.error = function (err) { - if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[/* ObjectUnsubscribedError */ "a"](); - } - this.hasError = true; - this.thrownError = err; - this.isStopped = true; - var observers = this.observers; - var len = observers.length; - var copy = observers.slice(); - for (var i = 0; i < len; i++) { - copy[i].error(err); - } - this.observers.length = 0; - }; - Subject.prototype.complete = function () { - if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[/* ObjectUnsubscribedError */ "a"](); - } - this.isStopped = true; - var observers = this.observers; - var len = observers.length; - var copy = observers.slice(); - for (var i = 0; i < len; i++) { - copy[i].complete(); - } - this.observers.length = 0; - }; - Subject.prototype.unsubscribe = function () { - this.isStopped = true; - this.closed = true; - this.observers = null; - }; - Subject.prototype._trySubscribe = function (subscriber) { - if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[/* ObjectUnsubscribedError */ "a"](); - } - else { - return _super.prototype._trySubscribe.call(this, subscriber); - } - }; - Subject.prototype._subscribe = function (subscriber) { - if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[/* ObjectUnsubscribedError */ "a"](); - } - else if (this.hasError) { - subscriber.error(this.thrownError); - return _Subscription__WEBPACK_IMPORTED_MODULE_3__[/* Subscription */ "a"].EMPTY; - } - else if (this.isStopped) { - subscriber.complete(); - return _Subscription__WEBPACK_IMPORTED_MODULE_3__[/* Subscription */ "a"].EMPTY; - } - else { - this.observers.push(subscriber); - return new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__[/* SubjectSubscription */ "a"](this, subscriber); - } - }; - Subject.prototype.asObservable = function () { - var observable = new _Observable__WEBPACK_IMPORTED_MODULE_1__[/* Observable */ "a"](); - observable.source = this; - return observable; - }; - Subject.create = function (destination, source) { - return new AnonymousSubject(destination, source); - }; - return Subject; -}(_Observable__WEBPACK_IMPORTED_MODULE_1__[/* Observable */ "a"])); - -var AnonymousSubject = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](AnonymousSubject, _super); - function AnonymousSubject(destination, source) { - var _this = _super.call(this) || this; - _this.destination = destination; - _this.source = source; - return _this; - } - AnonymousSubject.prototype.next = function (value) { - var destination = this.destination; - if (destination && destination.next) { - destination.next(value); - } - }; - AnonymousSubject.prototype.error = function (err) { - var destination = this.destination; - if (destination && destination.error) { - this.destination.error(err); - } - }; - AnonymousSubject.prototype.complete = function () { - var destination = this.destination; - if (destination && destination.complete) { - this.destination.complete(); - } - }; - AnonymousSubject.prototype._subscribe = function (subscriber) { - var source = this.source; - if (source) { - return this.source.subscribe(subscriber); - } - else { - return _Subscription__WEBPACK_IMPORTED_MODULE_3__[/* Subscription */ "a"].EMPTY; - } - }; - return AnonymousSubject; -}(Subject)); - -//# sourceMappingURL=Subject.js.map +const wrapAnsi16 = (fn, offset) => function () { + const code = fn.apply(colorConvert, arguments); + return `\u001B[${code + offset}m`; +}; +const wrapAnsi256 = (fn, offset) => function () { + const code = fn.apply(colorConvert, arguments); + return `\u001B[${38 + offset};5;${code}m`; +}; -/***/ }), -/* 9 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +const wrapAnsi16m = (fn, offset) => function () { + const rgb = fn.apply(colorConvert, arguments); + return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; +}; -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EMPTY; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return empty; }); -/* unused harmony export emptyScheduled */ -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); -/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ +function assembleStyles() { + const codes = new Map(); + const styles = { + modifier: { + reset: [0, 0], + // 21 isn't widely supported and 22 does the same thing + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + gray: [90, 39], -var EMPTY = /*@__PURE__*/ new _Observable__WEBPACK_IMPORTED_MODULE_0__[/* Observable */ "a"](function (subscriber) { return subscriber.complete(); }); -function empty(scheduler) { - return scheduler ? emptyScheduled(scheduler) : EMPTY; -} -function emptyScheduled(scheduler) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__[/* Observable */ "a"](function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); }); -} -//# sourceMappingURL=empty.js.map + // Bright color + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + // Bright color + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; -/***/ }), -/* 10 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + // Fix humans + styles.color.grey = styles.color.gray; -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return async; }); -/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37); -/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35); -/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */ + for (const groupName of Object.keys(styles)) { + const group = styles[groupName]; + for (const styleName of Object.keys(group)) { + const style = group[styleName]; -var async = /*@__PURE__*/ new _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[/* AsyncScheduler */ "a"](_AsyncAction__WEBPACK_IMPORTED_MODULE_0__[/* AsyncAction */ "a"]); -//# sourceMappingURL=async.js.map + styles[styleName] = { + open: `\u001B[${style[0]}m`, + close: `\u001B[${style[1]}m` + }; + group[styleName] = styles[styleName]; -/***/ }), -/* 11 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + codes.set(style[0], style[1]); + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isArray; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); -//# sourceMappingURL=isArray.js.map + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + Object.defineProperty(styles, 'codes', { + value: codes, + enumerable: false + }); + } -/***/ }), -/* 12 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + const ansi2ansi = n => n; + const rgb2rgb = (r, g, b) => [r, g, b]; -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isScheduler; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function isScheduler(value) { - return value && typeof value.schedule === 'function'; -} -//# sourceMappingURL=isScheduler.js.map + styles.color.close = '\u001B[39m'; + styles.bgColor.close = '\u001B[49m'; + styles.color.ansi = { + ansi: wrapAnsi16(ansi2ansi, 0) + }; + styles.color.ansi256 = { + ansi256: wrapAnsi256(ansi2ansi, 0) + }; + styles.color.ansi16m = { + rgb: wrapAnsi16m(rgb2rgb, 0) + }; -/***/ }), -/* 13 */ -/***/ (function(module, exports) { + styles.bgColor.ansi = { + ansi: wrapAnsi16(ansi2ansi, 10) + }; + styles.bgColor.ansi256 = { + ansi256: wrapAnsi256(ansi2ansi, 10) + }; + styles.bgColor.ansi16m = { + rgb: wrapAnsi16m(rgb2rgb, 10) + }; -module.exports = require("fs"); + for (let key of Object.keys(colorConvert)) { + if (typeof colorConvert[key] !== 'object') { + continue; + } -/***/ }), -/* 14 */ -/***/ (function(module, exports) { + const suite = colorConvert[key]; -module.exports = require("util"); + if (key === 'ansi16') { + key = 'ansi'; + } -/***/ }), -/* 15 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + if ('ansi16' in suite) { + styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0); + styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10); + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return map; }); -/* unused harmony export MapOperator */ -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + if ('ansi256' in suite) { + styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0); + styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10); + } + if ('rgb' in suite) { + styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0); + styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10); + } + } -function map(project, thisArg) { - return function mapOperation(source) { - if (typeof project !== 'function') { - throw new TypeError('argument is not a function. Are you looking for `mapTo()`?'); - } - return source.lift(new MapOperator(project, thisArg)); - }; + return styles; } -var MapOperator = /*@__PURE__*/ (function () { - function MapOperator(project, thisArg) { - this.project = project; - this.thisArg = thisArg; - } - MapOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg)); - }; - return MapOperator; -}()); -var MapSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](MapSubscriber, _super); - function MapSubscriber(destination, project, thisArg) { - var _this = _super.call(this, destination) || this; - _this.project = project; - _this.count = 0; - _this.thisArg = thisArg || _this; - return _this; - } - MapSubscriber.prototype._next = function (value) { - var result; - try { - result = this.project.call(this.thisArg, value, this.count++); - } - catch (err) { - this.destination.error(err); - return; - } - this.destination.next(result); - }; - return MapSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[/* Subscriber */ "a"])); -//# sourceMappingURL=map.js.map +// Make the export immutable +Object.defineProperty(module, 'exports', { + enumerable: true, + get: assembleStyles +}); +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(5)(module))) /***/ }), -/* 16 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return tryCatch; }); -/* harmony import */ var _errorObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7); -/** PURE_IMPORTS_START _errorObject PURE_IMPORTS_END */ +/* 5 */ +/***/ (function(module, exports) { -var tryCatchTarget; -function tryCatcher() { - try { - return tryCatchTarget.apply(this, arguments); - } - catch (e) { - _errorObject__WEBPACK_IMPORTED_MODULE_0__[/* errorObject */ "a"].e = e; - return _errorObject__WEBPACK_IMPORTED_MODULE_0__[/* errorObject */ "a"]; - } -} -function tryCatch(fn) { - tryCatchTarget = fn; - return tryCatcher; -} -//# sourceMappingURL=tryCatch.js.map +module.exports = function(module) { + if (!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + if (!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function() { + return module.i; + } + }); + module.webpackPolyfill = 1; + } + return module; +}; /***/ }), -/* 17 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; - -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Observable.js + 1 modules -var Observable = __webpack_require__(2); +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isPromise.js -var isPromise = __webpack_require__(95); +var conversions = __webpack_require__(7); +var route = __webpack_require__(9); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isArrayLike.js -var isArrayLike = __webpack_require__(94); +var convert = {}; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/symbol/observable.js -var symbol_observable = __webpack_require__(27); +var models = Object.keys(conversions); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js -/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */ +function wrapRaw(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } -function isInteropObservable(input) { - return input && typeof input[symbol_observable["a" /* observable */]] === 'function'; -} -//# sourceMappingURL=isInteropObservable.js.map + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/symbol/iterator.js -var symbol_iterator = __webpack_require__(25); + return fn(args); + }; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isIterable.js -/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */ + // preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } -function isIterable(input) { - return input && typeof input[symbol_iterator["a" /* iterator */]] === 'function'; + return wrappedFn; } -//# sourceMappingURL=isIterable.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/fromArray.js -var fromArray = __webpack_require__(18); +function wrapRounded(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Subscription.js -var Subscription = __webpack_require__(6); + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js -var subscribeToPromise = __webpack_require__(96); + var result = fn(args); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/fromPromise.js -/** PURE_IMPORTS_START _Observable,_Subscription,_util_subscribeToPromise PURE_IMPORTS_END */ + // we're assuming the result is an array here. + // see notice in conversions.js; don't use box types + // in conversion functions. + if (typeof result === 'object') { + for (var len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } + return result; + }; + // preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } -function fromPromise(input, scheduler) { - if (!scheduler) { - return new Observable["a" /* Observable */](Object(subscribeToPromise["a" /* subscribeToPromise */])(input)); - } - else { - return new Observable["a" /* Observable */](function (subscriber) { - var sub = new Subscription["a" /* Subscription */](); - sub.add(scheduler.schedule(function () { - return input.then(function (value) { - sub.add(scheduler.schedule(function () { - subscriber.next(value); - sub.add(scheduler.schedule(function () { return subscriber.complete(); })); - })); - }, function (err) { - sub.add(scheduler.schedule(function () { return subscriber.error(err); })); - }); - })); - return sub; - }); - } + return wrappedFn; } -//# sourceMappingURL=fromPromise.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js -var subscribeToIterable = __webpack_require__(97); - -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/fromIterable.js -/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator,_util_subscribeToIterable PURE_IMPORTS_END */ +models.forEach(function (fromModel) { + convert[fromModel] = {}; + Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); + Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); + var routes = route(fromModel); + var routeModels = Object.keys(routes); + routeModels.forEach(function (toModel) { + var fn = routes[toModel]; -function fromIterable(input, scheduler) { - if (!input) { - throw new Error('Iterable cannot be null'); - } - if (!scheduler) { - return new Observable["a" /* Observable */](Object(subscribeToIterable["a" /* subscribeToIterable */])(input)); - } - else { - return new Observable["a" /* Observable */](function (subscriber) { - var sub = new Subscription["a" /* Subscription */](); - var iterator; - sub.add(function () { - if (iterator && typeof iterator.return === 'function') { - iterator.return(); - } - }); - sub.add(scheduler.schedule(function () { - iterator = input[symbol_iterator["a" /* iterator */]](); - sub.add(scheduler.schedule(function () { - if (subscriber.closed) { - return; - } - var value; - var done; - try { - var result = iterator.next(); - value = result.value; - done = result.done; - } - catch (err) { - subscriber.error(err); - return; - } - if (done) { - subscriber.complete(); - } - else { - subscriber.next(value); - this.schedule(); - } - })); - })); - return sub; - }); - } -} -//# sourceMappingURL=fromIterable.js.map + convert[fromModel][toModel] = wrapRounded(fn); + convert[fromModel][toModel].raw = wrapRaw(fn); + }); +}); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js -var subscribeToObservable = __webpack_require__(93); +module.exports = convert; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/fromObservable.js -/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable,_util_subscribeToObservable PURE_IMPORTS_END */ +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { +/* MIT license */ +var cssKeywords = __webpack_require__(8); +// NOTE: conversions should only return primitive values (i.e. arrays, or +// values that give correct `typeof` results). +// do not use box values types (i.e. Number(), String(), etc.) -function fromObservable(input, scheduler) { - if (!scheduler) { - return new Observable["a" /* Observable */](Object(subscribeToObservable["a" /* subscribeToObservable */])(input)); - } - else { - return new Observable["a" /* Observable */](function (subscriber) { - var sub = new Subscription["a" /* Subscription */](); - sub.add(scheduler.schedule(function () { - var observable = input[symbol_observable["a" /* observable */]](); - sub.add(observable.subscribe({ - next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); }, - error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); }, - complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); }, - })); - })); - return sub; - }); - } +var reverseKeywords = {}; +for (var key in cssKeywords) { + if (cssKeywords.hasOwnProperty(key)) { + reverseKeywords[cssKeywords[key]] = key; + } } -//# sourceMappingURL=fromObservable.js.map - -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/subscribeTo.js -var subscribeTo = __webpack_require__(92); - -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/from.js -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return from; }); -/** PURE_IMPORTS_START _Observable,_util_isPromise,_util_isArrayLike,_util_isInteropObservable,_util_isIterable,_fromArray,_fromPromise,_fromIterable,_fromObservable,_util_subscribeTo PURE_IMPORTS_END */ +var convert = module.exports = { + rgb: {channels: 3, labels: 'rgb'}, + hsl: {channels: 3, labels: 'hsl'}, + hsv: {channels: 3, labels: 'hsv'}, + hwb: {channels: 3, labels: 'hwb'}, + cmyk: {channels: 4, labels: 'cmyk'}, + xyz: {channels: 3, labels: 'xyz'}, + lab: {channels: 3, labels: 'lab'}, + lch: {channels: 3, labels: 'lch'}, + hex: {channels: 1, labels: ['hex']}, + keyword: {channels: 1, labels: ['keyword']}, + ansi16: {channels: 1, labels: ['ansi16']}, + ansi256: {channels: 1, labels: ['ansi256']}, + hcg: {channels: 3, labels: ['h', 'c', 'g']}, + apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, + gray: {channels: 1, labels: ['gray']} +}; +// hide .channels and .labels properties +for (var model in convert) { + if (convert.hasOwnProperty(model)) { + if (!('channels' in convert[model])) { + throw new Error('missing channels property: ' + model); + } + if (!('labels' in convert[model])) { + throw new Error('missing channel labels property: ' + model); + } + if (convert[model].labels.length !== convert[model].channels) { + throw new Error('channel and label counts mismatch: ' + model); + } + var channels = convert[model].channels; + var labels = convert[model].labels; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], 'channels', {value: channels}); + Object.defineProperty(convert[model], 'labels', {value: labels}); + } +} +convert.rgb.hsl = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var h; + var s; + var l; + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } + h = Math.min(h * 60, 360); + if (h < 0) { + h += 360; + } -function from(input, scheduler) { - if (!scheduler) { - if (input instanceof Observable["a" /* Observable */]) { - return input; - } - return new Observable["a" /* Observable */](Object(subscribeTo["a" /* subscribeTo */])(input)); - } - if (input != null) { - if (isInteropObservable(input)) { - return fromObservable(input, scheduler); - } - else if (Object(isPromise["a" /* isPromise */])(input)) { - return fromPromise(input, scheduler); - } - else if (Object(isArrayLike["a" /* isArrayLike */])(input)) { - return Object(fromArray["a" /* fromArray */])(input, scheduler); - } - else if (isIterable(input) || typeof input === 'string') { - return fromIterable(input, scheduler); - } - } - throw new TypeError((input !== null && typeof input || input) + ' is not observable'); -} -//# sourceMappingURL=from.js.map + l = (min + max) / 2; + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } -/***/ }), -/* 18 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + return [h, s * 100, l * 100]; +}; -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return fromArray; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); -/* harmony import */ var _util_subscribeToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91); -/** PURE_IMPORTS_START _Observable,_Subscription,_util_subscribeToArray PURE_IMPORTS_END */ +convert.rgb.hsv = function (rgb) { + var r = rgb[0]; + var g = rgb[1]; + var b = rgb[2]; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var h; + var s; + var v; + if (max === 0) { + s = 0; + } else { + s = (delta / max * 1000) / 10; + } + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } -function fromArray(input, scheduler) { - if (!scheduler) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__[/* Observable */ "a"](Object(_util_subscribeToArray__WEBPACK_IMPORTED_MODULE_2__[/* subscribeToArray */ "a"])(input)); - } - else { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__[/* Observable */ "a"](function (subscriber) { - var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[/* Subscription */ "a"](); - var i = 0; - sub.add(scheduler.schedule(function () { - if (i === input.length) { - subscriber.complete(); - return; - } - subscriber.next(input[i++]); - if (!subscriber.closed) { - sub.add(this.schedule()); - } - })); - return sub; - }); - } -} -//# sourceMappingURL=fromArray.js.map + h = Math.min(h * 60, 360); + if (h < 0) { + h += 360; + } -/***/ }), -/* 19 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + v = ((max / 255) * 1000) / 10; -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return config; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var _enable_super_gross_mode_that_will_cause_bad_things = false; -var config = { - Promise: undefined, - set useDeprecatedSynchronousErrorHandling(value) { - if (value) { - var error = /*@__PURE__*/ new Error(); - /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack); - } - else if (_enable_super_gross_mode_that_will_cause_bad_things) { - /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3'); - } - _enable_super_gross_mode_that_will_cause_bad_things = value; - }, - get useDeprecatedSynchronousErrorHandling() { - return _enable_super_gross_mode_that_will_cause_bad_things; - }, + return [h, s, v]; }; -//# sourceMappingURL=config.js.map +convert.rgb.hwb = function (rgb) { + var r = rgb[0]; + var g = rgb[1]; + var b = rgb[2]; + var h = convert.rgb.hsl(rgb)[0]; + var w = 1 / 255 * Math.min(r, Math.min(g, b)); -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); -var isObject = __webpack_require__(74); + return [h, w * 100, b * 100]; +}; -module.exports = function extend(o/*, objects*/) { - if (!isObject(o)) { o = {}; } +convert.rgb.cmyk = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var c; + var m; + var y; + var k; - var len = arguments.length; - for (var i = 1; i < len; i++) { - var obj = arguments[i]; + k = Math.min(1 - r, 1 - g, 1 - b); + c = (1 - r - k) / (1 - k) || 0; + m = (1 - g - k) / (1 - k) || 0; + y = (1 - b - k) / (1 - k) || 0; - if (isObject(obj)) { - assign(o, obj); - } - } - return o; + return [c * 100, m * 100, y * 100, k * 100]; }; -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); + * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance + * */ +function comparativeDistance(x, y) { + return ( + Math.pow(x[0] - y[0], 2) + + Math.pow(x[1] - y[1], 2) + + Math.pow(x[2] - y[2], 2) + ); } +convert.rgb.keyword = function (rgb) { + var reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } -/***/ }), -/* 21 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return noop; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function noop() { } -//# sourceMappingURL=noop.js.map - + var currentClosestDistance = Infinity; + var currentClosestKeyword; -/***/ }), -/* 22 */ -/***/ (function(module, exports) { + for (var keyword in cssKeywords) { + if (cssKeywords.hasOwnProperty(keyword)) { + var value = cssKeywords[keyword]; -/*! - * Determine if an object is a Buffer - * - * @author Feross Aboukhadijeh - * @license MIT - */ + // Compute comparative distance + var distance = comparativeDistance(rgb, value); -// The _isBuffer check is for Safari 5-7 support, because it's missing -// Object.prototype.constructor. Remove this eventually -module.exports = function (obj) { - return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) -} + // Check if its less, if so set as closest + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + } -function isBuffer (obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) -} + return currentClosestKeyword; +}; -// For Node v0.10 support. Remove this eventually. -function isSlowBuffer (obj) { - return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) -} +convert.keyword.rgb = function (keyword) { + return cssKeywords[keyword]; +}; +convert.rgb.xyz = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; -/***/ }), -/* 23 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + // assume sRGB + r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92); + g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92); + b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92); -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return identity; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function identity(x) { - return x; -} -//# sourceMappingURL=identity.js.map + var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); + var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); + var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); + return [x * 100, y * 100, z * 100]; +}; -/***/ }), -/* 24 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +convert.rgb.lab = function (rgb) { + var xyz = convert.rgb.xyz(rgb); + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Notification; }); -/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9); -/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52); -/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(53); -/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */ + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); -var Notification = /*@__PURE__*/ (function () { - function Notification(kind, value, error) { - this.kind = kind; - this.value = value; - this.error = error; - this.hasValue = kind === 'N'; - } - Notification.prototype.observe = function (observer) { - switch (this.kind) { - case 'N': - return observer.next && observer.next(this.value); - case 'E': - return observer.error && observer.error(this.error); - case 'C': - return observer.complete && observer.complete(); - } - }; - Notification.prototype.do = function (next, error, complete) { - var kind = this.kind; - switch (kind) { - case 'N': - return next && next(this.value); - case 'E': - return error && error(this.error); - case 'C': - return complete && complete(); - } - }; - Notification.prototype.accept = function (nextOrObserver, error, complete) { - if (nextOrObserver && typeof nextOrObserver.next === 'function') { - return this.observe(nextOrObserver); - } - else { - return this.do(nextOrObserver, error, complete); - } - }; - Notification.prototype.toObservable = function () { - var kind = this.kind; - switch (kind) { - case 'N': - return Object(_observable_of__WEBPACK_IMPORTED_MODULE_1__[/* of */ "a"])(this.value); - case 'E': - return Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_2__[/* throwError */ "a"])(this.error); - case 'C': - return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_0__[/* empty */ "b"])(); - } - throw new Error('unexpected notification kind value'); - }; - Notification.createNext = function (value) { - if (typeof value !== 'undefined') { - return new Notification('N', value); - } - return Notification.undefinedValueNotification; - }; - Notification.createError = function (err) { - return new Notification('E', undefined, err); - }; - Notification.createComplete = function () { - return Notification.completeNotification; - }; - Notification.completeNotification = new Notification('C'); - Notification.undefinedValueNotification = new Notification('N', undefined); - return Notification; -}()); + return [l, a, b]; +}; -//# sourceMappingURL=Notification.js.map +convert.hsl.rgb = function (hsl) { + var h = hsl[0] / 360; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var t1; + var t2; + var t3; + var rgb; + var val; + if (s === 0) { + val = l * 255; + return [val, val, val]; + } -/***/ }), -/* 25 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } -"use strict"; -/* unused harmony export getSymbolIterator */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return iterator; }); -/* unused harmony export $$iterator */ -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function getSymbolIterator() { - if (typeof Symbol !== 'function' || !Symbol.iterator) { - return '@@iterator'; - } - return Symbol.iterator; -} -var iterator = /*@__PURE__*/ getSymbolIterator(); -var $$iterator = iterator; -//# sourceMappingURL=iterator.js.map + t1 = 2 * l - t2; + rgb = [0, 0, 0]; + for (var i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } + if (t3 > 1) { + t3--; + } -/***/ }), -/* 26 */ -/***/ (function(module, exports, __webpack_require__) { + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } -"use strict"; + rgb[i] = val * 255; + } -const escapeStringRegexp = __webpack_require__(163); -const ansiStyles = __webpack_require__(164); -const stdoutColor = __webpack_require__(168).stdout; + return rgb; +}; -const template = __webpack_require__(170); +convert.hsl.hsv = function (hsl) { + var h = hsl[0]; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var smin = s; + var lmin = Math.max(l, 0.01); + var sv; + var v; -const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); + l *= 2; + s *= (l <= 1) ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + v = (l + s) / 2; + sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); -// `supportsColor.level` → `ansiStyles.color[name]` mapping -const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; + return [h, sv * 100, v * 100]; +}; -// `color-convert` models to exclude from the Chalk API due to conflicts and such -const skipModels = new Set(['gray']); +convert.hsv.rgb = function (hsv) { + var h = hsv[0] / 60; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var hi = Math.floor(h) % 6; -const styles = Object.create(null); + var f = h - Math.floor(h); + var p = 255 * v * (1 - s); + var q = 255 * v * (1 - (s * f)); + var t = 255 * v * (1 - (s * (1 - f))); + v *= 255; -function applyOptions(obj, options) { - options = options || {}; + switch (hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } +}; - // Detect level if not set manually - const scLevel = stdoutColor ? stdoutColor.level : 0; - obj.level = options.level === undefined ? scLevel : options.level; - obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0; -} +convert.hsv.hsl = function (hsv) { + var h = hsv[0]; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var vmin = Math.max(v, 0.01); + var lmin; + var sl; + var l; -function Chalk(options) { - // We check for this.template here since calling `chalk.constructor()` - // by itself will have a `this` of a previously constructed chalk object - if (!this || !(this instanceof Chalk) || this.template) { - const chalk = {}; - applyOptions(chalk, options); + l = (2 - s) * v; + lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= (lmin <= 1) ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; - chalk.template = function () { - const args = [].slice.call(arguments); - return chalkTag.apply(null, [chalk.template].concat(args)); - }; + return [h, sl * 100, l * 100]; +}; - Object.setPrototypeOf(chalk, Chalk.prototype); - Object.setPrototypeOf(chalk.template, chalk); +// http://dev.w3.org/csswg/css-color/#hwb-to-rgb +convert.hwb.rgb = function (hwb) { + var h = hwb[0] / 360; + var wh = hwb[1] / 100; + var bl = hwb[2] / 100; + var ratio = wh + bl; + var i; + var v; + var f; + var n; - chalk.template.constructor = Chalk; + // wh + bl cant be > 1 + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } - return chalk.template; + i = Math.floor(6 * h); + v = 1 - bl; + f = 6 * h - i; + + if ((i & 0x01) !== 0) { + f = 1 - f; } - applyOptions(this, options); -} + n = wh + f * (v - wh); // linear interpolation -// Use bright blue on Windows as the normal blue color is illegible -if (isSimpleWindowsTerm) { - ansiStyles.blue.open = '\u001B[94m'; -} + var r; + var g; + var b; + switch (i) { + default: + case 6: + case 0: r = v; g = n; b = wh; break; + case 1: r = n; g = v; b = wh; break; + case 2: r = wh; g = v; b = n; break; + case 3: r = wh; g = n; b = v; break; + case 4: r = n; g = wh; b = v; break; + case 5: r = v; g = wh; b = n; break; + } -for (const key of Object.keys(ansiStyles)) { - ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); + return [r * 255, g * 255, b * 255]; +}; - styles[key] = { - get() { - const codes = ansiStyles[key]; - return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); - } - }; -} +convert.cmyk.rgb = function (cmyk) { + var c = cmyk[0] / 100; + var m = cmyk[1] / 100; + var y = cmyk[2] / 100; + var k = cmyk[3] / 100; + var r; + var g; + var b; -styles.visible = { - get() { - return build.call(this, this._styles || [], true, 'visible'); - } + r = 1 - Math.min(1, c * (1 - k) + k); + g = 1 - Math.min(1, m * (1 - k) + k); + b = 1 - Math.min(1, y * (1 - k) + k); + + return [r * 255, g * 255, b * 255]; }; -ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g'); -for (const model of Object.keys(ansiStyles.color.ansi)) { - if (skipModels.has(model)) { - continue; - } +convert.xyz.rgb = function (xyz) { + var x = xyz[0] / 100; + var y = xyz[1] / 100; + var z = xyz[2] / 100; + var r; + var g; + var b; - styles[model] = { - get() { - const level = this.level; - return function () { - const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments); - const codes = { - open, - close: ansiStyles.color.close, - closeRe: ansiStyles.color.closeRe - }; - return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); - }; - } - }; -} + r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); + g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); + b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); -ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g'); -for (const model of Object.keys(ansiStyles.bgColor.ansi)) { - if (skipModels.has(model)) { - continue; - } + // assume sRGB + r = r > 0.0031308 + ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055) + : r * 12.92; - const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); - styles[bgModel] = { - get() { - const level = this.level; - return function () { - const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments); - const codes = { - open, - close: ansiStyles.bgColor.close, - closeRe: ansiStyles.bgColor.closeRe - }; - return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); - }; - } - }; -} + g = g > 0.0031308 + ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055) + : g * 12.92; -const proto = Object.defineProperties(() => {}, styles); + b = b > 0.0031308 + ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055) + : b * 12.92; -function build(_styles, _empty, key) { - const builder = function () { - return applyStyle.apply(builder, arguments); - }; + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); - builder._styles = _styles; - builder._empty = _empty; + return [r * 255, g * 255, b * 255]; +}; - const self = this; +convert.xyz.lab = function (xyz) { + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; - Object.defineProperty(builder, 'level', { - enumerable: true, - get() { - return self.level; - }, - set(level) { - self.level = level; - } - }); + x /= 95.047; + y /= 100; + z /= 108.883; - Object.defineProperty(builder, 'enabled', { - enumerable: true, - get() { - return self.enabled; - }, - set(enabled) { - self.enabled = enabled; - } - }); + x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); - // See below for fix regarding invisible grey/dim combination on Windows - builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey'; + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); - // `__proto__` is used because we must return a function, but there is - // no way to create a function with a different prototype - builder.__proto__ = proto; // eslint-disable-line no-proto + return [l, a, b]; +}; - return builder; -} +convert.lab.xyz = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var x; + var y; + var z; -function applyStyle() { - // Support varags, but simply cast to string in case there's only one arg - const args = arguments; - const argsLen = args.length; - let str = String(arguments[0]); + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; - if (argsLen === 0) { - return ''; - } + var y2 = Math.pow(y, 3); + var x2 = Math.pow(x, 3); + var z2 = Math.pow(z, 3); + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; - if (argsLen > 1) { - // Don't slice `arguments`, it prevents V8 optimizations - for (let a = 1; a < argsLen; a++) { - str += ' ' + args[a]; - } - } + x *= 95.047; + y *= 100; + z *= 108.883; - if (!this.enabled || this.level <= 0 || !str) { - return this._empty ? '' : str; - } + return [x, y, z]; +}; - // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe, - // see https://github.com/chalk/chalk/issues/58 - // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop. - const originalDim = ansiStyles.dim.open; - if (isSimpleWindowsTerm && this.hasGrey) { - ansiStyles.dim.open = ''; - } +convert.lab.lch = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var hr; + var h; + var c; - for (const code of this._styles.slice().reverse()) { - // Replace any instances already present with a re-opening code - // otherwise only the part of the string until said closing code - // will be colored, and the rest will simply be 'plain'. - str = code.open + str.replace(code.closeRe, code.open) + code.close; + hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; - // Close the styling before a linebreak and reopen - // after next line to fix a bleed issue on macOS - // https://github.com/chalk/chalk/pull/92 - str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`); + if (h < 0) { + h += 360; } - // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue - ansiStyles.dim.open = originalDim; + c = Math.sqrt(a * a + b * b); - return str; -} + return [l, c, h]; +}; -function chalkTag(chalk, strings) { - if (!Array.isArray(strings)) { - // If chalk() was called by itself or with a string, - // return the string itself as a string. - return [].slice.call(arguments, 1).join(' '); +convert.lch.lab = function (lch) { + var l = lch[0]; + var c = lch[1]; + var h = lch[2]; + var a; + var b; + var hr; + + hr = h / 360 * 2 * Math.PI; + a = c * Math.cos(hr); + b = c * Math.sin(hr); + + return [l, a, b]; +}; + +convert.rgb.ansi16 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization + + value = Math.round(value / 50); + + if (value === 0) { + return 30; } - const args = [].slice.call(arguments, 2); - const parts = [strings.raw[0]]; + var ansi = 30 + + ((Math.round(b / 255) << 2) + | (Math.round(g / 255) << 1) + | Math.round(r / 255)); - for (let i = 1; i < strings.length; i++) { - parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&')); - parts.push(String(strings.raw[i])); + if (value === 2) { + ansi += 60; } - return template(chalk, parts.join('')); -} + return ansi; +}; -Object.defineProperties(Chalk.prototype, styles); +convert.hsv.ansi16 = function (args) { + // optimization here; we already know the value and don't need to get + // it converted for us. + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); +}; -module.exports = Chalk(); // eslint-disable-line new-cap -module.exports.supportsColor = stdoutColor; -module.exports.default = module.exports; // For TypeScript +convert.rgb.ansi256 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + // we use the extended greyscale palette here, with the exception of + // black and white. normal palette only has 4 greyscale shades. + if (r === g && g === b) { + if (r < 8) { + return 16; + } -/***/ }), -/* 27 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + if (r > 248) { + return 231; + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return observable; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var observable = typeof Symbol === 'function' && Symbol.observable || '@@observable'; -//# sourceMappingURL=observable.js.map + return Math.round(((r - 8) / 247) * 24) + 232; + } + var ansi = 16 + + (36 * Math.round(r / 255 * 5)) + + (6 * Math.round(g / 255 * 5)) + + Math.round(b / 255 * 5); -/***/ }), -/* 28 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + return ansi; +}; -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ObjectUnsubscribedError; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/** PURE_IMPORTS_START tslib PURE_IMPORTS_END */ +convert.ansi16.rgb = function (args) { + var color = args % 10; -var ObjectUnsubscribedError = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](ObjectUnsubscribedError, _super); - function ObjectUnsubscribedError() { - var _this = _super.call(this, 'object unsubscribed') || this; - _this.name = 'ObjectUnsubscribedError'; - Object.setPrototypeOf(_this, ObjectUnsubscribedError.prototype); - return _this; - } - return ObjectUnsubscribedError; -}(Error)); + // handle greyscale + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } -//# sourceMappingURL=ObjectUnsubscribedError.js.map + color = color / 10.5 * 255; + return [color, color, color]; + } -/***/ }), -/* 29 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + var mult = (~~(args > 50) + 1) * 0.5; + var r = ((color & 1) * mult) * 255; + var g = (((color >> 1) & 1) * mult) * 255; + var b = (((color >> 2) & 1) * mult) * 255; -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return concat; }); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); -/* harmony import */ var _of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52); -/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17); -/* harmony import */ var _operators_concatAll__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84); -/** PURE_IMPORTS_START _util_isScheduler,_of,_from,_operators_concatAll PURE_IMPORTS_END */ + return [r, g, b]; +}; +convert.ansi256.rgb = function (args) { + // handle greyscale + if (args >= 232) { + var c = (args - 232) * 10 + 8; + return [c, c, c]; + } + args -= 16; + var rem; + var r = Math.floor(args / 36) / 5 * 255; + var g = Math.floor((rem = args % 36) / 6) / 5 * 255; + var b = (rem % 6) / 5 * 255; -function concat() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - if (observables.length === 1 || (observables.length === 2 && Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_0__[/* isScheduler */ "a"])(observables[1]))) { - return Object(_from__WEBPACK_IMPORTED_MODULE_2__[/* from */ "a"])(observables[0]); - } - return Object(_operators_concatAll__WEBPACK_IMPORTED_MODULE_3__[/* concatAll */ "a"])()(_of__WEBPACK_IMPORTED_MODULE_1__[/* of */ "a"].apply(void 0, observables)); -} -//# sourceMappingURL=concat.js.map + return [r, g, b]; +}; +convert.rgb.hex = function (args) { + var integer = ((Math.round(args[0]) & 0xFF) << 16) + + ((Math.round(args[1]) & 0xFF) << 8) + + (Math.round(args[2]) & 0xFF); -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; -"use strict"; -/*! - * isobject - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ +convert.hex.rgb = function (args) { + var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + if (!match) { + return [0, 0, 0]; + } + var colorString = match[0]; + if (match[0].length === 3) { + colorString = colorString.split('').map(function (char) { + return char + char; + }).join(''); + } -module.exports = function isObject(val) { - return val != null && typeof val === 'object' && Array.isArray(val) === false; + var integer = parseInt(colorString, 16); + var r = (integer >> 16) & 0xFF; + var g = (integer >> 8) & 0xFF; + var b = integer & 0xFF; + + return [r, g, b]; }; +convert.rgb.hcg = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var max = Math.max(Math.max(r, g), b); + var min = Math.min(Math.min(r, g), b); + var chroma = (max - min); + var grayscale; + var hue; -/***/ }), -/* 31 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return mergeMap; }); -/* unused harmony export MergeMapOperator */ -/* unused harmony export MergeMapSubscriber */ -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); -/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15); -/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17); -/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_map,_observable_from PURE_IMPORTS_END */ + if (chroma <= 0) { + hue = 0; + } else + if (max === r) { + hue = ((g - b) / chroma) % 6; + } else + if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma + 4; + } + hue /= 6; + hue %= 1; + return [hue * 360, chroma * 100, grayscale * 100]; +}; +convert.hsl.hcg = function (hsl) { + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var c = 1; + var f = 0; + if (l < 0.5) { + c = 2.0 * s * l; + } else { + c = 2.0 * s * (1.0 - l); + } -function mergeMap(project, resultSelector, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - if (typeof resultSelector === 'function') { - return function (source) { return source.pipe(mergeMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_4__[/* from */ "a"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_3__[/* map */ "a"])(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); }; - } - else if (typeof resultSelector === 'number') { - concurrent = resultSelector; - } - return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); }; -} -var MergeMapOperator = /*@__PURE__*/ (function () { - function MergeMapOperator(project, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - this.project = project; - this.concurrent = concurrent; - } - MergeMapOperator.prototype.call = function (observer, source) { - return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent)); - }; - return MergeMapOperator; -}()); - -var MergeMapSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](MergeMapSubscriber, _super); - function MergeMapSubscriber(destination, project, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - var _this = _super.call(this, destination) || this; - _this.project = project; - _this.concurrent = concurrent; - _this.hasCompleted = false; - _this.buffer = []; - _this.active = 0; - _this.index = 0; - return _this; - } - MergeMapSubscriber.prototype._next = function (value) { - if (this.active < this.concurrent) { - this._tryNext(value); - } - else { - this.buffer.push(value); - } - }; - MergeMapSubscriber.prototype._tryNext = function (value) { - var result; - var index = this.index++; - try { - result = this.project(value, index); - } - catch (err) { - this.destination.error(err); - return; - } - this.active++; - this._innerSub(result, value, index); - }; - MergeMapSubscriber.prototype._innerSub = function (ish, value, index) { - this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__[/* subscribeToResult */ "a"])(this, ish, value, index)); - }; - MergeMapSubscriber.prototype._complete = function () { - this.hasCompleted = true; - if (this.active === 0 && this.buffer.length === 0) { - this.destination.complete(); - } - }; - MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(innerValue); - }; - MergeMapSubscriber.prototype.notifyComplete = function (innerSub) { - var buffer = this.buffer; - this.remove(innerSub); - this.active--; - if (buffer.length > 0) { - this._next(buffer.shift()); - } - else if (this.active === 0 && this.hasCompleted) { - this.destination.complete(); - } - }; - return MergeMapSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[/* OuterSubscriber */ "a"])); - -//# sourceMappingURL=mergeMap.js.map - - -/***/ }), -/* 32 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ArgumentOutOfRangeError; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/** PURE_IMPORTS_START tslib PURE_IMPORTS_END */ - -var ArgumentOutOfRangeError = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](ArgumentOutOfRangeError, _super); - function ArgumentOutOfRangeError() { - var _this = _super.call(this, 'argument out of range') || this; - _this.name = 'ArgumentOutOfRangeError'; - Object.setPrototypeOf(_this, ArgumentOutOfRangeError.prototype); - return _this; - } - return ArgumentOutOfRangeError; -}(Error)); - -//# sourceMappingURL=ArgumentOutOfRangeError.js.map - - -/***/ }), -/* 33 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isFunction; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function isFunction(x) { - return typeof x === 'function'; -} -//# sourceMappingURL=isFunction.js.map - - -/***/ }), -/* 34 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EmptyError; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/** PURE_IMPORTS_START tslib PURE_IMPORTS_END */ - -var EmptyError = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](EmptyError, _super); - function EmptyError() { - var _this = _super.call(this, 'no elements in sequence') || this; - _this.name = 'EmptyError'; - Object.setPrototypeOf(_this, EmptyError.prototype); - return _this; - } - return EmptyError; -}(Error)); + if (c < 1.0) { + f = (l - 0.5 * c) / (1.0 - c); + } -//# sourceMappingURL=EmptyError.js.map + return [hsl[0], c * 100, f * 100]; +}; +convert.hsv.hcg = function (hsv) { + var s = hsv[1] / 100; + var v = hsv[2] / 100; -/***/ }), -/* 35 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + var c = s * v; + var f = 0; -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AsyncScheduler; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _Scheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69); -/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */ + if (c < 1.0) { + f = (v - c) / (1 - c); + } + return [hsv[0], c * 100, f * 100]; +}; -var AsyncScheduler = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](AsyncScheduler, _super); - function AsyncScheduler(SchedulerAction, now) { - if (now === void 0) { - now = _Scheduler__WEBPACK_IMPORTED_MODULE_1__[/* Scheduler */ "a"].now; - } - var _this = _super.call(this, SchedulerAction, function () { - if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) { - return AsyncScheduler.delegate.now(); - } - else { - return now(); - } - }) || this; - _this.actions = []; - _this.active = false; - _this.scheduled = undefined; - return _this; - } - AsyncScheduler.prototype.schedule = function (work, delay, state) { - if (delay === void 0) { - delay = 0; - } - if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { - return AsyncScheduler.delegate.schedule(work, delay, state); - } - else { - return _super.prototype.schedule.call(this, work, delay, state); - } - }; - AsyncScheduler.prototype.flush = function (action) { - var actions = this.actions; - if (this.active) { - actions.push(action); - return; - } - var error; - this.active = true; - do { - if (error = action.execute(action.state, action.delay)) { - break; - } - } while (action = actions.shift()); - this.active = false; - if (error) { - while (action = actions.shift()) { - action.unsubscribe(); - } - throw error; - } - }; - return AsyncScheduler; -}(_Scheduler__WEBPACK_IMPORTED_MODULE_1__[/* Scheduler */ "a"])); +convert.hcg.rgb = function (hcg) { + var h = hcg[0] / 360; + var c = hcg[1] / 100; + var g = hcg[2] / 100; -//# sourceMappingURL=AsyncScheduler.js.map + if (c === 0.0) { + return [g * 255, g * 255, g * 255]; + } + var pure = [0, 0, 0]; + var hi = (h % 1) * 6; + var v = hi % 1; + var w = 1 - v; + var mg = 0; -/***/ }), -/* 36 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; pure[1] = v; pure[2] = 0; break; + case 1: + pure[0] = w; pure[1] = 1; pure[2] = 0; break; + case 2: + pure[0] = 0; pure[1] = 1; pure[2] = v; break; + case 3: + pure[0] = 0; pure[1] = w; pure[2] = 1; break; + case 4: + pure[0] = v; pure[1] = 0; pure[2] = 1; break; + default: + pure[0] = 1; pure[1] = 0; pure[2] = w; + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AsyncSubject; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6); -/** PURE_IMPORTS_START tslib,_Subject,_Subscription PURE_IMPORTS_END */ + mg = (1.0 - c) * g; + return [ + (c * pure[0] + mg) * 255, + (c * pure[1] + mg) * 255, + (c * pure[2] + mg) * 255 + ]; +}; +convert.hcg.hsv = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; -var AsyncSubject = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](AsyncSubject, _super); - function AsyncSubject() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.value = null; - _this.hasNext = false; - _this.hasCompleted = false; - return _this; - } - AsyncSubject.prototype._subscribe = function (subscriber) { - if (this.hasError) { - subscriber.error(this.thrownError); - return _Subscription__WEBPACK_IMPORTED_MODULE_2__[/* Subscription */ "a"].EMPTY; - } - else if (this.hasCompleted && this.hasNext) { - subscriber.next(this.value); - subscriber.complete(); - return _Subscription__WEBPACK_IMPORTED_MODULE_2__[/* Subscription */ "a"].EMPTY; - } - return _super.prototype._subscribe.call(this, subscriber); - }; - AsyncSubject.prototype.next = function (value) { - if (!this.hasCompleted) { - this.value = value; - this.hasNext = true; - } - }; - AsyncSubject.prototype.error = function (error) { - if (!this.hasCompleted) { - _super.prototype.error.call(this, error); - } - }; - AsyncSubject.prototype.complete = function () { - this.hasCompleted = true; - if (this.hasNext) { - _super.prototype.next.call(this, this.value); - } - _super.prototype.complete.call(this); - }; - return AsyncSubject; -}(_Subject__WEBPACK_IMPORTED_MODULE_1__[/* Subject */ "a"])); + var v = c + g * (1.0 - c); + var f = 0; -//# sourceMappingURL=AsyncSubject.js.map + if (v > 0.0) { + f = c / v; + } + return [hcg[0], f * 100, v * 100]; +}; -/***/ }), -/* 37 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +convert.hcg.hsl = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; -"use strict"; + var l = g * (1.0 - c) + 0.5 * c; + var s = 0; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/tslib/tslib.es6.js -var tslib_es6 = __webpack_require__(0); + if (l > 0.0 && l < 0.5) { + s = c / (2 * l); + } else + if (l >= 0.5 && l < 1.0) { + s = c / (2 * (1 - l)); + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Subscription.js -var Subscription = __webpack_require__(6); + return [hcg[0], s * 100, l * 100]; +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/Action.js -/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */ +convert.hcg.hwb = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1.0 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; +}; +convert.hwb.hcg = function (hwb) { + var w = hwb[1] / 100; + var b = hwb[2] / 100; + var v = 1 - b; + var c = v - w; + var g = 0; -var Action_Action = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](Action, _super); - function Action(scheduler, work) { - return _super.call(this) || this; - } - Action.prototype.schedule = function (state, delay) { - if (delay === void 0) { - delay = 0; - } - return this; - }; - return Action; -}(Subscription["a" /* Subscription */])); + if (c < 1) { + g = (v - c) / (1 - c); + } -//# sourceMappingURL=Action.js.map + return [hwb[0], c * 100, g * 100]; +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AsyncAction_AsyncAction; }); -/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */ +convert.apple.rgb = function (apple) { + return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; +}; +convert.rgb.apple = function (rgb) { + return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; +}; -var AsyncAction_AsyncAction = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](AsyncAction, _super); - function AsyncAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - _this.pending = false; - return _this; - } - AsyncAction.prototype.schedule = function (state, delay) { - if (delay === void 0) { - delay = 0; - } - if (this.closed) { - return this; - } - this.state = state; - var id = this.id; - var scheduler = this.scheduler; - if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, delay); - } - this.pending = true; - this.delay = delay; - this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); - return this; - }; - AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - return setInterval(scheduler.flush.bind(scheduler, this), delay); - }; - AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - if (delay !== null && this.delay === delay && this.pending === false) { - return id; - } - return clearInterval(id) && undefined || undefined; - }; - AsyncAction.prototype.execute = function (state, delay) { - if (this.closed) { - return new Error('executing a cancelled action'); - } - this.pending = false; - var error = this._execute(state, delay); - if (error) { - return error; - } - else if (this.pending === false && this.id != null) { - this.id = this.recycleAsyncId(this.scheduler, this.id, null); - } - }; - AsyncAction.prototype._execute = function (state, delay) { - var errored = false; - var errorValue = undefined; - try { - this.work(state); - } - catch (e) { - errored = true; - errorValue = !!e && e || new Error(e); - } - if (errored) { - this.unsubscribe(); - return errorValue; - } - }; - AsyncAction.prototype._unsubscribe = function () { - var id = this.id; - var scheduler = this.scheduler; - var actions = scheduler.actions; - var index = actions.indexOf(this); - this.work = null; - this.state = null; - this.pending = false; - this.scheduler = null; - if (index !== -1) { - actions.splice(index, 1); - } - if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, null); - } - this.delay = null; - }; - return AsyncAction; -}(Action_Action)); +convert.gray.rgb = function (args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; +}; -//# sourceMappingURL=AsyncAction.js.map +convert.gray.hsl = convert.gray.hsv = function (args) { + return [0, 0, args[0]]; +}; +convert.gray.hwb = function (gray) { + return [0, 100, gray[0]]; +}; -/***/ }), -/* 38 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +convert.gray.cmyk = function (gray) { + return [0, 0, 0, gray[0]]; +}; -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isNumeric; }); -/* harmony import */ var _isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11); -/** PURE_IMPORTS_START _isArray PURE_IMPORTS_END */ +convert.gray.lab = function (gray) { + return [gray[0], 0, 0]; +}; -function isNumeric(val) { - return !Object(_isArray__WEBPACK_IMPORTED_MODULE_0__[/* isArray */ "a"])(val) && (val - parseFloat(val) + 1) >= 0; -} -//# sourceMappingURL=isNumeric.js.map +convert.gray.hex = function (gray) { + var val = Math.round(gray[0] / 100 * 255) & 0xFF; + var integer = (val << 16) + (val << 8) + val; + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; -/***/ }), -/* 39 */ -/***/ (function(module, exports) { +convert.rgb.gray = function (rgb) { + var val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; +}; -module.exports = require("stream"); /***/ }), -/* 40 */ +/* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -const log = exports.log = { - /** - * Log something to the console. Ideally we would use a real logger in - * kbn-pm, but that's a pretty big change for now. - * @param ...args - */ - write(...args) { - // tslint:disable no-console - console.log(...args); - } -}; - -/***/ }), -/* 41 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return hostReportError; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function hostReportError(err) { - setTimeout(function () { throw err; }); -} -//# sourceMappingURL=hostReportError.js.map - - -/***/ }), -/* 42 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return rxSubscriber; }); -/* unused harmony export $$rxSubscriber */ -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') - ? /*@__PURE__*/ Symbol.for('rxSubscriber') - : '@@rxSubscriber'; -var $$rxSubscriber = rxSubscriber; -//# sourceMappingURL=rxSubscriber.js.map + + +module.exports = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] +}; /***/ }), -/* 43 */ +/* 9 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; - - -var define = __webpack_require__(307); -var extend = __webpack_require__(20); -var not = __webpack_require__(64); -var MAX_LENGTH = 1024 * 64; - -/** - * Session cache - */ +var conversions = __webpack_require__(7); -var cache = {}; +/* + this function routes a model to all other models. -/** - * Create a regular expression from the given `pattern` string. - * - * @param {String|RegExp} `pattern` Pattern can be a string or regular expression. - * @param {Object} `options` - * @return {RegExp} - * @api public - */ + all functions that are routed have a property `.conversion` attached + to the returned synthetic function. This property is an array + of strings, each with the steps in between the 'from' and 'to' + color models (inclusive). -module.exports = function(patterns, options) { - if (!Array.isArray(patterns)) { - return makeRe(patterns, options); - } - return makeRe(patterns.join('|'), options); -}; + conversions that are not possible simply are not included. +*/ -/** - * Create a regular expression from the given `pattern` string. - * - * @param {String|RegExp} `pattern` Pattern can be a string or regular expression. - * @param {Object} `options` - * @return {RegExp} - * @api public - */ +function buildGraph() { + var graph = {}; + // https://jsperf.com/object-keys-vs-for-in-with-closure/3 + var models = Object.keys(conversions); -function makeRe(pattern, options) { - if (pattern instanceof RegExp) { - return pattern; - } + for (var len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } - if (typeof pattern !== 'string') { - throw new TypeError('expected a string'); - } + return graph; +} - if (pattern.length > MAX_LENGTH) { - throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters'); - } +// https://en.wikipedia.org/wiki/Breadth-first_search +function deriveBFS(fromModel) { + var graph = buildGraph(); + var queue = [fromModel]; // unshift -> queue -> pop - var key = pattern; - // do this before shallow cloning options, it's a lot faster - if (!options || (options && options.cache !== false)) { - key = createKey(pattern, options); + graph[fromModel].distance = 0; - if (cache.hasOwnProperty(key)) { - return cache[key]; - } - } + while (queue.length) { + var current = queue.pop(); + var adjacents = Object.keys(conversions[current]); - var opts = extend({}, options); - if (opts.contains === true) { - if (opts.negate === true) { - opts.strictNegate = false; - } else { - opts.strict = false; - } - } + for (var len = adjacents.length, i = 0; i < len; i++) { + var adjacent = adjacents[i]; + var node = graph[adjacent]; - if (opts.strict === false) { - opts.strictOpen = false; - opts.strictClose = false; - } + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } - var open = opts.strictOpen !== false ? '^' : ''; - var close = opts.strictClose !== false ? '$' : ''; - var flags = opts.flags || ''; - var regex; + return graph; +} - if (opts.nocase === true && !/i/.test(flags)) { - flags += 'i'; - } +function link(from, to) { + return function (args) { + return to(from(args)); + }; +} - try { - if (opts.negate || typeof opts.strictNegate === 'boolean') { - pattern = not.create(pattern, opts); - } - var str = open + '(?:' + pattern + ')' + close; - regex = new RegExp(str, flags); - } catch (err) { - if (opts.strictErrors === true) { - err.key = key; - err.pattern = pattern; - err.originalOptions = options; - err.createdOptions = opts; - throw err; - } +function wrapConversion(toModel, graph) { + var path = [graph[toModel].parent, toModel]; + var fn = conversions[graph[toModel].parent][toModel]; - try { - regex = new RegExp('^' + pattern.replace(/(\W)/g, '\\$1') + '$'); - } catch (err) { - regex = /.^/; //<= match nothing - } - } + var cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link(conversions[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } - if (opts.cache !== false) { - cacheRegex(regex, key, pattern, opts); - } - return regex; + fn.conversion = path; + return fn; } -/** - * Cache generated regex. This can result in dramatic speed improvements - * and simplify debugging by adding options and pattern to the regex. It can be - * disabled by passing setting `options.cache` to false. - */ +module.exports = function (fromModel) { + var graph = deriveBFS(fromModel); + var conversion = {}; -function cacheRegex(regex, key, pattern, options) { - define(regex, 'cached', true); - define(regex, 'pattern', pattern); - define(regex, 'options', options); - define(regex, 'key', key); - cache[key] = regex; -} + var models = Object.keys(graph); + for (var len = models.length, i = 0; i < len; i++) { + var toModel = models[i]; + var node = graph[toModel]; -/** - * Create the key to use for memoization. The key is generated - * by iterating over the options and concatenating key-value pairs - * to the pattern string. - */ + if (node.parent === null) { + // no possible conversion, or this node is the source model. + continue; + } -function createKey(pattern, options) { - if (!options) return pattern; - var key = pattern; - for (var prop in options) { - if (options.hasOwnProperty(prop)) { - key += ';' + prop + '=' + String(options[prop]); - } - } - return key; -} + conversion[toModel] = wrapConversion(toModel, graph); + } -/** - * Expose `makeRe` - */ + return conversion; +}; -module.exports.makeRe = makeRe; /***/ }), -/* 44 */ +/* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/*! - * define-property - * - * Copyright (c) 2015, 2017, Jon Schlinkert. - * Released under the MIT License. - */ +const os = __webpack_require__(11); +const hasFlag = __webpack_require__(12); +const env = process.env; -var isDescriptor = __webpack_require__(314); +let forceColor; +if (hasFlag('no-color') || + hasFlag('no-colors') || + hasFlag('color=false')) { + forceColor = false; +} else if (hasFlag('color') || + hasFlag('colors') || + hasFlag('color=true') || + hasFlag('color=always')) { + forceColor = true; +} +if ('FORCE_COLOR' in env) { + forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; +} -module.exports = function defineProperty(obj, prop, val) { - if (typeof obj !== 'object' && typeof obj !== 'function') { - throw new TypeError('expected an object or function.'); - } +function translateLevel(level) { + if (level === 0) { + return false; + } - if (typeof prop !== 'string') { - throw new TypeError('expected `prop` to be a string.'); - } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} - if (isDescriptor(val) && ('set' in val || 'get' in val)) { - return Object.defineProperty(obj, prop, val); - } +function supportsColor(stream) { + if (forceColor === false) { + return 0; + } - return Object.defineProperty(obj, prop, { - configurable: true, - enumerable: false, - writable: true, - value: val - }); -}; + if (hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor')) { + return 3; + } + if (hasFlag('color=256')) { + return 2; + } -/***/ }), -/* 45 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + if (stream && !stream.isTTY && forceColor !== true) { + // VS code debugger doesn't have isTTY set + if (env.VSCODE_PID) { + return 1; + } + return 0; + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return pipe; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return pipeFromArray; }); -/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21); -/** PURE_IMPORTS_START _noop PURE_IMPORTS_END */ + const min = forceColor ? 1 : 0; -function pipe() { - var fns = []; - for (var _i = 0; _i < arguments.length; _i++) { - fns[_i] = arguments[_i]; - } - return pipeFromArray(fns); -} -function pipeFromArray(fns) { - if (!fns) { - return _noop__WEBPACK_IMPORTED_MODULE_0__[/* noop */ "a"]; - } - if (fns.length === 1) { - return fns[0]; - } - return function piped(input) { - return fns.reduce(function (prev, fn) { return fn(prev); }, input); - }; -} -//# sourceMappingURL=pipe.js.map + if (process.platform === 'win32') { + // Node.js 7.5.0 is the first version of Node.js to include a patch to + // libuv that enables 256 color output on Windows. Anything earlier and it + // won't work. However, here we target Node.js 8 at minimum as it is an LTS + // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows + // release that supports 256 colors. Windows 10 build 14931 is the first release + // that supports 16m/TrueColor. + const osRelease = os.release().split('.'); + if ( + Number(process.versions.node.split('.')[0]) >= 8 && + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + return 1; + } -/***/ }), -/* 46 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return UnsubscriptionError; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/** PURE_IMPORTS_START tslib PURE_IMPORTS_END */ + return min; + } -var UnsubscriptionError = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](UnsubscriptionError, _super); - function UnsubscriptionError(errors) { - var _this = _super.call(this, errors ? - errors.length + " errors occurred during unsubscription:\n " + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n ') : '') || this; - _this.errors = errors; - _this.name = 'UnsubscriptionError'; - Object.setPrototypeOf(_this, UnsubscriptionError.prototype); - return _this; - } - return UnsubscriptionError; -}(Error)); + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } -//# sourceMappingURL=UnsubscriptionError.js.map + if (env.COLORTERM === 'truecolor') { + return 3; + } + if ('TERM_PROGRAM' in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } -"use strict"; + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getProjects = undefined; + if ('COLORTERM' in env) { + return 1; + } -let getProjects = exports.getProjects = (() => { - var _ref = _asyncToGenerator(function* (rootPath, projectsPathsPatterns, { include = [], exclude = [] } = {}) { - const projects = new Map(); - const workspaceProjectsPaths = yield (0, _workspaces.workspacePackagePaths)(rootPath); - for (const pattern of projectsPathsPatterns) { - const pathsToProcess = yield packagesFromGlobPattern({ pattern, rootPath }); - for (const filePath of pathsToProcess) { - const projectConfigPath = normalize(filePath); - const projectDir = _path2.default.dirname(projectConfigPath); - const project = yield _project.Project.fromPath(projectDir); - if (workspaceProjectsPaths.indexOf(filePath) >= 0) { - project.isWorkspaceProject = true; - } - const excludeProject = exclude.includes(project.name) || include.length > 0 && !include.includes(project.name); - if (excludeProject) { - continue; - } - if (projects.has(project.name)) { - throw new _errors.CliError(`There are multiple projects with the same name [${project.name}]`, { - name: project.name, - paths: [project.path, projects.get(project.name).path] - }); - } - projects.set(project.name, project); - } - } - return projects; - }); + if (env.TERM === 'dumb') { + return min; + } - return function getProjects(_x, _x2) { - return _ref.apply(this, arguments); - }; -})(); + return min; +} -exports.buildProjectGraph = buildProjectGraph; -exports.topologicallyBatchProjects = topologicallyBatchProjects; -exports.includeTransitiveProjects = includeTransitiveProjects; +function getSupportLevel(stream) { + const level = supportsColor(stream); + return translateLevel(level); +} -var _glob = __webpack_require__(48); +module.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) +}; -var _glob2 = _interopRequireDefault(_glob); -var _path = __webpack_require__(5); +/***/ }), +/* 11 */ +/***/ (function(module, exports) { -var _path2 = _interopRequireDefault(_path); +module.exports = require("os"); -var _util = __webpack_require__(14); +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { -var _errors = __webpack_require__(101); +"use strict"; -var _project = __webpack_require__(121); +module.exports = (flag, argv) => { + argv = argv || process.argv; + const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); + const pos = argv.indexOf(prefix + flag); + const terminatorPos = argv.indexOf('--'); + return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); +}; -var _workspaces = __webpack_require__(130); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ +"use strict"; +const TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; +const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; +const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; +const ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; -const glob = (0, _util.promisify)(_glob2.default); +const ESCAPES = new Map([ + ['n', '\n'], + ['r', '\r'], + ['t', '\t'], + ['b', '\b'], + ['f', '\f'], + ['v', '\v'], + ['0', '\0'], + ['\\', '\\'], + ['e', '\u001B'], + ['a', '\u0007'] +]); -function packagesFromGlobPattern({ pattern, rootPath }) { - const globOptions = { - cwd: rootPath, - // Should throw in case of unusual errors when reading the file system - strict: true, - // Always returns absolute paths for matched files - absolute: true, - // Do not match ** against multiple filenames - // (This is only specified because we currently don't have a need for it.) - noglobstar: true - }; - return glob(_path2.default.join(pattern, 'package.json'), globOptions); -} -// https://github.com/isaacs/node-glob/blob/master/common.js#L104 -// glob always returns "\\" as "/" in windows, so everyone -// gets normalized because we can't have nice things. -function normalize(dir) { - return _path2.default.normalize(dir); -} -function buildProjectGraph(projects) { - const projectGraph = new Map(); - for (const project of projects.values()) { - const projectDeps = []; - const dependencies = project.allDependencies; - for (const depName of Object.keys(dependencies)) { - if (projects.has(depName)) { - const dep = projects.get(depName); - const dependentProjectIsInWorkspace = project.isWorkspaceProject || project.json.name === 'kibana'; - project.ensureValidProjectDependency(dep, dependentProjectIsInWorkspace); - projectDeps.push(dep); - } - } - projectGraph.set(project.name, projectDeps); - } - return projectGraph; -} -function topologicallyBatchProjects(projectsToBatch, projectGraph, { batchByWorkspace = false } = {}) { - // We're going to be chopping stuff out of this list, so copy it. - const projectsLeftToBatch = new Set(projectsToBatch.keys()); - const batches = []; - if (batchByWorkspace) { - const workspaceRootProject = Array.from(projectsToBatch.values()).find(p => p.isWorkspaceRoot); - if (!workspaceRootProject) { - throw new _errors.CliError(`There was no yarn workspace root found.`); - } - // Push in the workspace root first. - batches.push([workspaceRootProject]); - projectsLeftToBatch.delete(workspaceRootProject.name); - // In the next batch, push in all workspace projects. - const workspaceBatch = []; - for (const projectName of projectsLeftToBatch) { - const project = projectsToBatch.get(projectName); - if (project.isWorkspaceProject) { - workspaceBatch.push(project); - projectsLeftToBatch.delete(projectName); - } - } - batches.push(workspaceBatch); - } - while (projectsLeftToBatch.size > 0) { - // Get all projects that have no remaining dependencies within the repo - // that haven't yet been picked. - const batch = []; - for (const projectName of projectsLeftToBatch) { - const projectDeps = projectGraph.get(projectName); - const needsDependenciesBatched = projectDeps.some(dep => projectsLeftToBatch.has(dep.name)); - if (!needsDependenciesBatched) { - batch.push(projectsToBatch.get(projectName)); - } - } - // If we weren't able to find a project with no remaining dependencies, - // then we've encountered a cycle in the dependency graph. - const hasCycles = batch.length === 0; - if (hasCycles) { - const cycleProjectNames = [...projectsLeftToBatch]; - const message = 'Encountered a cycle in the dependency graph. Projects in cycle are:\n' + cycleProjectNames.join(', '); - throw new _errors.CliError(message); - } - batches.push(batch); - batch.forEach(project => projectsLeftToBatch.delete(project.name)); - } - return batches; -} -function includeTransitiveProjects(subsetOfProjects, allProjects, { onlyProductionDependencies = false } = {}) { - const dependentProjects = new Map(); - // the current list of packages we are expanding using breadth-first-search - const toProcess = [...subsetOfProjects]; - while (toProcess.length > 0) { - const project = toProcess.shift(); - const dependencies = onlyProductionDependencies ? project.productionDependencies : project.allDependencies; - Object.keys(dependencies).forEach(dep => { - if (allProjects.has(dep)) { - toProcess.push(allProjects.get(dep)); - } - }); - dependentProjects.set(project.name, project); - } - return dependentProjects; +function unescape(c) { + if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) { + return String.fromCharCode(parseInt(c.slice(1), 16)); + } + + return ESCAPES.get(c) || c; } -/***/ }), -/* 48 */ -/***/ (function(module, exports, __webpack_require__) { +function parseArguments(name, args) { + const results = []; + const chunks = args.trim().split(/\s*,\s*/g); + let matches; -// Approach: -// -// 1. Get the minimatch set -// 2. For each pattern in the set, PROCESS(pattern, false) -// 3. Store matches per-set, then uniq them -// -// PROCESS(pattern, inGlobStar) -// Get the first [n] items from pattern that are all strings -// Join these together. This is PREFIX. -// If there is no more remaining, then stat(PREFIX) and -// add to matches if it succeeds. END. -// -// If inGlobStar and PREFIX is symlink and points to dir -// set ENTRIES = [] -// else readdir(PREFIX) as ENTRIES -// If fail, END -// -// with ENTRIES -// If pattern[n] is GLOBSTAR -// // handle the case where the globstar match is empty -// // by pruning it out, and testing the resulting pattern -// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) -// // handle other cases. -// for ENTRY in ENTRIES (not dotfiles) -// // attach globstar + tail onto the entry -// // Mark that this entry is a globstar match -// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) -// -// else // not globstar -// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) -// Test ENTRY against pattern[n] -// If fails, continue -// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) -// -// Caveat: -// Cache all stats and readdirs results to minimize syscall. Since all -// we ever care about is existence and directory-ness, we can just keep -// `true` for files, and [children,...] for directories, or `false` for -// things that don't exist. + for (const chunk of chunks) { + if (!isNaN(chunk)) { + results.push(Number(chunk)); + } else if ((matches = chunk.match(STRING_REGEX))) { + results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr)); + } else { + throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); + } + } -module.exports = glob + return results; +} -var fs = __webpack_require__(13) -var rp = __webpack_require__(117) -var minimatch = __webpack_require__(99) -var Minimatch = minimatch.Minimatch -var inherits = __webpack_require__(118) -var EE = __webpack_require__(63).EventEmitter -var path = __webpack_require__(5) -var assert = __webpack_require__(62) -var isAbsolute = __webpack_require__(100) -var globSync = __webpack_require__(186) -var common = __webpack_require__(119) -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var inflight = __webpack_require__(187) -var util = __webpack_require__(14) -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored +function parseStyle(style) { + STYLE_REGEX.lastIndex = 0; -var once = __webpack_require__(71) + const results = []; + let matches; -function glob (pattern, options, cb) { - if (typeof options === 'function') cb = options, options = {} - if (!options) options = {} + while ((matches = STYLE_REGEX.exec(style)) !== null) { + const name = matches[1]; - if (options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return globSync(pattern, options) - } + if (matches[2]) { + const args = parseArguments(name, matches[2]); + results.push([name].concat(args)); + } else { + results.push([name]); + } + } - return new Glob(pattern, options, cb) + return results; } -glob.sync = globSync -var GlobSync = glob.GlobSync = globSync.GlobSync +function buildStyle(chalk, styles) { + const enabled = {}; -// old api surface -glob.glob = glob + for (const layer of styles) { + for (const style of layer.styles) { + enabled[style[0]] = layer.inverse ? null : style.slice(1); + } + } -function extend (origin, add) { - if (add === null || typeof add !== 'object') { - return origin - } + let current = chalk; + for (const styleName of Object.keys(enabled)) { + if (Array.isArray(enabled[styleName])) { + if (!(styleName in current)) { + throw new Error(`Unknown Chalk style: ${styleName}`); + } - var keys = Object.keys(add) - var i = keys.length - while (i--) { - origin[keys[i]] = add[keys[i]] - } - return origin -} + if (enabled[styleName].length > 0) { + current = current[styleName].apply(current, enabled[styleName]); + } else { + current = current[styleName]; + } + } + } -glob.hasMagic = function (pattern, options_) { - var options = extend({}, options_) - options.noprocess = true + return current; +} - var g = new Glob(pattern, options) - var set = g.minimatch.set +module.exports = (chalk, tmp) => { + const styles = []; + const chunks = []; + let chunk = []; - if (!pattern) - return false + // eslint-disable-next-line max-params + tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => { + if (escapeChar) { + chunk.push(unescape(escapeChar)); + } else if (style) { + const str = chunk.join(''); + chunk = []; + chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str)); + styles.push({inverse, styles: parseStyle(style)}); + } else if (close) { + if (styles.length === 0) { + throw new Error('Found extraneous } in Chalk template literal'); + } - if (set.length > 1) - return true + chunks.push(buildStyle(chalk, styles)(chunk.join(''))); + chunk = []; + styles.pop(); + } else { + chunk.push(chr); + } + }); - for (var j = 0; j < set[0].length; j++) { - if (typeof set[0][j] !== 'string') - return true - } + chunks.push(chunk.join('')); - return false -} + if (styles.length > 0) { + const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`; + throw new Error(errMsg); + } -glob.Glob = Glob -inherits(Glob, EE) -function Glob (pattern, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } + return chunks.join(''); +}; - if (options && options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return new GlobSync(pattern, options) - } - if (!(this instanceof Glob)) - return new Glob(pattern, options, cb) +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { - setopts(this, pattern, options) - this._didRealPath = false +"use strict"; - // process each pattern in the minimatch set - var n = this.minimatch.set.length - // The matches are stored as {: true,...} so that - // duplicates are automagically pruned. - // Later, we do an Object.keys() on these. - // Keep them as a list so we can fill in when nonull is set. - this.matches = new Array(n) +function dedent(strings) { - if (typeof cb === 'function') { - cb = once(cb) - this.on('error', cb) - this.on('end', function (matches) { - cb(null, matches) - }) + var raw = void 0; + if (typeof strings === "string") { + // dedent can be used as a plain function + raw = [strings]; + } else { + raw = strings.raw; } - var self = this - this._processing = 0 - - this._emitQueue = [] - this._processQueue = [] - this.paused = false - - if (this.noprocess) - return this + // first, perform interpolation + var result = ""; + for (var i = 0; i < raw.length; i++) { + result += raw[i]. + // join lines when there is a suppressed newline + replace(/\\\n[ \t]*/g, ""). - if (n === 0) - return done() + // handle escaped backticks + replace(/\\`/g, "`"); - var sync = true - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false, done) + if (i < (arguments.length <= 1 ? 0 : arguments.length - 1)) { + result += arguments.length <= i + 1 ? undefined : arguments[i + 1]; + } } - sync = false - function done () { - --self._processing - if (self._processing <= 0) { - if (sync) { - process.nextTick(function () { - self._finish() - }) + // now strip indentation + var lines = result.split("\n"); + var mindent = null; + lines.forEach(function (l) { + var m = l.match(/^(\s+)\S+/); + if (m) { + var indent = m[1].length; + if (!mindent) { + // this is the first indented line + mindent = indent; } else { - self._finish() + mindent = Math.min(mindent, indent); } } + }); + + if (mindent !== null) { + result = lines.map(function (l) { + return l[0] === " " ? l.slice(mindent) : l; + }).join("\n"); } -} -Glob.prototype._finish = function () { - assert(this instanceof Glob) - if (this.aborted) - return + // dedent eats leading and trailing whitespace too + result = result.trim(); - if (this.realpath && !this._didRealpath) - return this._realpath() + // handle escaped newlines at the end to ensure they don't get stripped too + return result.replace(/\\n/g, "\n"); +} - common.finish(this) - this.emit('end', this.found) +if (true) { + module.exports = dedent; } -Glob.prototype._realpath = function () { - if (this._didRealpath) - return - - this._didRealpath = true - var n = this.matches.length - if (n === 0) - return this._finish() +/***/ }), +/* 15 */ +/***/ (function(module, exports) { - var self = this - for (var i = 0; i < this.matches.length; i++) - this._realpathSet(i, next) +const SHORTSPLIT = /$|[!-@\[-`{-~].*/g +const EMPTY = [] - function next () { - if (--n === 0) - self._finish() - } +function array(any) { + return Array.isArray(any) ? any : [any] } -Glob.prototype._realpathSet = function (index, cb) { - var matchset = this.matches[index] - if (!matchset) - return cb() - - var found = Object.keys(matchset) - var self = this - var n = found.length +function aliases(aliases) { + var out = {} - if (n === 0) - return cb() + for (var key in aliases) { + var alias = (out[key] = array(aliases[key])) - var set = this.matches[index] = Object.create(null) - found.forEach(function (p, i) { - // If there's a problem with the stat, then it means that - // one or more of the links in the realpath couldn't be - // resolved. just return the abs value in that case. - p = self._makeAbs(p) - rp.realpath(p, self.realpathCache, function (er, real) { - if (!er) - set[real] = true - else if (er.syscall === 'stat') - set[p] = true - else - self.emit('error', er) // srsly wtf right here + for (var i = 0, len = alias.length; i < len; i++) { + var curr = (out[alias[i]] = [key]) - if (--n === 0) { - self.matches[index] = set - cb() + for (var j = 0; j < len; j++) { + if (i !== j) { + curr.push(alias[j]) + } } - }) - }) -} + } + } -Glob.prototype._mark = function (p) { - return common.mark(this, p) + return out } -Glob.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} +function booleans(aliases, booleans) { + var out = {} -Glob.prototype.abort = function () { - this.aborted = true - this.emit('abort') -} + if (booleans !== undefined) { + for (var i = 0, len = booleans.length; i < len; i++) { + var key = booleans[i] + var alias = aliases[key] -Glob.prototype.pause = function () { - if (!this.paused) { - this.paused = true - this.emit('pause') - } -} + out[key] = true -Glob.prototype.resume = function () { - if (this.paused) { - this.emit('resume') - this.paused = false - if (this._emitQueue.length) { - var eq = this._emitQueue.slice(0) - this._emitQueue.length = 0 - for (var i = 0; i < eq.length; i ++) { - var e = eq[i] - this._emitMatch(e[0], e[1]) - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0) - this._processQueue.length = 0 - for (var i = 0; i < pq.length; i ++) { - var p = pq[i] - this._processing-- - this._process(p[0], p[1], p[2], p[3]) + if (alias === undefined) { + aliases[key] = EMPTY + } else { + for (var j = 0, end = alias.length; j < end; j++) { + out[alias[j]] = true + } } } } -} - -Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert(this instanceof Glob) - assert(typeof cb === 'function') - - if (this.aborted) - return - - this._processing++ - if (this.paused) { - this._processQueue.push([pattern, index, inGlobStar, cb]) - return - } - //console.error('PROCESS %d', this._processing, pattern) + return out +} - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. +function defaults(aliases, defaults) { + var out = {} - // see if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index, cb) - return + for (var key in defaults) { + var value = defaults[key] + var alias = aliases[key] - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break + if (out[key] === undefined) { + out[key] = value - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break + if (alias === undefined) { + aliases[key] = EMPTY + } else { + for (var i = 0, len = alias.length; i < len; i++) { + out[alias[i]] = value + } + } + } } - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip _processing - if (childrenIgnored(this, read)) - return cb() - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) -} - -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) + return out } -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return cb() - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' +function set(out, key, value, aliases, unknown) { + var curr = out[key] + var alias = aliases[key] + var known = alias !== undefined - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) + if (known || unknown === undefined || false !== unknown(key)) { + if (curr === undefined) { + out[key] = value + } else { + if (Array.isArray(curr)) { + curr.push(value) } else { - m = e.match(pn) + out[key] = [curr, value] } - if (m) - matchedEntries.push(e) } - } - //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return cb() + if (known) { + for (var i = 0, len = alias.length; i < len; ) { + out[alias[i++]] = out[key] + } + } + } +} - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. +module.exports = function(argv, opts) { + var unknown = (opts = opts || {}).unknown + var alias = aliases(opts.alias) + var values = defaults(alias, opts.default) + var bools = booleans(alias, opts.boolean) + var out = { _: [] } - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) + for (var i = 0, j = 0, len = argv.length, _ = out._; i < len; i++) { + var arg = argv[i] - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e + if (arg === "--") { + while (++i < len) { + _.push(argv[i]) } + } else if (arg === "-" || arg[0] !== "-") { + _.push(arg) + } else { + if (arg[1] === "-") { + var end = arg.indexOf("=", 2) - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) + if (0 <= end) { + set(out, arg.slice(2, end), arg.slice(end + 1), alias, unknown) + } else { + if ("n" === arg[2] && "o" === arg[3] && "-" === arg[4]) { + set(out, arg.slice(5), false, alias, unknown) + } else { + var key = arg.slice(2) + set( + out, + key, + len === (j = i + 1) || + argv[j][0] === "-" || + bools[key] !== undefined || + argv[(i = j)], + alias, + unknown + ) + } + } + } else { + SHORTSPLIT.lastIndex = 2 + var match = SHORTSPLIT.exec(arg) + var end = match.index + var value = + match[0] || + len === (j = i + 1) || + argv[j][0] === "-" || + bools[arg[end - 1]] !== undefined || + argv[(i = j)] + + for (j = 1; j < end; ) { + set(out, arg[j], ++j !== end || value, alias, unknown) + } } - this._emitMatch(index, e) } - // This was the last one, and no stats were needed - return cb() } - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e + for (var key in values) { + if (out[key] === undefined) { + out[key] = values[key] } - this._process([e].concat(remain), index, inGlobStar, cb) - } - cb() -} - -Glob.prototype._emitMatch = function (index, e) { - if (this.aborted) - return - - if (isIgnored(this, e)) - return - - if (this.paused) { - this._emitQueue.push([index, e]) - return } - var abs = isAbsolute(e) ? e : this._makeAbs(e) + return out +} - if (this.mark) - e = this._mark(e) - if (this.absolute) - e = abs +/***/ }), +/* 16 */ +/***/ (function(module, exports) { - if (this.matches[index][e]) - return +module.exports = require("path"); - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { - this.matches[index][e] = true +"use strict"; - var st = this.statCache[abs] - if (st) - this.emit('stat', e, st) - this.emit('match', e) -} +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.commands = undefined; -Glob.prototype._readdirInGlobStar = function (abs, cb) { - if (this.aborted) - return +var _bootstrap = __webpack_require__(18); - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false, cb) +var _clean = __webpack_require__(137); - var lstatkey = 'lstat\0' + abs - var self = this - var lstatcb = inflight(lstatkey, lstatcb_) +var _run = __webpack_require__(160); - if (lstatcb) - fs.lstat(abs, lstatcb) +var _watch = __webpack_require__(161); - function lstatcb_ (er, lstat) { - if (er && er.code === 'ENOENT') - return cb() +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +const commands = exports.commands = { + bootstrap: _bootstrap.BootstrapCommand, + clean: _clean.CleanCommand, + run: _run.RunCommand, + watch: _watch.WatchCommand +}; - var isSym = lstat && lstat.isSymbolicLink() - self.symlinks[abs] = isSym +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && lstat && !lstat.isDirectory()) { - self.cache[abs] = 'FILE' - cb() - } else - self._readdir(abs, false, cb) - } -} +"use strict"; -Glob.prototype._readdir = function (abs, inGlobStar, cb) { - if (this.aborted) - return - cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) - if (!cb) - return +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BootstrapCommand = undefined; - //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs, cb) +var _chalk = __webpack_require__(2); - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return cb() +var _chalk2 = _interopRequireDefault(_chalk); - if (Array.isArray(c)) - return cb(null, c) - } +var _link_project_executables = __webpack_require__(19); - var self = this - fs.readdir(abs, readdirCb(this, abs, cb)) -} +var _log = __webpack_require__(33); -function readdirCb (self, abs, cb) { - return function (er, entries) { - if (er) - self._readdirError(abs, er, cb) - else - self._readdirEntries(abs, entries, cb) - } -} +var _parallelize = __webpack_require__(34); -Glob.prototype._readdirEntries = function (abs, entries, cb) { - if (this.aborted) - return +var _projects = __webpack_require__(35); - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - this.cache[abs] = entries - return cb(null, entries) -} +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ -Glob.prototype._readdirError = function (f, er, cb) { - if (this.aborted) - return - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - var abs = this._makeAbs(f) - this.cache[abs] = 'FILE' - if (abs === this.cwdAbs) { - var error = new Error(er.code + ' invalid cwd ' + this.cwd) - error.path = this.cwd - error.code = er.code - this.emit('error', error) - this.abort() - } - break +const BootstrapCommand = exports.BootstrapCommand = { + description: 'Install dependencies and crosslink projects', + name: 'bootstrap', + run(projects, projectGraph, { options }) { + return _asyncToGenerator(function* () { + const batchedProjectsByWorkspace = (0, _projects.topologicallyBatchProjects)(projects, projectGraph, { + batchByWorkspace: true + }); + const batchedProjects = (0, _projects.topologicallyBatchProjects)(projects, projectGraph); + const extraArgs = [...(options['frozen-lockfile'] === true ? ['--frozen-lockfile'] : []), ...(options['prefer-offline'] === true ? ['--prefer-offline'] : [])]; + _log.log.write(_chalk2.default.bold('\nRunning installs in topological order:')); + for (const batch of batchedProjectsByWorkspace) { + for (const project of batch) { + if (project.isWorkspaceProject) { + _log.log.write(`Skipping workspace project: ${project.name}`); + continue; + } + if (project.hasDependencies()) { + yield project.installDependencies({ extraArgs }); + } + } + } + _log.log.write(_chalk2.default.bold('\nInstalls completed, linking package executables:\n')); + yield (0, _link_project_executables.linkProjectExecutables)(projects, projectGraph); + /** + * At the end of the bootstrapping process we call all `kbn:bootstrap` scripts + * in the list of projects. We do this because some projects need to be + * transpiled before they can be used. Ideally we shouldn't do this unless we + * have to, as it will slow down the bootstrapping process. + */ + _log.log.write(_chalk2.default.bold('\nLinking executables completed, running `kbn:bootstrap` scripts\n')); + yield (0, _parallelize.parallelizeBatches)(batchedProjects, (() => { + var _ref = _asyncToGenerator(function* (pkg) { + if (pkg.hasScript('kbn:bootstrap')) { + yield pkg.runScriptStreaming('kbn:bootstrap'); + } + }); - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break + return function (_x) { + return _ref.apply(this, arguments); + }; + })()); + _log.log.write(_chalk2.default.green.bold('\nBootstrapping completed!\n')); + })(); + } +}; - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) { - this.emit('error', er) - // If the error is handled, then we abort - // if not, we threw out of here - this.abort() - } - if (!this.silent) - console.error('glob error', er) - break - } +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { - return cb() -} +"use strict"; -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.linkProjectExecutables = undefined; -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - //console.error('pgs2', prefix, remain[0], entries) +/** + * Yarn does not link the executables from dependencies that are installed + * using `link:` https://github.com/yarnpkg/yarn/pull/5046 + * + * We simulate this functionality by walking through each project's project + * dependencies, and manually linking their executables if defined. The logic + * for linking was mostly adapted from lerna: https://github.com/lerna/lerna/blob/1d7eb9eeff65d5a7de64dea73613b1bf6bfa8d57/src/PackageUtilities.js#L348 + */ +let linkProjectExecutables = exports.linkProjectExecutables = (() => { + var _ref = _asyncToGenerator(function* (projectsByName, projectGraph) { + for (const [projectName, projectDeps] of projectGraph) { + const project = projectsByName.get(projectName); + const binsDir = (0, _path.resolve)(project.nodeModulesLocation, '.bin'); + for (const projectDep of projectDeps) { + const executables = projectDep.getExecutables(); + for (const name of Object.keys(executables)) { + const srcPath = executables[name]; + // existing logic from lerna -- ensure that the bin we are going to + // point to exists or ignore it + if (!(yield (0, _fs.isFile)(srcPath))) { + continue; + } + const dest = (0, _path.resolve)(binsDir, name); + // Get relative project path with normalized path separators. + const projectRelativePath = (0, _path.relative)(project.path, srcPath).split(_path.sep).join('/'); + _log.log.write(_chalk2.default`{dim [${project.name}]} ${name} -> {dim ${projectRelativePath}}`); + yield (0, _fs.mkdirp)((0, _path.dirname)(dest)); + yield (0, _fs.createSymlink)(srcPath, dest, 'exec'); + yield (0, _fs.chmod)(dest, '755'); + } + } + } + }); - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return cb() + return function linkProjectExecutables(_x, _x2) { + return _ref.apply(this, arguments); + }; +})(); - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) +var _path = __webpack_require__(16); - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false, cb) +var _chalk = __webpack_require__(2); - var isSym = this.symlinks[abs] - var len = entries.length +var _chalk2 = _interopRequireDefault(_chalk); - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return cb() +var _fs = __webpack_require__(20); - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue +var _log = __webpack_require__(33); - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true, cb) +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - var below = gspref.concat(entries[i], remain) - this._process(below, index, true, cb) - } +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ - cb() -} +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { -Glob.prototype._processSimple = function (prefix, index, cb) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var self = this - this._stat(prefix, function (er, exists) { - self._processSimple2(prefix, index, er, exists, cb) - }) -} -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { +"use strict"; - //console.error('ps2', prefix, exists) - if (!this.matches[index]) - this.matches[index] = Object.create(null) +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createSymlink = exports.isFile = exports.isDirectory = exports.mkdirp = exports.readFile = exports.chmod = exports.copyDirectory = exports.unlink = undefined; - // If it doesn't exist, then just mark the lack of results - if (!exists) - return cb() +let statTest = (() => { + var _ref = _asyncToGenerator(function* (path, block) { + try { + return block((yield stat(path))); + } catch (e) { + if (e.code === 'ENOENT') { + return false; + } + throw e; + } + }); - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } + return function statTest(_x, _x2) { + return _ref.apply(this, arguments); + }; +})(); +/** + * Test if a path points to a directory. + * @param path + */ - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - // Mark this as a match - this._emitMatch(index, prefix) - cb() -} +let isDirectory = exports.isDirectory = (() => { + var _ref2 = _asyncToGenerator(function* (path) { + return yield statTest(path, function (stats) { + return stats.isDirectory(); + }); + }); -// Returns either 'DIR', 'FILE', or false -Glob.prototype._stat = function (f, cb) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' + return function isDirectory(_x3) { + return _ref2.apply(this, arguments); + }; +})(); +/** + * Test if a path points to a regular file. + * @param path + */ - if (f.length > this.maxLength) - return cb() - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] +let isFile = exports.isFile = (() => { + var _ref3 = _asyncToGenerator(function* (path) { + return yield statTest(path, function (stats) { + return stats.isFile(); + }); + }); - if (Array.isArray(c)) - c = 'DIR' + return function isFile(_x4) { + return _ref3.apply(this, arguments); + }; +})(); +/** + * Create a symlink at dest that points to src. Adapted from + * https://github.com/lerna/lerna/blob/2f1b87d9e2295f587e4ac74269f714271d8ed428/src/FileSystemUtilities.js#L103. + * + * @param src + * @param dest + * @param type 'dir', 'file', 'junction', or 'exec'. 'exec' on + * windows will use the `cmd-shim` module since symlinks can't be used + * for executable files on windows. + */ - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return cb(null, c) - if (needDir && c === 'FILE') - return cb() +let createSymlink = exports.createSymlink = (() => { + var _ref4 = _asyncToGenerator(function* (src, dest, type) { + if (process.platform === 'win32') { + if (type === 'exec') { + yield cmdShim(src, dest); + } else { + yield forceCreate(src, dest, type); + } + } else { + const posixType = type === 'exec' ? 'file' : type; + const relativeSource = (0, _path.relative)((0, _path.dirname)(dest), src); + yield forceCreate(relativeSource, dest, posixType); + } + }); - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } + return function createSymlink(_x5, _x6, _x7) { + return _ref4.apply(this, arguments); + }; +})(); - var exists - var stat = this.statCache[abs] - if (stat !== undefined) { - if (stat === false) - return cb(null, stat) - else { - var type = stat.isDirectory() ? 'DIR' : 'FILE' - if (needDir && type === 'FILE') - return cb() - else - return cb(null, type, stat) - } - } +let forceCreate = (() => { + var _ref5 = _asyncToGenerator(function* (src, dest, type) { + try { + // If something exists at `dest` we need to remove it first. + yield unlink(dest); + } catch (error) { + if (error.code !== 'ENOENT') { + throw error; + } + } + yield symlink(src, dest, type); + }); - var self = this - var statcb = inflight('stat\0' + abs, lstatcb_) - if (statcb) - fs.lstat(abs, statcb) + return function forceCreate(_x8, _x9, _x10) { + return _ref5.apply(this, arguments); + }; +})(); - function lstatcb_ (er, lstat) { - if (lstat && lstat.isSymbolicLink()) { - // If it's a symlink, then treat it as the target, unless - // the target does not exist, then treat it as a file. - return fs.stat(abs, function (er, stat) { - if (er) - self._stat2(f, abs, null, lstat, cb) - else - self._stat2(f, abs, er, stat, cb) - }) - } else { - self._stat2(f, abs, er, lstat, cb) - } - } -} +var _cmdShim = __webpack_require__(21); -Glob.prototype._stat2 = function (f, abs, er, stat, cb) { - if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { - this.statCache[abs] = false - return cb() - } +var _cmdShim2 = _interopRequireDefault(_cmdShim); - var needDir = f.slice(-1) === '/' - this.statCache[abs] = stat +var _fs = __webpack_require__(23); - if (abs.slice(-1) === '/' && stat && !stat.isDirectory()) - return cb(null, false, stat) +var _fs2 = _interopRequireDefault(_fs); - var c = true - if (stat) - c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c +var _mkdirp = __webpack_require__(31); - if (needDir && c === 'FILE') - return cb() +var _mkdirp2 = _interopRequireDefault(_mkdirp); - return cb(null, c, stat) -} +var _ncp = __webpack_require__(32); + +var _path = __webpack_require__(16); + +var _util = __webpack_require__(29); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +const stat = (0, _util.promisify)(_fs2.default.stat); +const readFile = (0, _util.promisify)(_fs2.default.readFile); +const symlink = (0, _util.promisify)(_fs2.default.symlink); +const chmod = (0, _util.promisify)(_fs2.default.chmod); +const cmdShim = (0, _util.promisify)(_cmdShim2.default); +const mkdirp = (0, _util.promisify)(_mkdirp2.default); +const unlink = exports.unlink = (0, _util.promisify)(_fs2.default.unlink); +const copyDirectory = exports.copyDirectory = (0, _util.promisify)(_ncp.ncp); +exports.chmod = chmod; +exports.readFile = readFile; +exports.mkdirp = mkdirp; + /***/ }), -/* 49 */ +/* 21 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(22); -var toString = Object.prototype.toString; +// On windows, create a .cmd file. +// Read the #! in the file to see what it uses. The vast majority +// of the time, this will be either: +// "#!/usr/bin/env " +// or: +// "#! " +// +// Write a binroot/pkg.bin + ".cmd" file that has this line in it: +// @ %~dp0 %* -/** - * Get the native `typeof` a value. - * - * @param {*} `val` - * @return {*} Native javascript type - */ +module.exports = cmdShim +cmdShim.ifExists = cmdShimIfExists -module.exports = function kindOf(val) { - // primitivies - if (typeof val === 'undefined') { - return 'undefined'; - } - if (val === null) { - return 'null'; - } - if (val === true || val === false || val instanceof Boolean) { - return 'boolean'; - } - if (typeof val === 'string' || val instanceof String) { - return 'string'; - } - if (typeof val === 'number' || val instanceof Number) { - return 'number'; - } +var fs = __webpack_require__(22) - // functions - if (typeof val === 'function' || val instanceof Function) { - return 'function'; - } +var mkdir = __webpack_require__(31) + , path = __webpack_require__(16) + , shebangExpr = /^#\!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/ - // array - if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { - return 'array'; - } +function cmdShimIfExists (from, to, cb) { + fs.stat(from, function (er) { + if (er) return cb() + cmdShim(from, to, cb) + }) +} - // check for instances of RegExp and Date before calling `toString` - if (val instanceof RegExp) { - return 'regexp'; - } - if (val instanceof Date) { - return 'date'; - } +// Try to unlink, but ignore errors. +// Any problems will surface later. +function rm (path, cb) { + fs.unlink(path, function(er) { + cb() + }) +} - // other objects - var type = toString.call(val); +function cmdShim (from, to, cb) { + fs.stat(from, function (er, stat) { + if (er) + return cb(er) - if (type === '[object RegExp]') { - return 'regexp'; - } - if (type === '[object Date]') { - return 'date'; - } - if (type === '[object Arguments]') { - return 'arguments'; - } - if (type === '[object Error]') { - return 'error'; - } + cmdShim_(from, to, cb) + }) +} - // buffer - if (isBuffer(val)) { - return 'buffer'; - } +function cmdShim_ (from, to, cb) { + var then = times(2, next, cb) + rm(to, then) + rm(to + ".cmd", then) - // es6: Map, WeakMap, Set, WeakSet - if (type === '[object Set]') { - return 'set'; - } - if (type === '[object WeakSet]') { - return 'weakset'; - } - if (type === '[object Map]') { - return 'map'; - } - if (type === '[object WeakMap]') { - return 'weakmap'; - } - if (type === '[object Symbol]') { - return 'symbol'; + function next(er) { + writeShim(from, to, cb) } +} - // typed arrays - if (type === '[object Int8Array]') { - return 'int8array'; - } - if (type === '[object Uint8Array]') { - return 'uint8array'; - } - if (type === '[object Uint8ClampedArray]') { - return 'uint8clampedarray'; - } - if (type === '[object Int16Array]') { - return 'int16array'; - } - if (type === '[object Uint16Array]') { - return 'uint16array'; - } - if (type === '[object Int32Array]') { - return 'int32array'; - } - if (type === '[object Uint32Array]') { - return 'uint32array'; - } - if (type === '[object Float32Array]') { - return 'float32array'; +function writeShim (from, to, cb) { + // make a cmd file and a sh script + // First, check if the bin is a #! of some sort. + // If not, then assume it's something that'll be compiled, or some other + // sort of script, and just call it directly. + mkdir(path.dirname(to), function (er) { + if (er) + return cb(er) + fs.readFile(from, "utf8", function (er, data) { + if (er) return writeShim_(from, to, null, null, cb) + var firstLine = data.trim().split(/\r*\n/)[0] + , shebang = firstLine.match(shebangExpr) + if (!shebang) return writeShim_(from, to, null, null, cb) + var prog = shebang[1] + , args = shebang[2] || "" + return writeShim_(from, to, prog, args, cb) + }) + }) +} + +function writeShim_ (from, to, prog, args, cb) { + var shTarget = path.relative(path.dirname(to), from) + , target = shTarget.split("/").join("\\") + , longProg + , shProg = prog && prog.split("\\").join("/") + , shLongProg + shTarget = shTarget.split("\\").join("/") + args = args || "" + if (!prog) { + prog = "\"%~dp0\\" + target + "\"" + shProg = "\"$basedir/" + shTarget + "\"" + args = "" + target = "" + shTarget = "" + } else { + longProg = "\"%~dp0\\" + prog + ".exe\"" + shLongProg = "\"$basedir/" + prog + "\"" + target = "\"%~dp0\\" + target + "\"" + shTarget = "\"$basedir/" + shTarget + "\"" } - if (type === '[object Float64Array]') { - return 'float64array'; + + // @IF EXIST "%~dp0\node.exe" ( + // "%~dp0\node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %* + // ) ELSE ( + // SETLOCAL + // SET PATHEXT=%PATHEXT:;.JS;=;% + // node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %* + // ) + var cmd + if (longProg) { + cmd = "@IF EXIST " + longProg + " (\r\n" + + " " + longProg + " " + args + " " + target + " %*\r\n" + + ") ELSE (\r\n" + + " @SETLOCAL\r\n" + + " @SET PATHEXT=%PATHEXT:;.JS;=;%\r\n" + + " " + prog + " " + args + " " + target + " %*\r\n" + + ")" + } else { + cmd = "@" + prog + " " + args + " " + target + " %*\r\n" } - // must be a plain object - return 'object'; -}; + // #!/bin/sh + // basedir=`dirname "$0"` + // + // case `uname` in + // *CYGWIN*) basedir=`cygpath -w "$basedir"`;; + // esac + // + // if [ -x "$basedir/node.exe" ]; then + // "$basedir/node.exe" "$basedir/node_modules/npm/bin/npm-cli.js" "$@" + // ret=$? + // else + // node "$basedir/node_modules/npm/bin/npm-cli.js" "$@" + // ret=$? + // fi + // exit $ret + var sh = "#!/bin/sh\n" -/***/ }), -/* 50 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + if (shLongProg) { + sh = sh + + "basedir=$(dirname \"$(echo \"$0\" | sed -e 's,\\\\,/,g')\")\n" + + "\n" + + "case `uname` in\n" + + " *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;\n" + + "esac\n" + + "\n" -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return refCount; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + sh = sh + + "if [ -x "+shLongProg+" ]; then\n" + + " " + shLongProg + " " + args + " " + shTarget + " \"$@\"\n" + + " ret=$?\n" + + "else \n" + + " " + shProg + " " + args + " " + shTarget + " \"$@\"\n" + + " ret=$?\n" + + "fi\n" + + "exit $ret\n" + } else { + sh = shProg + " " + args + " " + shTarget + " \"$@\"\n" + + "exit $?\n" + } + var then = times(2, next, cb) + fs.writeFile(to + ".cmd", cmd, "utf8", then) + fs.writeFile(to, sh, "utf8", then) + function next () { + chmodShim(to, cb) + } +} -function refCount() { - return function refCountOperatorFunction(source) { - return source.lift(new RefCountOperator(source)); - }; +function chmodShim (to, cb) { + var then = times(2, cb, cb) + fs.chmod(to, 0755, then) + fs.chmod(to + ".cmd", 0755, then) } -var RefCountOperator = /*@__PURE__*/ (function () { - function RefCountOperator(connectable) { - this.connectable = connectable; - } - RefCountOperator.prototype.call = function (subscriber, source) { - var connectable = this.connectable; - connectable._refCount++; - var refCounter = new RefCountSubscriber(subscriber, connectable); - var subscription = source.subscribe(refCounter); - if (!refCounter.closed) { - refCounter.connection = connectable.connect(); - } - return subscription; - }; - return RefCountOperator; -}()); -var RefCountSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](RefCountSubscriber, _super); - function RefCountSubscriber(destination, connectable) { - var _this = _super.call(this, destination) || this; - _this.connectable = connectable; - return _this; + +function times(n, ok, cb) { + var errState = null + return function(er) { + if (!errState) { + if (er) + cb(errState = er) + else if (--n === 0) + ok() } - RefCountSubscriber.prototype._unsubscribe = function () { - var connectable = this.connectable; - if (!connectable) { - this.connection = null; - return; - } - this.connectable = null; - var refCount = connectable._refCount; - if (refCount <= 0) { - this.connection = null; - return; - } - connectable._refCount = refCount - 1; - if (refCount > 1) { - this.connection = null; - return; - } - var connection = this.connection; - var sharedConnection = connectable._connection; - this.connection = null; - if (sharedConnection && (!connection || sharedConnection === connection)) { - sharedConnection.unsubscribe(); - } - }; - return RefCountSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[/* Subscriber */ "a"])); -//# sourceMappingURL=refCount.js.map + } +} /***/ }), -/* 51 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ReplaySubject; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8); -/* harmony import */ var _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6); -/* harmony import */ var _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82); -/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(28); -/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(90); -/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */ +var fs = __webpack_require__(23) +var polyfills = __webpack_require__(24) +var legacy = __webpack_require__(27) +var queue = [] +var util = __webpack_require__(29) +function noop () {} +var debug = noop +if (util.debuglog) + debug = util.debuglog('gfs4') +else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) + debug = function() { + var m = util.format.apply(util, arguments) + m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ') + console.error(m) + } +if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { + process.on('exit', function() { + debug(queue) + __webpack_require__(30).equal(queue.length, 0) + }) +} +module.exports = patch(__webpack_require__(25)) +if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH) { + module.exports = patch(fs) +} +// Always patch fs.close/closeSync, because we want to +// retry() whenever a close happens *anywhere* in the program. +// This is essential when multiple graceful-fs instances are +// in play at the same time. +module.exports.close = +fs.close = (function (fs$close) { return function (fd, cb) { + return fs$close.call(fs, fd, function (err) { + if (!err) + retry() -var ReplaySubject = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](ReplaySubject, _super); - function ReplaySubject(bufferSize, windowTime, scheduler) { - if (bufferSize === void 0) { - bufferSize = Number.POSITIVE_INFINITY; - } - if (windowTime === void 0) { - windowTime = Number.POSITIVE_INFINITY; - } - var _this = _super.call(this) || this; - _this.scheduler = scheduler; - _this._events = []; - _this._infiniteTimeWindow = false; - _this._bufferSize = bufferSize < 1 ? 1 : bufferSize; - _this._windowTime = windowTime < 1 ? 1 : windowTime; - if (windowTime === Number.POSITIVE_INFINITY) { - _this._infiniteTimeWindow = true; - _this.next = _this.nextInfiniteTimeWindow; - } - else { - _this.next = _this.nextTimeWindow; - } - return _this; - } - ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) { - var _events = this._events; - _events.push(value); - if (_events.length > this._bufferSize) { - _events.shift(); - } - _super.prototype.next.call(this, value); - }; - ReplaySubject.prototype.nextTimeWindow = function (value) { - this._events.push(new ReplayEvent(this._getNow(), value)); - this._trimBufferThenGetEvents(); - _super.prototype.next.call(this, value); - }; - ReplaySubject.prototype._subscribe = function (subscriber) { - var _infiniteTimeWindow = this._infiniteTimeWindow; - var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents(); - var scheduler = this.scheduler; - var len = _events.length; - var subscription; - if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__[/* ObjectUnsubscribedError */ "a"](); - } - else if (this.isStopped || this.hasError) { - subscription = _Subscription__WEBPACK_IMPORTED_MODULE_3__[/* Subscription */ "a"].EMPTY; - } - else { - this.observers.push(subscriber); - subscription = new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__[/* SubjectSubscription */ "a"](this, subscriber); - } - if (scheduler) { - subscriber.add(subscriber = new _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__[/* ObserveOnSubscriber */ "a"](subscriber, scheduler)); - } - if (_infiniteTimeWindow) { - for (var i = 0; i < len && !subscriber.closed; i++) { - subscriber.next(_events[i]); - } - } + if (typeof cb === 'function') + cb.apply(this, arguments) + }) +}})(fs.close) + +module.exports.closeSync = +fs.closeSync = (function (fs$closeSync) { return function (fd) { + // Note that graceful-fs also retries when fs.closeSync() fails. + // Looks like a bug to me, although it's probably a harmless one. + var rval = fs$closeSync.apply(fs, arguments) + retry() + return rval +}})(fs.closeSync) + +function patch (fs) { + // Everything that references the open() function needs to be in here + polyfills(fs) + fs.gracefulify = patch + fs.FileReadStream = ReadStream; // Legacy name. + fs.FileWriteStream = WriteStream; // Legacy name. + fs.createReadStream = createReadStream + fs.createWriteStream = createWriteStream + var fs$readFile = fs.readFile + fs.readFile = readFile + function readFile (path, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$readFile(path, options, cb) + + function go$readFile (path, options, cb) { + return fs$readFile(path, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$readFile, [path, options, cb]]) else { - for (var i = 0; i < len && !subscriber.closed; i++) { - subscriber.next(_events[i].value); - } - } - if (this.hasError) { - subscriber.error(this.thrownError); - } - else if (this.isStopped) { - subscriber.complete(); - } - return subscription; - }; - ReplaySubject.prototype._getNow = function () { - return (this.scheduler || _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__[/* queue */ "a"]).now(); - }; - ReplaySubject.prototype._trimBufferThenGetEvents = function () { - var now = this._getNow(); - var _bufferSize = this._bufferSize; - var _windowTime = this._windowTime; - var _events = this._events; - var eventsCount = _events.length; - var spliceCount = 0; - while (spliceCount < eventsCount) { - if ((now - _events[spliceCount].time) < _windowTime) { - break; - } - spliceCount++; - } - if (eventsCount > _bufferSize) { - spliceCount = Math.max(spliceCount, eventsCount - _bufferSize); - } - if (spliceCount > 0) { - _events.splice(0, spliceCount); + if (typeof cb === 'function') + cb.apply(this, arguments) + retry() } - return _events; - }; - return ReplaySubject; -}(_Subject__WEBPACK_IMPORTED_MODULE_1__[/* Subject */ "a"])); - -var ReplayEvent = /*@__PURE__*/ (function () { - function ReplayEvent(time, value) { - this.time = time; - this.value = value; + }) } - return ReplayEvent; -}()); -//# sourceMappingURL=ReplaySubject.js.map - + } -/***/ }), -/* 52 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + var fs$writeFile = fs.writeFile + fs.writeFile = writeFile + function writeFile (path, data, options, cb) { + if (typeof options === 'function') + cb = options, options = null -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return of; }); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); -/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18); -/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9); -/* harmony import */ var _scalar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58); -/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_empty,_scalar PURE_IMPORTS_END */ + return go$writeFile(path, data, options, cb) + function go$writeFile (path, data, options, cb) { + return fs$writeFile(path, data, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$writeFile, [path, data, options, cb]]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + retry() + } + }) + } + } + var fs$appendFile = fs.appendFile + if (fs$appendFile) + fs.appendFile = appendFile + function appendFile (path, data, options, cb) { + if (typeof options === 'function') + cb = options, options = null + return go$appendFile(path, data, options, cb) -function of() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var scheduler = args[args.length - 1]; - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_0__[/* isScheduler */ "a"])(scheduler)) { - args.pop(); - } - else { - scheduler = undefined; - } - switch (args.length) { - case 0: - return Object(_empty__WEBPACK_IMPORTED_MODULE_2__[/* empty */ "b"])(scheduler); - case 1: - return scheduler ? Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__[/* fromArray */ "a"])(args, scheduler) : Object(_scalar__WEBPACK_IMPORTED_MODULE_3__[/* scalar */ "a"])(args[0]); - default: - return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__[/* fromArray */ "a"])(args, scheduler); + function go$appendFile (path, data, options, cb) { + return fs$appendFile(path, data, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$appendFile, [path, data, options, cb]]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + retry() + } + }) } -} -//# sourceMappingURL=of.js.map + } + var fs$readdir = fs.readdir + fs.readdir = readdir + function readdir (path, options, cb) { + var args = [path] + if (typeof options !== 'function') { + args.push(options) + } else { + cb = options + } + args.push(go$readdir$cb) -/***/ }), -/* 53 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + return go$readdir(args) -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return throwError; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); -/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ + function go$readdir$cb (err, files) { + if (files && files.sort) + files.sort() -function throwError(error, scheduler) { - if (!scheduler) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__[/* Observable */ "a"](function (subscriber) { return subscriber.error(error); }); - } - else { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__[/* Observable */ "a"](function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); }); + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$readdir, [args]]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + retry() + } } -} -function dispatch(_a) { - var error = _a.error, subscriber = _a.subscriber; - subscriber.error(error); -} -//# sourceMappingURL=throwError.js.map + } + function go$readdir (args) { + return fs$readdir.apply(fs, args) + } -/***/ }), -/* 54 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + if (process.version.substr(0, 4) === 'v0.8') { + var legStreams = legacy(fs) + ReadStream = legStreams.ReadStream + WriteStream = legStreams.WriteStream + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return combineLatest; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CombineLatestOperator; }); -/* unused harmony export CombineLatestSubscriber */ -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3); -/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(18); -/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */ + var fs$ReadStream = fs.ReadStream + ReadStream.prototype = Object.create(fs$ReadStream.prototype) + ReadStream.prototype.open = ReadStream$open + var fs$WriteStream = fs.WriteStream + WriteStream.prototype = Object.create(fs$WriteStream.prototype) + WriteStream.prototype.open = WriteStream$open + fs.ReadStream = ReadStream + fs.WriteStream = WriteStream + function ReadStream (path, options) { + if (this instanceof ReadStream) + return fs$ReadStream.apply(this, arguments), this + else + return ReadStream.apply(Object.create(ReadStream.prototype), arguments) + } + function ReadStream$open () { + var that = this + open(that.path, that.flags, that.mode, function (err, fd) { + if (err) { + if (that.autoClose) + that.destroy() + that.emit('error', err) + } else { + that.fd = fd + that.emit('open', fd) + that.read() + } + }) + } -var NONE = {}; -function combineLatest() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - var resultSelector = null; - var scheduler = null; - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__[/* isScheduler */ "a"])(observables[observables.length - 1])) { - scheduler = observables.pop(); - } - if (typeof observables[observables.length - 1] === 'function') { - resultSelector = observables.pop(); - } - if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[/* isArray */ "a"])(observables[0])) { - observables = observables[0]; + function WriteStream (path, options) { + if (this instanceof WriteStream) + return fs$WriteStream.apply(this, arguments), this + else + return WriteStream.apply(Object.create(WriteStream.prototype), arguments) + } + + function WriteStream$open () { + var that = this + open(that.path, that.flags, that.mode, function (err, fd) { + if (err) { + that.destroy() + that.emit('error', err) + } else { + that.fd = fd + that.emit('open', fd) + } + }) + } + + function createReadStream (path, options) { + return new ReadStream(path, options) + } + + function createWriteStream (path, options) { + return new WriteStream(path, options) + } + + var fs$open = fs.open + fs.open = open + function open (path, flags, mode, cb) { + if (typeof mode === 'function') + cb = mode, mode = null + + return go$open(path, flags, mode, cb) + + function go$open (path, flags, mode, cb) { + return fs$open(path, flags, mode, function (err, fd) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$open, [path, flags, mode, cb]]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + retry() + } + }) } - return Object(_fromArray__WEBPACK_IMPORTED_MODULE_5__[/* fromArray */ "a"])(observables, scheduler).lift(new CombineLatestOperator(resultSelector)); + } + + return fs } -var CombineLatestOperator = /*@__PURE__*/ (function () { - function CombineLatestOperator(resultSelector) { - this.resultSelector = resultSelector; - } - CombineLatestOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector)); - }; - return CombineLatestOperator; -}()); -var CombineLatestSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](CombineLatestSubscriber, _super); - function CombineLatestSubscriber(destination, resultSelector) { - var _this = _super.call(this, destination) || this; - _this.resultSelector = resultSelector; - _this.active = 0; - _this.values = []; - _this.observables = []; - return _this; +function enqueue (elem) { + debug('ENQUEUE', elem[0].name, elem[1]) + queue.push(elem) +} + +function retry () { + var elem = queue.shift() + if (elem) { + debug('RETRY', elem[0].name, elem[1]) + elem[0].apply(null, elem[1]) + } +} + + +/***/ }), +/* 23 */ +/***/ (function(module, exports) { + +module.exports = require("fs"); + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +var fs = __webpack_require__(25) +var constants = __webpack_require__(26) + +var origCwd = process.cwd +var cwd = null + +var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform + +process.cwd = function() { + if (!cwd) + cwd = origCwd.call(process) + return cwd +} +try { + process.cwd() +} catch (er) {} + +var chdir = process.chdir +process.chdir = function(d) { + cwd = null + chdir.call(process, d) +} + +module.exports = patch + +function patch (fs) { + // (re-)implement some things that are known busted or missing. + + // lchmod, broken prior to 0.6.2 + // back-port the fix here. + if (constants.hasOwnProperty('O_SYMLINK') && + process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { + patchLchmod(fs) + } + + // lutimes implementation, or no-op + if (!fs.lutimes) { + patchLutimes(fs) + } + + // https://github.com/isaacs/node-graceful-fs/issues/4 + // Chown should not fail on einval or eperm if non-root. + // It should not fail on enosys ever, as this just indicates + // that a fs doesn't support the intended operation. + + fs.chown = chownFix(fs.chown) + fs.fchown = chownFix(fs.fchown) + fs.lchown = chownFix(fs.lchown) + + fs.chmod = chmodFix(fs.chmod) + fs.fchmod = chmodFix(fs.fchmod) + fs.lchmod = chmodFix(fs.lchmod) + + fs.chownSync = chownFixSync(fs.chownSync) + fs.fchownSync = chownFixSync(fs.fchownSync) + fs.lchownSync = chownFixSync(fs.lchownSync) + + fs.chmodSync = chmodFixSync(fs.chmodSync) + fs.fchmodSync = chmodFixSync(fs.fchmodSync) + fs.lchmodSync = chmodFixSync(fs.lchmodSync) + + fs.stat = statFix(fs.stat) + fs.fstat = statFix(fs.fstat) + fs.lstat = statFix(fs.lstat) + + fs.statSync = statFixSync(fs.statSync) + fs.fstatSync = statFixSync(fs.fstatSync) + fs.lstatSync = statFixSync(fs.lstatSync) + + // if lchmod/lchown do not exist, then make them no-ops + if (!fs.lchmod) { + fs.lchmod = function (path, mode, cb) { + if (cb) process.nextTick(cb) } - CombineLatestSubscriber.prototype._next = function (observable) { - this.values.push(NONE); - this.observables.push(observable); - }; - CombineLatestSubscriber.prototype._complete = function () { - var observables = this.observables; - var len = observables.length; - if (len === 0) { - this.destination.complete(); - } - else { - this.active = len; - this.toRespond = len; - for (var i = 0; i < len; i++) { - var observable = observables[i]; - this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[/* subscribeToResult */ "a"])(this, observable, observable, i)); - } + fs.lchmodSync = function () {} + } + if (!fs.lchown) { + fs.lchown = function (path, uid, gid, cb) { + if (cb) process.nextTick(cb) + } + fs.lchownSync = function () {} + } + + // on Windows, A/V software can lock the directory, causing this + // to fail with an EACCES or EPERM if the directory contains newly + // created files. Try again on failure, for up to 60 seconds. + + // Set the timeout this long because some Windows Anti-Virus, such as Parity + // bit9, may lock files for up to a minute, causing npm package install + // failures. Also, take care to yield the scheduler. Windows scheduling gives + // CPU to a busy looping process, which can cause the program causing the lock + // contention to be starved of CPU by node, so the contention doesn't resolve. + if (platform === "win32") { + fs.rename = (function (fs$rename) { return function (from, to, cb) { + var start = Date.now() + var backoff = 0; + fs$rename(from, to, function CB (er) { + if (er + && (er.code === "EACCES" || er.code === "EPERM") + && Date.now() - start < 60000) { + setTimeout(function() { + fs.stat(to, function (stater, st) { + if (stater && stater.code === "ENOENT") + fs$rename(from, to, CB); + else + cb(er) + }) + }, backoff) + if (backoff < 100) + backoff += 10; + return; } - }; - CombineLatestSubscriber.prototype.notifyComplete = function (unused) { - if ((this.active -= 1) === 0) { - this.destination.complete(); + if (cb) cb(er) + }) + }})(fs.rename) + } + + // if read() returns EAGAIN, then just try it again. + fs.read = (function (fs$read) { return function (fd, buffer, offset, length, position, callback_) { + var callback + if (callback_ && typeof callback_ === 'function') { + var eagCounter = 0 + callback = function (er, _, __) { + if (er && er.code === 'EAGAIN' && eagCounter < 10) { + eagCounter ++ + return fs$read.call(fs, fd, buffer, offset, length, position, callback) } - }; - CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - var values = this.values; - var oldVal = values[outerIndex]; - var toRespond = !this.toRespond - ? 0 - : oldVal === NONE ? --this.toRespond : this.toRespond; - values[outerIndex] = innerValue; - if (toRespond === 0) { - if (this.resultSelector) { - this._tryResultSelector(values); - } - else { - this.destination.next(values.slice()); - } + callback_.apply(this, arguments) + } + } + return fs$read.call(fs, fd, buffer, offset, length, position, callback) + }})(fs.read) + + fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) { + var eagCounter = 0 + while (true) { + try { + return fs$readSync.call(fs, fd, buffer, offset, length, position) + } catch (er) { + if (er.code === 'EAGAIN' && eagCounter < 10) { + eagCounter ++ + continue } - }; - CombineLatestSubscriber.prototype._tryResultSelector = function (values) { - var result; + throw er + } + } + }})(fs.readSync) +} + +function patchLchmod (fs) { + fs.lchmod = function (path, mode, callback) { + fs.open( path + , constants.O_WRONLY | constants.O_SYMLINK + , mode + , function (err, fd) { + if (err) { + if (callback) callback(err) + return + } + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + fs.fchmod(fd, mode, function (err) { + fs.close(fd, function(err2) { + if (callback) callback(err || err2) + }) + }) + }) + } + + fs.lchmodSync = function (path, mode) { + var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) + + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + var threw = true + var ret + try { + ret = fs.fchmodSync(fd, mode) + threw = false + } finally { + if (threw) { try { - result = this.resultSelector.apply(this, values); + fs.closeSync(fd) + } catch (er) {} + } else { + fs.closeSync(fd) + } + } + return ret + } +} + +function patchLutimes (fs) { + if (constants.hasOwnProperty("O_SYMLINK")) { + fs.lutimes = function (path, at, mt, cb) { + fs.open(path, constants.O_SYMLINK, function (er, fd) { + if (er) { + if (cb) cb(er) + return } - catch (err) { - this.destination.error(err); - return; + fs.futimes(fd, at, mt, function (er) { + fs.close(fd, function (er2) { + if (cb) cb(er || er2) + }) + }) + }) + } + + fs.lutimesSync = function (path, at, mt) { + var fd = fs.openSync(path, constants.O_SYMLINK) + var ret + var threw = true + try { + ret = fs.futimesSync(fd, at, mt) + threw = false + } finally { + if (threw) { + try { + fs.closeSync(fd) + } catch (er) {} + } else { + fs.closeSync(fd) } - this.destination.next(result); - }; - return CombineLatestSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[/* OuterSubscriber */ "a"])); + } + return ret + } -//# sourceMappingURL=combineLatest.js.map + } else { + fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) } + fs.lutimesSync = function () {} + } +} +function chmodFix (orig) { + if (!orig) return orig + return function (target, mode, cb) { + return orig.call(fs, target, mode, function (er) { + if (chownErOk(er)) er = null + if (cb) cb.apply(this, arguments) + }) + } +} -/***/ }), -/* 55 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +function chmodFixSync (orig) { + if (!orig) return orig + return function (target, mode) { + try { + return orig.call(fs, target, mode) + } catch (er) { + if (!chownErOk(er)) throw er + } + } +} -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return mergeAll; }); -/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31); -/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23); -/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */ +function chownFix (orig) { + if (!orig) return orig + return function (target, uid, gid, cb) { + return orig.call(fs, target, uid, gid, function (er) { + if (chownErOk(er)) er = null + if (cb) cb.apply(this, arguments) + }) + } +} -function mergeAll(concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; +function chownFixSync (orig) { + if (!orig) return orig + return function (target, uid, gid) { + try { + return orig.call(fs, target, uid, gid) + } catch (er) { + if (!chownErOk(er)) throw er } - return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[/* mergeMap */ "a"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__[/* identity */ "a"], concurrent); + } } -//# sourceMappingURL=mergeAll.js.map -/***/ }), -/* 56 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +function statFix (orig) { + if (!orig) return orig + // Older versions of Node erroneously returned signed integers for + // uid + gid. + return function (target, cb) { + return orig.call(fs, target, function (er, stats) { + if (!stats) return cb.apply(this, arguments) + if (stats.uid < 0) stats.uid += 0x100000000 + if (stats.gid < 0) stats.gid += 0x100000000 + if (cb) cb.apply(this, arguments) + }) + } +} -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return defer; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); -/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17); -/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9); -/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ +function statFixSync (orig) { + if (!orig) return orig + // Older versions of Node erroneously returned signed integers for + // uid + gid. + return function (target) { + var stats = orig.call(fs, target) + if (stats.uid < 0) stats.uid += 0x100000000 + if (stats.gid < 0) stats.gid += 0x100000000 + return stats; + } +} + +// ENOSYS means that the fs doesn't support the op. Just ignore +// that, because it doesn't matter. +// +// if there's no getuid, or if getuid() is something other +// than 0, and the error is EINVAL or EPERM, then just ignore +// it. +// +// This specific case is a silent failure in cp, install, tar, +// and most other unix tools that manage permissions. +// +// When running as root, or if other types of errors are +// encountered, then it's strict. +function chownErOk (er) { + if (!er) + return true + if (er.code === "ENOSYS") + return true + var nonroot = !process.getuid || process.getuid() !== 0 + if (nonroot) { + if (er.code === "EINVAL" || er.code === "EPERM") + return true + } -function defer(observableFactory) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__[/* Observable */ "a"](function (subscriber) { - var input; - try { - input = observableFactory(); - } - catch (err) { - subscriber.error(err); - return undefined; - } - var source = input ? Object(_from__WEBPACK_IMPORTED_MODULE_1__[/* from */ "a"])(input) : Object(_empty__WEBPACK_IMPORTED_MODULE_2__[/* empty */ "b"])(); - return source.subscribe(subscriber); - }); + return false } -//# sourceMappingURL=defer.js.map /***/ }), -/* 57 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { "use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return zip; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ZipOperator; }); -/* unused harmony export ZipSubscriber */ -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3); -/* harmony import */ var _internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(25); -/** PURE_IMPORTS_START tslib,_fromArray,_util_isArray,_Subscriber,_OuterSubscriber,_util_subscribeToResult,_.._internal_symbol_iterator PURE_IMPORTS_END */ +var fs = __webpack_require__(23) +module.exports = clone(fs) +function clone (obj) { + if (obj === null || typeof obj !== 'object') + return obj + if (obj instanceof Object) + var copy = { __proto__: obj.__proto__ } + else + var copy = Object.create(null) + Object.getOwnPropertyNames(obj).forEach(function (key) { + Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) + }) -function zip() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - var resultSelector = observables[observables.length - 1]; - if (typeof resultSelector === 'function') { - observables.pop(); - } - return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__[/* fromArray */ "a"])(observables, undefined).lift(new ZipOperator(resultSelector)); + return copy } -var ZipOperator = /*@__PURE__*/ (function () { - function ZipOperator(resultSelector) { - this.resultSelector = resultSelector; - } - ZipOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector)); - }; - return ZipOperator; -}()); -var ZipSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](ZipSubscriber, _super); - function ZipSubscriber(destination, resultSelector, values) { - if (values === void 0) { - values = Object.create(null); - } - var _this = _super.call(this, destination) || this; - _this.iterators = []; - _this.active = 0; - _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null; - _this.values = values; - return _this; - } - ZipSubscriber.prototype._next = function (value) { - var iterators = this.iterators; - if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[/* isArray */ "a"])(value)) { - iterators.push(new StaticArrayIterator(value)); - } - else if (typeof value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[/* iterator */ "a"]] === 'function') { - iterators.push(new StaticIterator(value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[/* iterator */ "a"]]())); - } - else { - iterators.push(new ZipBufferIterator(this.destination, this, value)); - } - }; - ZipSubscriber.prototype._complete = function () { - var iterators = this.iterators; - var len = iterators.length; - if (len === 0) { - this.destination.complete(); - return; - } - this.active = len; - for (var i = 0; i < len; i++) { - var iterator = iterators[i]; - if (iterator.stillUnsubscribed) { - this.add(iterator.subscribe(iterator, i)); - } - else { - this.active--; - } - } - }; - ZipSubscriber.prototype.notifyInactive = function () { - this.active--; - if (this.active === 0) { - this.destination.complete(); - } - }; - ZipSubscriber.prototype.checkIterators = function () { - var iterators = this.iterators; - var len = iterators.length; - var destination = this.destination; - for (var i = 0; i < len; i++) { - var iterator = iterators[i]; - if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) { - return; - } - } - var shouldComplete = false; - var args = []; - for (var i = 0; i < len; i++) { - var iterator = iterators[i]; - var result = iterator.next(); - if (iterator.hasCompleted()) { - shouldComplete = true; - } - if (result.done) { - destination.complete(); - return; - } - args.push(result.value); - } - if (this.resultSelector) { - this._tryresultSelector(args); - } - else { - destination.next(args); - } - if (shouldComplete) { - destination.complete(); - } - }; - ZipSubscriber.prototype._tryresultSelector = function (args) { - var result; - try { - result = this.resultSelector.apply(this, args); - } - catch (err) { - this.destination.error(err); - return; - } - this.destination.next(result); - }; - return ZipSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[/* Subscriber */ "a"])); -var StaticIterator = /*@__PURE__*/ (function () { - function StaticIterator(iterator) { - this.iterator = iterator; - this.nextResult = iterator.next(); - } - StaticIterator.prototype.hasValue = function () { - return true; - }; - StaticIterator.prototype.next = function () { - var result = this.nextResult; - this.nextResult = this.iterator.next(); - return result; - }; - StaticIterator.prototype.hasCompleted = function () { - var nextResult = this.nextResult; - return nextResult && nextResult.done; - }; - return StaticIterator; -}()); -var StaticArrayIterator = /*@__PURE__*/ (function () { - function StaticArrayIterator(array) { - this.array = array; - this.index = 0; - this.length = 0; - this.length = array.length; - } - StaticArrayIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[/* iterator */ "a"]] = function () { - return this; - }; - StaticArrayIterator.prototype.next = function (value) { - var i = this.index++; - var array = this.array; - return i < this.length ? { value: array[i], done: false } : { value: null, done: true }; - }; - StaticArrayIterator.prototype.hasValue = function () { - return this.array.length > this.index; - }; - StaticArrayIterator.prototype.hasCompleted = function () { - return this.array.length === this.index; - }; - return StaticArrayIterator; -}()); -var ZipBufferIterator = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](ZipBufferIterator, _super); - function ZipBufferIterator(destination, parent, observable) { - var _this = _super.call(this, destination) || this; - _this.parent = parent; - _this.observable = observable; - _this.stillUnsubscribed = true; - _this.buffer = []; - _this.isComplete = false; - return _this; - } - ZipBufferIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[/* iterator */ "a"]] = function () { - return this; - }; - ZipBufferIterator.prototype.next = function () { - var buffer = this.buffer; - if (buffer.length === 0 && this.isComplete) { - return { value: null, done: true }; - } - else { - return { value: buffer.shift(), done: false }; - } - }; - ZipBufferIterator.prototype.hasValue = function () { - return this.buffer.length > 0; - }; - ZipBufferIterator.prototype.hasCompleted = function () { - return this.buffer.length === 0 && this.isComplete; - }; - ZipBufferIterator.prototype.notifyComplete = function () { - if (this.buffer.length > 0) { - this.isComplete = true; - this.parent.notifyInactive(); - } - else { - this.destination.complete(); - } - }; - ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.buffer.push(innerValue); - this.parent.checkIterators(); - }; - ZipBufferIterator.prototype.subscribe = function (value, index) { - return Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__[/* subscribeToResult */ "a"])(this, this.observable, this, index); - }; - return ZipBufferIterator; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__[/* OuterSubscriber */ "a"])); -//# sourceMappingURL=zip.js.map +/***/ }), +/* 26 */ +/***/ (function(module, exports) { +module.exports = require("constants"); /***/ }), -/* 58 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return scalar; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); -/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ +var Stream = __webpack_require__(28).Stream -function scalar(value) { - var result = new _Observable__WEBPACK_IMPORTED_MODULE_0__[/* Observable */ "a"](function (subscriber) { - subscriber.next(value); - subscriber.complete(); - }); - result._isScalar = true; - result.value = value; - return result; -} -//# sourceMappingURL=scalar.js.map +module.exports = legacy +function legacy (fs) { + return { + ReadStream: ReadStream, + WriteStream: WriteStream + } -/***/ }), -/* 59 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + function ReadStream (path, options) { + if (!(this instanceof ReadStream)) return new ReadStream(path, options); -"use strict"; + Stream.call(this); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/tslib/tslib.es6.js -var tslib_es6 = __webpack_require__(0); + var self = this; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/Immediate.js -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var nextHandle = 1; -var tasksByHandle = {}; -function runIfPresent(handle) { - var cb = tasksByHandle[handle]; - if (cb) { - cb(); + this.path = path; + this.fd = null; + this.readable = true; + this.paused = false; + + this.flags = 'r'; + this.mode = 438; /*=0666*/ + this.bufferSize = 64 * 1024; + + options = options || {}; + + // Mixin options into this + var keys = Object.keys(options); + for (var index = 0, length = keys.length; index < length; index++) { + var key = keys[index]; + this[key] = options[key]; } -} -var Immediate = { - setImmediate: function (cb) { - var handle = nextHandle++; - tasksByHandle[handle] = cb; - Promise.resolve().then(function () { return runIfPresent(handle); }); - return handle; - }, - clearImmediate: function (handle) { - delete tasksByHandle[handle]; - }, -}; -//# sourceMappingURL=Immediate.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js + 1 modules -var AsyncAction = __webpack_require__(37); + if (this.encoding) this.setEncoding(this.encoding); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js -/** PURE_IMPORTS_START tslib,_util_Immediate,_AsyncAction PURE_IMPORTS_END */ + if (this.start !== undefined) { + if ('number' !== typeof this.start) { + throw TypeError('start must be a Number'); + } + if (this.end === undefined) { + this.end = Infinity; + } else if ('number' !== typeof this.end) { + throw TypeError('end must be a Number'); + } + if (this.start > this.end) { + throw new Error('start must be <= end'); + } + this.pos = this.start; + } -var AsapAction_AsapAction = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](AsapAction, _super); - function AsapAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - return _this; + if (this.fd !== null) { + process.nextTick(function() { + self._read(); + }); + return; } - AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - if (delay !== null && delay > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); - } - scheduler.actions.push(this); - return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null))); - }; - AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { - return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); - } - if (scheduler.actions.length === 0) { - Immediate.clearImmediate(id); - scheduler.scheduled = undefined; - } - return undefined; - }; - return AsapAction; -}(AsyncAction["a" /* AsyncAction */])); -//# sourceMappingURL=AsapAction.js.map + fs.open(this.path, this.flags, this.mode, function (err, fd) { + if (err) { + self.emit('error', err); + self.readable = false; + return; + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js -var AsyncScheduler = __webpack_require__(35); + self.fd = fd; + self.emit('open', fd); + self._read(); + }) + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js -/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ + function WriteStream (path, options) { + if (!(this instanceof WriteStream)) return new WriteStream(path, options); + Stream.call(this); -var AsapScheduler_AsapScheduler = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](AsapScheduler, _super); - function AsapScheduler() { - return _super !== null && _super.apply(this, arguments) || this; + this.path = path; + this.fd = null; + this.writable = true; + + this.flags = 'w'; + this.encoding = 'binary'; + this.mode = 438; /*=0666*/ + this.bytesWritten = 0; + + options = options || {}; + + // Mixin options into this + var keys = Object.keys(options); + for (var index = 0, length = keys.length; index < length; index++) { + var key = keys[index]; + this[key] = options[key]; } - AsapScheduler.prototype.flush = function (action) { - this.active = true; - this.scheduled = undefined; - var actions = this.actions; - var error; - var index = -1; - var count = actions.length; - action = action || actions.shift(); - do { - if (error = action.execute(action.state, action.delay)) { - break; - } - } while (++index < count && (action = actions.shift())); - this.active = false; - if (error) { - while (++index < count && (action = actions.shift())) { - action.unsubscribe(); - } - throw error; - } - }; - return AsapScheduler; -}(AsyncScheduler["a" /* AsyncScheduler */])); -//# sourceMappingURL=AsapScheduler.js.map + if (this.start !== undefined) { + if ('number' !== typeof this.start) { + throw TypeError('start must be a Number'); + } + if (this.start < 0) { + throw new Error('start must be >= zero'); + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/asap.js -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return asap; }); -/** PURE_IMPORTS_START _AsapAction,_AsapScheduler PURE_IMPORTS_END */ + this.pos = this.start; + } + this.busy = false; + this._queue = []; -var asap = /*@__PURE__*/ new AsapScheduler_AsapScheduler(AsapAction_AsapAction); -//# sourceMappingURL=asap.js.map + if (this.fd === null) { + this._open = fs.open; + this._queue.push([this._open, this.path, this.flags, this.mode, undefined]); + this.flush(); + } + } +} /***/ }), -/* 60 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* 28 */ +/***/ (function(module, exports) { -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return empty; }); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19); -/* harmony import */ var _util_hostReportError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41); -/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */ +module.exports = require("stream"); + +/***/ }), +/* 29 */ +/***/ (function(module, exports) { +module.exports = require("util"); -var empty = { - closed: true, - next: function (value) { }, - error: function (err) { - if (_config__WEBPACK_IMPORTED_MODULE_0__[/* config */ "a"].useDeprecatedSynchronousErrorHandling) { - throw err; - } - else { - Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_1__[/* hostReportError */ "a"])(err); - } - }, - complete: function () { } -}; -//# sourceMappingURL=Observer.js.map +/***/ }), +/* 30 */ +/***/ (function(module, exports) { +module.exports = require("assert"); /***/ }), -/* 61 */ +/* 31 */ /***/ (function(module, exports, __webpack_require__) { -var fs = __webpack_require__(13) -var polyfills = __webpack_require__(177) -var legacy = __webpack_require__(179) -var queue = [] - -var util = __webpack_require__(14) +var path = __webpack_require__(16); +var fs = __webpack_require__(23); +var _0777 = parseInt('0777', 8); -function noop () {} +module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; -var debug = noop -if (util.debuglog) - debug = util.debuglog('gfs4') -else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) - debug = function() { - var m = util.format.apply(util, arguments) - m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ') - console.error(m) - } +function mkdirP (p, opts, f, made) { + if (typeof opts === 'function') { + f = opts; + opts = {}; + } + else if (!opts || typeof opts !== 'object') { + opts = { mode: opts }; + } + + var mode = opts.mode; + var xfs = opts.fs || fs; + + if (mode === undefined) { + mode = _0777 & (~process.umask()); + } + if (!made) made = null; + + var cb = f || function () {}; + p = path.resolve(p); + + xfs.mkdir(p, mode, function (er) { + if (!er) { + made = made || p; + return cb(null, made); + } + switch (er.code) { + case 'ENOENT': + mkdirP(path.dirname(p), opts, function (er, made) { + if (er) cb(er, made); + else mkdirP(p, opts, cb, made); + }); + break; -if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { - process.on('exit', function() { - debug(queue) - __webpack_require__(62).equal(queue.length, 0) - }) + // In the case of any other error, just see if there's a dir + // there already. If so, then hooray! If not, then something + // is borked. + default: + xfs.stat(p, function (er2, stat) { + // if the stat fails, then that's super weird. + // let the original error be the failure reason. + if (er2 || !stat.isDirectory()) cb(er, made) + else cb(null, made); + }); + break; + } + }); } -module.exports = patch(__webpack_require__(115)) -if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH) { - module.exports = patch(fs) -} +mkdirP.sync = function sync (p, opts, made) { + if (!opts || typeof opts !== 'object') { + opts = { mode: opts }; + } + + var mode = opts.mode; + var xfs = opts.fs || fs; + + if (mode === undefined) { + mode = _0777 & (~process.umask()); + } + if (!made) made = null; -// Always patch fs.close/closeSync, because we want to -// retry() whenever a close happens *anywhere* in the program. -// This is essential when multiple graceful-fs instances are -// in play at the same time. -module.exports.close = -fs.close = (function (fs$close) { return function (fd, cb) { - return fs$close.call(fs, fd, function (err) { - if (!err) - retry() + p = path.resolve(p); - if (typeof cb === 'function') - cb.apply(this, arguments) - }) -}})(fs.close) + try { + xfs.mkdirSync(p, mode); + made = made || p; + } + catch (err0) { + switch (err0.code) { + case 'ENOENT' : + made = sync(path.dirname(p), opts, made); + sync(p, opts, made); + break; -module.exports.closeSync = -fs.closeSync = (function (fs$closeSync) { return function (fd) { - // Note that graceful-fs also retries when fs.closeSync() fails. - // Looks like a bug to me, although it's probably a harmless one. - var rval = fs$closeSync.apply(fs, arguments) - retry() - return rval -}})(fs.closeSync) + // In the case of any other error, just see if there's a dir + // there already. If so, then hooray! If not, then something + // is borked. + default: + var stat; + try { + stat = xfs.statSync(p); + } + catch (err1) { + throw err0; + } + if (!stat.isDirectory()) throw err0; + break; + } + } -function patch (fs) { - // Everything that references the open() function needs to be in here - polyfills(fs) - fs.gracefulify = patch - fs.FileReadStream = ReadStream; // Legacy name. - fs.FileWriteStream = WriteStream; // Legacy name. - fs.createReadStream = createReadStream - fs.createWriteStream = createWriteStream - var fs$readFile = fs.readFile - fs.readFile = readFile - function readFile (path, options, cb) { - if (typeof options === 'function') - cb = options, options = null + return made; +}; - return go$readFile(path, options, cb) - function go$readFile (path, options, cb) { - return fs$readFile(path, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$readFile, [path, options, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - }) - } - } +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { - var fs$writeFile = fs.writeFile - fs.writeFile = writeFile - function writeFile (path, data, options, cb) { - if (typeof options === 'function') - cb = options, options = null +var fs = __webpack_require__(23), + path = __webpack_require__(16); - return go$writeFile(path, data, options, cb) +module.exports = ncp; +ncp.ncp = ncp; - function go$writeFile (path, data, options, cb) { - return fs$writeFile(path, data, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$writeFile, [path, data, options, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - }) - } +function ncp (source, dest, options, callback) { + var cback = callback; + + if (!callback) { + cback = options; + options = {}; } - var fs$appendFile = fs.appendFile - if (fs$appendFile) - fs.appendFile = appendFile - function appendFile (path, data, options, cb) { - if (typeof options === 'function') - cb = options, options = null + var basePath = process.cwd(), + currentPath = path.resolve(basePath, source), + targetPath = path.resolve(basePath, dest), + filter = options.filter, + rename = options.rename, + transform = options.transform, + clobber = options.clobber !== false, + modified = options.modified, + dereference = options.dereference, + errs = null, + started = 0, + finished = 0, + running = 0, + limit = options.limit || ncp.limit || 16; - return go$appendFile(path, data, options, cb) + limit = (limit < 1) ? 1 : (limit > 512) ? 512 : limit; - function go$appendFile (path, data, options, cb) { - return fs$appendFile(path, data, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$appendFile, [path, data, options, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() + startCopy(currentPath); + + function startCopy(source) { + started++; + if (filter) { + if (filter instanceof RegExp) { + if (!filter.test(source)) { + return cb(true); } - }) + } + else if (typeof filter === 'function') { + if (!filter(source)) { + return cb(true); + } + } } + return getStats(source); } - var fs$readdir = fs.readdir - fs.readdir = readdir - function readdir (path, options, cb) { - var args = [path] - if (typeof options !== 'function') { - args.push(options) - } else { - cb = options + function getStats(source) { + var stat = dereference ? fs.stat : fs.lstat; + if (running >= limit) { + return setImmediate(function () { + getStats(source); + }); } - args.push(go$readdir$cb) + running++; + stat(source, function (err, stats) { + var item = {}; + if (err) { + return onError(err); + } - return go$readdir(args) + // We need to get the mode from the stats object and preserve it. + item.name = source; + item.mode = stats.mode; + item.mtime = stats.mtime; //modified time + item.atime = stats.atime; //access time - function go$readdir$cb (err, files) { - if (files && files.sort) - files.sort() + if (stats.isDirectory()) { + return onDir(item); + } + else if (stats.isFile()) { + return onFile(item); + } + else if (stats.isSymbolicLink()) { + // Symlinks don't really need to know about the mode. + return onLink(source); + } + }); + } - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$readdir, [args]]) + function onFile(file) { + var target = file.name.replace(currentPath, targetPath); + if(rename) { + target = rename(target); + } + isWritable(target, function (writable) { + if (writable) { + return copyFile(file, target); + } + if(clobber) { + rmFile(target, function () { + copyFile(file, target); + }); + } + if (modified) { + var stat = dereference ? fs.stat : fs.lstat; + stat(target, function(err, stats) { + //if souce modified time greater to target modified time copy file + if (file.mtime.getTime()>stats.mtime.getTime()) + copyFile(file, target); + else return cb(); + }); + } else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() + return cb(); } - } + }); } - function go$readdir (args) { - return fs$readdir.apply(fs, args) + function copyFile(file, target) { + var readStream = fs.createReadStream(file.name), + writeStream = fs.createWriteStream(target, { mode: file.mode }); + + readStream.on('error', onError); + writeStream.on('error', onError); + + if(transform) { + transform(readStream, writeStream, file); + } else { + writeStream.on('open', function() { + readStream.pipe(writeStream); + }); + } + writeStream.once('finish', function() { + if (modified) { + //target file modified date sync. + fs.utimesSync(target, file.atime, file.mtime); + cb(); + } + else cb(); + }); } - if (process.version.substr(0, 4) === 'v0.8') { - var legStreams = legacy(fs) - ReadStream = legStreams.ReadStream - WriteStream = legStreams.WriteStream + function rmFile(file, done) { + fs.unlink(file, function (err) { + if (err) { + return onError(err); + } + return done(); + }); } - var fs$ReadStream = fs.ReadStream - ReadStream.prototype = Object.create(fs$ReadStream.prototype) - ReadStream.prototype.open = ReadStream$open - - var fs$WriteStream = fs.WriteStream - WriteStream.prototype = Object.create(fs$WriteStream.prototype) - WriteStream.prototype.open = WriteStream$open - - fs.ReadStream = ReadStream - fs.WriteStream = WriteStream - - function ReadStream (path, options) { - if (this instanceof ReadStream) - return fs$ReadStream.apply(this, arguments), this - else - return ReadStream.apply(Object.create(ReadStream.prototype), arguments) + function onDir(dir) { + var target = dir.name.replace(currentPath, targetPath); + isWritable(target, function (writable) { + if (writable) { + return mkDir(dir, target); + } + copyDir(dir.name); + }); } - function ReadStream$open () { - var that = this - open(that.path, that.flags, that.mode, function (err, fd) { + function mkDir(dir, target) { + fs.mkdir(target, dir.mode, function (err) { if (err) { - if (that.autoClose) - that.destroy() - - that.emit('error', err) - } else { - that.fd = fd - that.emit('open', fd) - that.read() + return onError(err); } - }) + copyDir(dir.name); + }); } - function WriteStream (path, options) { - if (this instanceof WriteStream) - return fs$WriteStream.apply(this, arguments), this - else - return WriteStream.apply(Object.create(WriteStream.prototype), arguments) + function copyDir(dir) { + fs.readdir(dir, function (err, items) { + if (err) { + return onError(err); + } + items.forEach(function (item) { + startCopy(path.join(dir, item)); + }); + return cb(); + }); } - function WriteStream$open () { - var that = this - open(that.path, that.flags, that.mode, function (err, fd) { + function onLink(link) { + var target = link.replace(currentPath, targetPath); + fs.readlink(link, function (err, resolvedPath) { if (err) { - that.destroy() - that.emit('error', err) - } else { - that.fd = fd - that.emit('open', fd) + return onError(err); } - }) + checkLink(resolvedPath, target); + }); } - function createReadStream (path, options) { - return new ReadStream(path, options) + function checkLink(resolvedPath, target) { + if (dereference) { + resolvedPath = path.resolve(basePath, resolvedPath); + } + isWritable(target, function (writable) { + if (writable) { + return makeLink(resolvedPath, target); + } + fs.readlink(target, function (err, targetDest) { + if (err) { + return onError(err); + } + if (dereference) { + targetDest = path.resolve(basePath, targetDest); + } + if (targetDest === resolvedPath) { + return cb(); + } + return rmFile(target, function () { + makeLink(resolvedPath, target); + }); + }); + }); } - function createWriteStream (path, options) { - return new WriteStream(path, options) + function makeLink(linkPath, target) { + fs.symlink(linkPath, target, function (err) { + if (err) { + return onError(err); + } + return cb(); + }); } - var fs$open = fs.open - fs.open = open - function open (path, flags, mode, cb) { - if (typeof mode === 'function') - cb = mode, mode = null - - return go$open(path, flags, mode, cb) + function isWritable(path, done) { + fs.lstat(path, function (err) { + if (err) { + if (err.code === 'ENOENT') return done(true); + return done(false); + } + return done(false); + }); + } - function go$open (path, flags, mode, cb) { - return fs$open(path, flags, mode, function (err, fd) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$open, [path, flags, mode, cb]]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - retry() - } - }) + function onError(err) { + if (options.stopOnError) { + return cback(err); + } + else if (!errs && options.errs) { + errs = fs.createWriteStream(options.errs); + } + else if (!errs) { + errs = []; } + if (typeof errs.write === 'undefined') { + errs.push(err); + } + else { + errs.write(err.stack + '\n\n'); + } + return cb(); } - return fs -} - -function enqueue (elem) { - debug('ENQUEUE', elem[0].name, elem[1]) - queue.push(elem) -} - -function retry () { - var elem = queue.shift() - if (elem) { - debug('RETRY', elem[0].name, elem[1]) - elem[0].apply(null, elem[1]) + function cb(skipped) { + if (!skipped) running--; + finished++; + if ((started === finished) && (running === 0)) { + if (cback !== undefined ) { + return errs ? cback(errs) : cback(null); + } + } } } -/***/ }), -/* 62 */ -/***/ (function(module, exports) { - -module.exports = require("assert"); - -/***/ }), -/* 63 */ -/***/ (function(module, exports) { -module.exports = require("events"); /***/ }), -/* 64 */ +/* 33 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extend = __webpack_require__(20); - -/** - * The main export is a function that takes a `pattern` string and an `options` object. - * - * ```js - & var not = require('regex-not'); - & console.log(not('foo')); - & //=> /^(?:(?!^(?:foo)$).)*$/ - * ``` +Object.defineProperty(exports, "__esModule", { + value: true +}); +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * @param {String} `pattern` - * @param {Object} `options` - * @return {RegExp} Converts the given `pattern` to a regex using the specified `options`. - * @api public - */ - -function toRegex(pattern, options) { - return new RegExp(toRegex.create(pattern, options)); -} - -/** - * Create a regex-compatible string from the given `pattern` and `options`. + * http://www.apache.org/licenses/LICENSE-2.0 * - * ```js - & var not = require('regex-not'); - & console.log(not.create('foo')); - & //=> '^(?:(?!^(?:foo)$).)*$' - * ``` - * @param {String} `pattern` - * @param {Object} `options` - * @return {String} - * @api public + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. */ - -toRegex.create = function(pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('expected a string'); - } - - var opts = extend({}, options); - if (opts && opts.contains === true) { - opts.strictNegate = false; - } - - var open = opts.strictOpen !== false ? '^' : ''; - var close = opts.strictClose !== false ? '$' : ''; - var endChar = opts.endChar ? opts.endChar : '+'; - var str = pattern; - - if (opts && opts.strictNegate === false) { - str = '(?:(?!(?:' + pattern + ')).)' + endChar; - } else { - str = '(?:(?!^(?:' + pattern + ')$).)' + endChar; +const log = exports.log = { + /** + * Log something to the console. Ideally we would use a real logger in + * kbn-pm, but that's a pretty big change for now. + * @param ...args + */ + write(...args) { + // tslint:disable no-console + console.log(...args); } - - return open + str + close; }; -/** - * Expose `toRegex` - */ - -module.exports = toRegex; - - /***/ }), -/* 65 */ +/* 34 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/*! - * array-unique - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */ +Object.defineProperty(exports, "__esModule", { + value: true +}); -module.exports = function unique(arr) { - if (!Array.isArray(arr)) { - throw new TypeError('array-unique expects an array.'); - } - - var len = arr.length; - var i = -1; +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +let parallelizeBatches = exports.parallelizeBatches = (() => { + var _ref = _asyncToGenerator(function* (batches, fn) { + for (const batch of batches) { + // We need to make sure the entire batch has completed before we can move on + // to the next batch + yield parallelize(batch, fn); + } + }); - while (i++ < len) { - var j = i + 1; + return function parallelizeBatches(_x, _x2) { + return _ref.apply(this, arguments); + }; +})(); - for (; j < arr.length; ++j) { - if (arr[i] === arr[j]) { - arr.splice(j--, 1); - } - } - } - return arr; -}; +let parallelize = exports.parallelize = (() => { + var _ref2 = _asyncToGenerator(function* (items, fn, concurrency = 4) { + if (items.length === 0) { + return; + } + return new Promise(function (resolve, reject) { + let scheduleItem = (() => { + var _ref3 = _asyncToGenerator(function* (item) { + activePromises++; + try { + yield fn(item); + activePromises--; + if (values.length > 0) { + // We have more work to do, so we schedule the next promise + scheduleItem(values.shift()); + } else if (activePromises === 0) { + // We have no more values left, and all items have completed, so we've + // completed all the work. + resolve(); + } + } catch (error) { + reject(error); + } + }); -module.exports.immutable = function uniqueImmutable(arr) { - if (!Array.isArray(arr)) { - throw new TypeError('array-unique expects an array.'); - } + return function scheduleItem(_x5) { + return _ref3.apply(this, arguments); + }; + })(); - var arrLen = arr.length; - var newArr = new Array(arrLen); + let activePromises = 0; + const values = items.slice(0); - for (var i = 0; i < arrLen; i++) { - newArr[i] = arr[i]; - } + values.splice(0, concurrency).map(scheduleItem); + }); + }); - return module.exports(newArr); -}; + return function parallelize(_x3, _x4) { + return _ref2.apply(this, arguments); + }; +})(); +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /***/ }), -/* 66 */ +/* 35 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Base = __webpack_require__(330); -var define = __webpack_require__(67); -var Compiler = __webpack_require__(379); -var Parser = __webpack_require__(408); -var utils = __webpack_require__(79); -var regexCache = {}; -var cache = {}; - -/** - * Create a new instance of `Snapdragon` with the given `options`. - * - * ```js - * var snapdragon = new Snapdragon(); - * ``` - * - * @param {Object} `options` - * @api public - */ +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getProjects = undefined; -function Snapdragon(options) { - Base.call(this, null, options); - this.options = utils.extend({source: 'string'}, this.options); - this.compiler = new Compiler(this.options); - this.parser = new Parser(this.options); +let getProjects = exports.getProjects = (() => { + var _ref = _asyncToGenerator(function* (rootPath, projectsPathsPatterns, { include = [], exclude = [] } = {}) { + const projects = new Map(); + const workspaceProjectsPaths = yield (0, _workspaces.workspacePackagePaths)(rootPath); + for (const pattern of projectsPathsPatterns) { + const pathsToProcess = yield packagesFromGlobPattern({ pattern, rootPath }); + for (const filePath of pathsToProcess) { + const projectConfigPath = normalize(filePath); + const projectDir = _path2.default.dirname(projectConfigPath); + const project = yield _project.Project.fromPath(projectDir); + if (workspaceProjectsPaths.indexOf(filePath) >= 0) { + project.isWorkspaceProject = true; + } + const excludeProject = exclude.includes(project.name) || include.length > 0 && !include.includes(project.name); + if (excludeProject) { + continue; + } + if (projects.has(project.name)) { + throw new _errors.CliError(`There are multiple projects with the same name [${project.name}]`, { + name: project.name, + paths: [project.path, projects.get(project.name).path] + }); + } + projects.set(project.name, project); + } + } + return projects; + }); - Object.defineProperty(this, 'compilers', { - get: function() { - return this.compiler.compilers; - } - }); + return function getProjects(_x, _x2) { + return _ref.apply(this, arguments); + }; +})(); - Object.defineProperty(this, 'parsers', { - get: function() { - return this.parser.parsers; - } - }); +exports.buildProjectGraph = buildProjectGraph; +exports.topologicallyBatchProjects = topologicallyBatchProjects; +exports.includeTransitiveProjects = includeTransitiveProjects; - Object.defineProperty(this, 'regex', { - get: function() { - return this.parser.regex; - } - }); -} +var _glob = __webpack_require__(36); -/** - * Inherit Base - */ +var _glob2 = _interopRequireDefault(_glob); -Base.extend(Snapdragon); +var _path = __webpack_require__(16); -/** - * Add a parser to `snapdragon.parsers` for capturing the given `type` using - * the specified regex or parser function. A function is useful if you need - * to customize how the token is created and/or have access to the parser - * instance to check options, etc. - * - * ```js - * snapdragon - * .capture('slash', /^\//) - * .capture('dot', function() { - * var pos = this.position(); - * var m = this.match(/^\./); - * if (!m) return; - * return pos({ - * type: 'dot', - * val: m[0] - * }); - * }); - * ``` - * @param {String} `type` - * @param {RegExp|Function} `regex` - * @return {Object} Returns the parser instance for chaining - * @api public - */ +var _path2 = _interopRequireDefault(_path); -Snapdragon.prototype.capture = function() { - return this.parser.capture.apply(this.parser, arguments); -}; +var _util = __webpack_require__(29); -/** - * Register a plugin `fn`. - * - * ```js - * var snapdragon = new Snapdgragon([options]); - * snapdragon.use(function() { - * console.log(this); //<= snapdragon instance - * console.log(this.parser); //<= parser instance - * console.log(this.compiler); //<= compiler instance - * }); - * ``` - * @param {Object} `fn` - * @api public - */ +var _errors = __webpack_require__(52); -Snapdragon.prototype.use = function(fn) { - fn.call(this, this); - return this; -}; +var _project = __webpack_require__(53); -/** - * Parse the given `str`. - * - * ```js - * var snapdragon = new Snapdgragon([options]); - * // register parsers - * snapdragon.parser.use(function() {}); - * - * // parse - * var ast = snapdragon.parse('foo/bar'); - * console.log(ast); - * ``` - * @param {String} `str` - * @param {Object} `options` Set `options.sourcemap` to true to enable source maps. - * @return {Object} Returns an AST. - * @api public - */ +var _workspaces = __webpack_require__(135); -Snapdragon.prototype.parse = function(str, options) { - this.options = utils.extend({}, this.options, options); - var parsed = this.parser.parse(str, this.options); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - // add non-enumerable parser reference - define(parsed, 'parser', this.parser); - return parsed; -}; +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ -/** - * Compile the given `AST`. - * - * ```js - * var snapdragon = new Snapdgragon([options]); - * // register plugins - * snapdragon.use(function() {}); - * // register parser plugins - * snapdragon.parser.use(function() {}); - * // register compiler plugins - * snapdragon.compiler.use(function() {}); - * - * // parse - * var ast = snapdragon.parse('foo/bar'); - * - * // compile - * var res = snapdragon.compile(ast); - * console.log(res.output); - * ``` - * @param {Object} `ast` - * @param {Object} `options` - * @return {Object} Returns an object with an `output` property with the rendered string. - * @api public - */ -Snapdragon.prototype.compile = function(ast, options) { - this.options = utils.extend({}, this.options, options); - var compiled = this.compiler.compile(ast, this.options); +const glob = (0, _util.promisify)(_glob2.default); - // add non-enumerable compiler reference - define(compiled, 'compiler', this.compiler); - return compiled; -}; +function packagesFromGlobPattern({ pattern, rootPath }) { + const globOptions = { + cwd: rootPath, + // Should throw in case of unusual errors when reading the file system + strict: true, + // Always returns absolute paths for matched files + absolute: true, + // Do not match ** against multiple filenames + // (This is only specified because we currently don't have a need for it.) + noglobstar: true + }; + return glob(_path2.default.join(pattern, 'package.json'), globOptions); +} +// https://github.com/isaacs/node-glob/blob/master/common.js#L104 +// glob always returns "\\" as "/" in windows, so everyone +// gets normalized because we can't have nice things. +function normalize(dir) { + return _path2.default.normalize(dir); +} +function buildProjectGraph(projects) { + const projectGraph = new Map(); + for (const project of projects.values()) { + const projectDeps = []; + const dependencies = project.allDependencies; + for (const depName of Object.keys(dependencies)) { + if (projects.has(depName)) { + const dep = projects.get(depName); + const dependentProjectIsInWorkspace = project.isWorkspaceProject || project.json.name === 'kibana'; + project.ensureValidProjectDependency(dep, dependentProjectIsInWorkspace); + projectDeps.push(dep); + } + } + projectGraph.set(project.name, projectDeps); + } + return projectGraph; +} +function topologicallyBatchProjects(projectsToBatch, projectGraph, { batchByWorkspace = false } = {}) { + // We're going to be chopping stuff out of this list, so copy it. + const projectsLeftToBatch = new Set(projectsToBatch.keys()); + const batches = []; + if (batchByWorkspace) { + const workspaceRootProject = Array.from(projectsToBatch.values()).find(p => p.isWorkspaceRoot); + if (!workspaceRootProject) { + throw new _errors.CliError(`There was no yarn workspace root found.`); + } + // Push in the workspace root first. + batches.push([workspaceRootProject]); + projectsLeftToBatch.delete(workspaceRootProject.name); + // In the next batch, push in all workspace projects. + const workspaceBatch = []; + for (const projectName of projectsLeftToBatch) { + const project = projectsToBatch.get(projectName); + if (project.isWorkspaceProject) { + workspaceBatch.push(project); + projectsLeftToBatch.delete(projectName); + } + } + batches.push(workspaceBatch); + } + while (projectsLeftToBatch.size > 0) { + // Get all projects that have no remaining dependencies within the repo + // that haven't yet been picked. + const batch = []; + for (const projectName of projectsLeftToBatch) { + const projectDeps = projectGraph.get(projectName); + const needsDependenciesBatched = projectDeps.some(dep => projectsLeftToBatch.has(dep.name)); + if (!needsDependenciesBatched) { + batch.push(projectsToBatch.get(projectName)); + } + } + // If we weren't able to find a project with no remaining dependencies, + // then we've encountered a cycle in the dependency graph. + const hasCycles = batch.length === 0; + if (hasCycles) { + const cycleProjectNames = [...projectsLeftToBatch]; + const message = 'Encountered a cycle in the dependency graph. Projects in cycle are:\n' + cycleProjectNames.join(', '); + throw new _errors.CliError(message); + } + batches.push(batch); + batch.forEach(project => projectsLeftToBatch.delete(project.name)); + } + return batches; +} +function includeTransitiveProjects(subsetOfProjects, allProjects, { onlyProductionDependencies = false } = {}) { + const dependentProjects = new Map(); + // the current list of packages we are expanding using breadth-first-search + const toProcess = [...subsetOfProjects]; + while (toProcess.length > 0) { + const project = toProcess.shift(); + const dependencies = onlyProductionDependencies ? project.productionDependencies : project.allDependencies; + Object.keys(dependencies).forEach(dep => { + if (allProjects.has(dep)) { + toProcess.push(allProjects.get(dep)); + } + }); + dependentProjects.set(project.name, project); + } + return dependentProjects; +} -/** - * Expose `Snapdragon` - */ +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { -module.exports = Snapdragon; +// Approach: +// +// 1. Get the minimatch set +// 2. For each pattern in the set, PROCESS(pattern, false) +// 3. Store matches per-set, then uniq them +// +// PROCESS(pattern, inGlobStar) +// Get the first [n] items from pattern that are all strings +// Join these together. This is PREFIX. +// If there is no more remaining, then stat(PREFIX) and +// add to matches if it succeeds. END. +// +// If inGlobStar and PREFIX is symlink and points to dir +// set ENTRIES = [] +// else readdir(PREFIX) as ENTRIES +// If fail, END +// +// with ENTRIES +// If pattern[n] is GLOBSTAR +// // handle the case where the globstar match is empty +// // by pruning it out, and testing the resulting pattern +// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) +// // handle other cases. +// for ENTRY in ENTRIES (not dotfiles) +// // attach globstar + tail onto the entry +// // Mark that this entry is a globstar match +// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) +// +// else // not globstar +// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) +// Test ENTRY against pattern[n] +// If fails, continue +// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) +// +// Caveat: +// Cache all stats and readdirs results to minimize syscall. Since all +// we ever care about is existence and directory-ness, we can just keep +// `true` for files, and [children,...] for directories, or `false` for +// things that don't exist. -/** - * Expose `Parser` and `Compiler` - */ +module.exports = glob -module.exports.Compiler = Compiler; -module.exports.Parser = Parser; +var fs = __webpack_require__(23) +var rp = __webpack_require__(37) +var minimatch = __webpack_require__(39) +var Minimatch = minimatch.Minimatch +var inherits = __webpack_require__(43) +var EE = __webpack_require__(45).EventEmitter +var path = __webpack_require__(16) +var assert = __webpack_require__(30) +var isAbsolute = __webpack_require__(46) +var globSync = __webpack_require__(47) +var common = __webpack_require__(48) +var alphasort = common.alphasort +var alphasorti = common.alphasorti +var setopts = common.setopts +var ownProp = common.ownProp +var inflight = __webpack_require__(49) +var util = __webpack_require__(29) +var childrenIgnored = common.childrenIgnored +var isIgnored = common.isIgnored +var once = __webpack_require__(51) -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { +function glob (pattern, options, cb) { + if (typeof options === 'function') cb = options, options = {} + if (!options) options = {} -"use strict"; -/*! - * define-property - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. - */ + if (options.sync) { + if (cb) + throw new TypeError('callback provided to sync glob') + return globSync(pattern, options) + } + return new Glob(pattern, options, cb) +} +glob.sync = globSync +var GlobSync = glob.GlobSync = globSync.GlobSync -var isDescriptor = __webpack_require__(373); +// old api surface +glob.glob = glob -module.exports = function defineProperty(obj, prop, val) { - if (typeof obj !== 'object' && typeof obj !== 'function') { - throw new TypeError('expected an object or function.'); +function extend (origin, add) { + if (add === null || typeof add !== 'object') { + return origin } - if (typeof prop !== 'string') { - throw new TypeError('expected `prop` to be a string.'); + var keys = Object.keys(add) + var i = keys.length + while (i--) { + origin[keys[i]] = add[keys[i]] } + return origin +} - if (isDescriptor(val) && ('set' in val || 'get' in val)) { - return Object.defineProperty(obj, prop, val); - } +glob.hasMagic = function (pattern, options_) { + var options = extend({}, options_) + options.noprocess = true - return Object.defineProperty(obj, prop, { - configurable: true, - enumerable: false, - writable: true, - value: val - }); -}; + var g = new Glob(pattern, options) + var set = g.minimatch.set + if (!pattern) + return false -/***/ }), -/* 68 */ -/***/ (function(module, exports) { + if (set.length > 1) + return true -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - -/** - * This is a helper function for getting values from parameter/options - * objects. - * - * @param args The object we are extracting values from - * @param name The name of the property we are getting. - * @param defaultValue An optional value to return if the property is missing - * from the object. If this is not specified and the property is missing, an - * error will be thrown. - */ -function getArg(aArgs, aName, aDefaultValue) { - if (aName in aArgs) { - return aArgs[aName]; - } else if (arguments.length === 3) { - return aDefaultValue; - } else { - throw new Error('"' + aName + '" is a required argument.'); - } -} -exports.getArg = getArg; - -var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/; -var dataUrlRegexp = /^data:.+\,.+$/; - -function urlParse(aUrl) { - var match = aUrl.match(urlRegexp); - if (!match) { - return null; + for (var j = 0; j < set[0].length; j++) { + if (typeof set[0][j] !== 'string') + return true } - return { - scheme: match[1], - auth: match[2], - host: match[3], - port: match[4], - path: match[5] - }; -} -exports.urlParse = urlParse; -function urlGenerate(aParsedUrl) { - var url = ''; - if (aParsedUrl.scheme) { - url += aParsedUrl.scheme + ':'; - } - url += '//'; - if (aParsedUrl.auth) { - url += aParsedUrl.auth + '@'; - } - if (aParsedUrl.host) { - url += aParsedUrl.host; - } - if (aParsedUrl.port) { - url += ":" + aParsedUrl.port - } - if (aParsedUrl.path) { - url += aParsedUrl.path; - } - return url; + return false } -exports.urlGenerate = urlGenerate; -/** - * Normalizes a path, or the path portion of a URL: - * - * - Replaces consecutive slashes with one slash. - * - Removes unnecessary '.' parts. - * - Removes unnecessary '/..' parts. - * - * Based on code in the Node.js 'path' core module. - * - * @param aPath The path or url to normalize. - */ -function normalize(aPath) { - var path = aPath; - var url = urlParse(aPath); - if (url) { - if (!url.path) { - return aPath; - } - path = url.path; +glob.Glob = Glob +inherits(Glob, EE) +function Glob (pattern, options, cb) { + if (typeof options === 'function') { + cb = options + options = null } - var isAbsolute = exports.isAbsolute(path); - var parts = path.split(/\/+/); - for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { - part = parts[i]; - if (part === '.') { - parts.splice(i, 1); - } else if (part === '..') { - up++; - } else if (up > 0) { - if (part === '') { - // The first part is blank if the path is absolute. Trying to go - // above the root is a no-op. Therefore we can remove all '..' parts - // directly after the root. - parts.splice(i + 1, up); - up = 0; - } else { - parts.splice(i, 2); - up--; - } - } + if (options && options.sync) { + if (cb) + throw new TypeError('callback provided to sync glob') + return new GlobSync(pattern, options) } - path = parts.join('/'); - if (path === '') { - path = isAbsolute ? '/' : '.'; - } + if (!(this instanceof Glob)) + return new Glob(pattern, options, cb) - if (url) { - url.path = path; - return urlGenerate(url); - } - return path; -} -exports.normalize = normalize; + setopts(this, pattern, options) + this._didRealPath = false -/** - * Joins two paths/URLs. - * - * @param aRoot The root path or URL. - * @param aPath The path or URL to be joined with the root. - * - * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a - * scheme-relative URL: Then the scheme of aRoot, if any, is prepended - * first. - * - Otherwise aPath is a path. If aRoot is a URL, then its path portion - * is updated with the result and aRoot is returned. Otherwise the result - * is returned. - * - If aPath is absolute, the result is aPath. - * - Otherwise the two paths are joined with a slash. - * - Joining for example 'http://' and 'www.example.com' is also supported. - */ -function join(aRoot, aPath) { - if (aRoot === "") { - aRoot = "."; - } - if (aPath === "") { - aPath = "."; - } - var aPathUrl = urlParse(aPath); - var aRootUrl = urlParse(aRoot); - if (aRootUrl) { - aRoot = aRootUrl.path || '/'; - } + // process each pattern in the minimatch set + var n = this.minimatch.set.length - // `join(foo, '//www.example.org')` - if (aPathUrl && !aPathUrl.scheme) { - if (aRootUrl) { - aPathUrl.scheme = aRootUrl.scheme; - } - return urlGenerate(aPathUrl); - } + // The matches are stored as {: true,...} so that + // duplicates are automagically pruned. + // Later, we do an Object.keys() on these. + // Keep them as a list so we can fill in when nonull is set. + this.matches = new Array(n) - if (aPathUrl || aPath.match(dataUrlRegexp)) { - return aPath; + if (typeof cb === 'function') { + cb = once(cb) + this.on('error', cb) + this.on('end', function (matches) { + cb(null, matches) + }) } - // `join('http://', 'www.example.com')` - if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { - aRootUrl.host = aPath; - return urlGenerate(aRootUrl); - } + var self = this + this._processing = 0 - var joined = aPath.charAt(0) === '/' - ? aPath - : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + this._emitQueue = [] + this._processQueue = [] + this.paused = false - if (aRootUrl) { - aRootUrl.path = joined; - return urlGenerate(aRootUrl); - } - return joined; -} -exports.join = join; + if (this.noprocess) + return this -exports.isAbsolute = function (aPath) { - return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp); -}; + if (n === 0) + return done() -/** - * Make a path relative to a URL or another path. - * - * @param aRoot The root path or URL. - * @param aPath The path or URL to be made relative to aRoot. - */ -function relative(aRoot, aPath) { - if (aRoot === "") { - aRoot = "."; + var sync = true + for (var i = 0; i < n; i ++) { + this._process(this.minimatch.set[i], i, false, done) } + sync = false - aRoot = aRoot.replace(/\/$/, ''); - - // It is possible for the path to be above the root. In this case, simply - // checking whether the root is a prefix of the path won't work. Instead, we - // need to remove components from the root one by one, until either we find - // a prefix that fits, or we run out of components to remove. - var level = 0; - while (aPath.indexOf(aRoot + '/') !== 0) { - var index = aRoot.lastIndexOf("/"); - if (index < 0) { - return aPath; + function done () { + --self._processing + if (self._processing <= 0) { + if (sync) { + process.nextTick(function () { + self._finish() + }) + } else { + self._finish() + } } + } +} - // If the only part of the root that is left is the scheme (i.e. http://, - // file:///, etc.), one or more slashes (/), or simply nothing at all, we - // have exhausted all components, so the path is not relative to the root. - aRoot = aRoot.slice(0, index); - if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { - return aPath; - } +Glob.prototype._finish = function () { + assert(this instanceof Glob) + if (this.aborted) + return - ++level; - } + if (this.realpath && !this._didRealpath) + return this._realpath() - // Make sure we add a "../" for each component we removed from the root. - return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); + common.finish(this) + this.emit('end', this.found) } -exports.relative = relative; -var supportsNullProto = (function () { - var obj = Object.create(null); - return !('__proto__' in obj); -}()); +Glob.prototype._realpath = function () { + if (this._didRealpath) + return -function identity (s) { - return s; -} + this._didRealpath = true -/** - * Because behavior goes wacky when you set `__proto__` on objects, we - * have to prefix all the strings in our set with an arbitrary character. - * - * See https://github.com/mozilla/source-map/pull/31 and - * https://github.com/mozilla/source-map/issues/30 - * - * @param String aStr - */ -function toSetString(aStr) { - if (isProtoString(aStr)) { - return '$' + aStr; - } + var n = this.matches.length + if (n === 0) + return this._finish() - return aStr; -} -exports.toSetString = supportsNullProto ? identity : toSetString; + var self = this + for (var i = 0; i < this.matches.length; i++) + this._realpathSet(i, next) -function fromSetString(aStr) { - if (isProtoString(aStr)) { - return aStr.slice(1); + function next () { + if (--n === 0) + self._finish() } - - return aStr; } -exports.fromSetString = supportsNullProto ? identity : fromSetString; -function isProtoString(s) { - if (!s) { - return false; - } +Glob.prototype._realpathSet = function (index, cb) { + var matchset = this.matches[index] + if (!matchset) + return cb() - var length = s.length; + var found = Object.keys(matchset) + var self = this + var n = found.length - if (length < 9 /* "__proto__".length */) { - return false; - } + if (n === 0) + return cb() - if (s.charCodeAt(length - 1) !== 95 /* '_' */ || - s.charCodeAt(length - 2) !== 95 /* '_' */ || - s.charCodeAt(length - 3) !== 111 /* 'o' */ || - s.charCodeAt(length - 4) !== 116 /* 't' */ || - s.charCodeAt(length - 5) !== 111 /* 'o' */ || - s.charCodeAt(length - 6) !== 114 /* 'r' */ || - s.charCodeAt(length - 7) !== 112 /* 'p' */ || - s.charCodeAt(length - 8) !== 95 /* '_' */ || - s.charCodeAt(length - 9) !== 95 /* '_' */) { - return false; - } + var set = this.matches[index] = Object.create(null) + found.forEach(function (p, i) { + // If there's a problem with the stat, then it means that + // one or more of the links in the realpath couldn't be + // resolved. just return the abs value in that case. + p = self._makeAbs(p) + rp.realpath(p, self.realpathCache, function (er, real) { + if (!er) + set[real] = true + else if (er.syscall === 'stat') + set[p] = true + else + self.emit('error', er) // srsly wtf right here - for (var i = length - 10; i >= 0; i--) { - if (s.charCodeAt(i) !== 36 /* '$' */) { - return false; - } - } + if (--n === 0) { + self.matches[index] = set + cb() + } + }) + }) +} - return true; +Glob.prototype._mark = function (p) { + return common.mark(this, p) } -/** - * Comparator between two mappings where the original positions are compared. - * - * Optionally pass in `true` as `onlyCompareGenerated` to consider two - * mappings with the same original source/line/column, but different generated - * line and column the same. Useful when searching for a mapping with a - * stubbed out mapping. - */ -function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { - var cmp = mappingA.source - mappingB.source; - if (cmp !== 0) { - return cmp; - } +Glob.prototype._makeAbs = function (f) { + return common.makeAbs(this, f) +} - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp !== 0) { - return cmp; - } +Glob.prototype.abort = function () { + this.aborted = true + this.emit('abort') +} - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp !== 0 || onlyCompareOriginal) { - return cmp; +Glob.prototype.pause = function () { + if (!this.paused) { + this.paused = true + this.emit('pause') } +} - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp !== 0) { - return cmp; +Glob.prototype.resume = function () { + if (this.paused) { + this.emit('resume') + this.paused = false + if (this._emitQueue.length) { + var eq = this._emitQueue.slice(0) + this._emitQueue.length = 0 + for (var i = 0; i < eq.length; i ++) { + var e = eq[i] + this._emitMatch(e[0], e[1]) + } + } + if (this._processQueue.length) { + var pq = this._processQueue.slice(0) + this._processQueue.length = 0 + for (var i = 0; i < pq.length; i ++) { + var p = pq[i] + this._processing-- + this._process(p[0], p[1], p[2], p[3]) + } + } } +} - cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp !== 0) { - return cmp; - } +Glob.prototype._process = function (pattern, index, inGlobStar, cb) { + assert(this instanceof Glob) + assert(typeof cb === 'function') - return mappingA.name - mappingB.name; -} -exports.compareByOriginalPositions = compareByOriginalPositions; + if (this.aborted) + return -/** - * Comparator between two mappings with deflated source and name indices where - * the generated positions are compared. - * - * Optionally pass in `true` as `onlyCompareGenerated` to consider two - * mappings with the same generated line and column, but different - * source/name/original line and column the same. Useful when searching for a - * mapping with a stubbed out mapping. - */ -function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { - var cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp !== 0) { - return cmp; + this._processing++ + if (this.paused) { + this._processQueue.push([pattern, index, inGlobStar, cb]) + return } - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp !== 0 || onlyCompareGenerated) { - return cmp; - } + //console.error('PROCESS %d', this._processing, pattern) - cmp = mappingA.source - mappingB.source; - if (cmp !== 0) { - return cmp; + // Get the first [n] parts of pattern that are all strings. + var n = 0 + while (typeof pattern[n] === 'string') { + n ++ } + // now n is the index of the first one that is *not* a string. - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp !== 0) { - return cmp; - } + // see if there's anything else + var prefix + switch (n) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join('/'), index, cb) + return - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp !== 0) { - return cmp; + case 0: + // pattern *starts* with some non-trivial item. + // going to readdir(cwd), but not include the prefix in matches. + prefix = null + break + + default: + // pattern has some string bits in the front. + // whatever it starts with, whether that's 'absolute' like /foo/bar, + // or 'relative' like '../baz' + prefix = pattern.slice(0, n).join('/') + break } - return mappingA.name - mappingB.name; -} -exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + var remain = pattern.slice(n) -function strcmp(aStr1, aStr2) { - if (aStr1 === aStr2) { - return 0; - } + // get the list of entries. + var read + if (prefix === null) + read = '.' + else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + if (!prefix || !isAbsolute(prefix)) + prefix = '/' + prefix + read = prefix + } else + read = prefix - if (aStr1 > aStr2) { - return 1; - } + var abs = this._makeAbs(read) - return -1; -} + //if ignored, skip _processing + if (childrenIgnored(this, read)) + return cb() -/** - * Comparator between two mappings with inflated source and name strings where - * the generated positions are compared. - */ -function compareByGeneratedPositionsInflated(mappingA, mappingB) { - var cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp !== 0) { - return cmp; - } + var isGlobStar = remain[0] === minimatch.GLOBSTAR + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) +} - cmp = strcmp(mappingA.source, mappingB.source); - if (cmp !== 0) { - return cmp; - } +Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this + this._readdir(abs, inGlobStar, function (er, entries) { + return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) + }) +} - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp !== 0) { - return cmp; - } +Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp !== 0) { - return cmp; - } + // if the abs isn't a dir, then nothing can match! + if (!entries) + return cb() - return strcmp(mappingA.name, mappingB.name); -} -exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + // It will only match dot entries if it starts with a dot, or if + // dot is set. Stuff like @(.foo|.bar) isn't allowed. + var pn = remain[0] + var negate = !!this.minimatch.negate + var rawGlob = pn._glob + var dotOk = this.dot || rawGlob.charAt(0) === '.' + var matchedEntries = [] + for (var i = 0; i < entries.length; i++) { + var e = entries[i] + if (e.charAt(0) !== '.' || dotOk) { + var m + if (negate && !prefix) { + m = !e.match(pn) + } else { + m = e.match(pn) + } + if (m) + matchedEntries.push(e) + } + } -/***/ }), -/* 69 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Scheduler; }); -var Scheduler = /*@__PURE__*/ (function () { - function Scheduler(SchedulerAction, now) { - if (now === void 0) { - now = Scheduler.now; - } - this.SchedulerAction = SchedulerAction; - this.now = now; - } - Scheduler.prototype.schedule = function (work, delay, state) { - if (delay === void 0) { - delay = 0; - } - return new this.SchedulerAction(this, work).schedule(state, delay); - }; - Scheduler.now = Date.now ? Date.now : function () { return +new Date(); }; - return Scheduler; -}()); + var len = matchedEntries.length + // If there are no matched entries, then nothing matches. + if (len === 0) + return cb() -//# sourceMappingURL=Scheduler.js.map + // if this is the last remaining pattern bit, then no need for + // an additional stat *unless* the user has specified mark or + // stat explicitly. We know they exist, since readdir returned + // them. + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = Object.create(null) -/***/ }), -/* 70 */ -/***/ (function(module, exports, __webpack_require__) { + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + if (prefix) { + if (prefix !== '/') + e = prefix + '/' + e + else + e = prefix + e + } -"use strict"; + if (e.charAt(0) === '/' && !this.nomount) { + e = path.join(this.root, e) + } + this._emitMatch(index, e) + } + // This was the last one, and no stats were needed + return cb() + } + // now test all matched entries as stand-ins for that part + // of the pattern. + remain.shift() + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + var newPattern + if (prefix) { + if (prefix !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + this._process([e].concat(remain), index, inGlobStar, cb) + } + cb() +} -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.createSymlink = exports.isFile = exports.isDirectory = exports.mkdirp = exports.readFile = exports.chmod = exports.copyDirectory = exports.unlink = undefined; +Glob.prototype._emitMatch = function (index, e) { + if (this.aborted) + return -let statTest = (() => { - var _ref = _asyncToGenerator(function* (path, block) { - try { - return block((yield stat(path))); - } catch (e) { - if (e.code === 'ENOENT') { - return false; - } - throw e; - } - }); + if (isIgnored(this, e)) + return - return function statTest(_x, _x2) { - return _ref.apply(this, arguments); - }; -})(); -/** - * Test if a path points to a directory. - * @param path - */ + if (this.paused) { + this._emitQueue.push([index, e]) + return + } + var abs = isAbsolute(e) ? e : this._makeAbs(e) -let isDirectory = exports.isDirectory = (() => { - var _ref2 = _asyncToGenerator(function* (path) { - return yield statTest(path, function (stats) { - return stats.isDirectory(); - }); - }); + if (this.mark) + e = this._mark(e) - return function isDirectory(_x3) { - return _ref2.apply(this, arguments); - }; -})(); -/** - * Test if a path points to a regular file. - * @param path - */ + if (this.absolute) + e = abs + if (this.matches[index][e]) + return -let isFile = exports.isFile = (() => { - var _ref3 = _asyncToGenerator(function* (path) { - return yield statTest(path, function (stats) { - return stats.isFile(); - }); - }); + if (this.nodir) { + var c = this.cache[abs] + if (c === 'DIR' || Array.isArray(c)) + return + } - return function isFile(_x4) { - return _ref3.apply(this, arguments); - }; -})(); -/** - * Create a symlink at dest that points to src. Adapted from - * https://github.com/lerna/lerna/blob/2f1b87d9e2295f587e4ac74269f714271d8ed428/src/FileSystemUtilities.js#L103. - * - * @param src - * @param dest - * @param type 'dir', 'file', 'junction', or 'exec'. 'exec' on - * windows will use the `cmd-shim` module since symlinks can't be used - * for executable files on windows. - */ + this.matches[index][e] = true + var st = this.statCache[abs] + if (st) + this.emit('stat', e, st) -let createSymlink = exports.createSymlink = (() => { - var _ref4 = _asyncToGenerator(function* (src, dest, type) { - if (process.platform === 'win32') { - if (type === 'exec') { - yield cmdShim(src, dest); - } else { - yield forceCreate(src, dest, type); - } - } else { - const posixType = type === 'exec' ? 'file' : type; - const relativeSource = (0, _path.relative)((0, _path.dirname)(dest), src); - yield forceCreate(relativeSource, dest, posixType); - } - }); + this.emit('match', e) +} - return function createSymlink(_x5, _x6, _x7) { - return _ref4.apply(this, arguments); - }; -})(); +Glob.prototype._readdirInGlobStar = function (abs, cb) { + if (this.aborted) + return -let forceCreate = (() => { - var _ref5 = _asyncToGenerator(function* (src, dest, type) { - try { - // If something exists at `dest` we need to remove it first. - yield unlink(dest); - } catch (error) { - if (error.code !== 'ENOENT') { - throw error; - } - } - yield symlink(src, dest, type); - }); + // follow all symlinked directories forever + // just proceed as if this is a non-globstar situation + if (this.follow) + return this._readdir(abs, false, cb) - return function forceCreate(_x8, _x9, _x10) { - return _ref5.apply(this, arguments); - }; -})(); + var lstatkey = 'lstat\0' + abs + var self = this + var lstatcb = inflight(lstatkey, lstatcb_) -var _cmdShim = __webpack_require__(176); + if (lstatcb) + fs.lstat(abs, lstatcb) -var _cmdShim2 = _interopRequireDefault(_cmdShim); + function lstatcb_ (er, lstat) { + if (er && er.code === 'ENOENT') + return cb() -var _fs = __webpack_require__(13); + var isSym = lstat && lstat.isSymbolicLink() + self.symlinks[abs] = isSym -var _fs2 = _interopRequireDefault(_fs); + // If it's not a symlink or a dir, then it's definitely a regular file. + // don't bother doing a readdir in that case. + if (!isSym && lstat && !lstat.isDirectory()) { + self.cache[abs] = 'FILE' + cb() + } else + self._readdir(abs, false, cb) + } +} -var _mkdirp = __webpack_require__(116); +Glob.prototype._readdir = function (abs, inGlobStar, cb) { + if (this.aborted) + return -var _mkdirp2 = _interopRequireDefault(_mkdirp); + cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) + if (!cb) + return -var _ncp = __webpack_require__(180); + //console.error('RD %j %j', +inGlobStar, abs) + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs, cb) -var _path = __webpack_require__(5); + if (ownProp(this.cache, abs)) { + var c = this.cache[abs] + if (!c || c === 'FILE') + return cb() -var _util = __webpack_require__(14); + if (Array.isArray(c)) + return cb(null, c) + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var self = this + fs.readdir(abs, readdirCb(this, abs, cb)) +} -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ +function readdirCb (self, abs, cb) { + return function (er, entries) { + if (er) + self._readdirError(abs, er, cb) + else + self._readdirEntries(abs, entries, cb) + } +} +Glob.prototype._readdirEntries = function (abs, entries, cb) { + if (this.aborted) + return -const stat = (0, _util.promisify)(_fs2.default.stat); -const readFile = (0, _util.promisify)(_fs2.default.readFile); -const symlink = (0, _util.promisify)(_fs2.default.symlink); -const chmod = (0, _util.promisify)(_fs2.default.chmod); -const cmdShim = (0, _util.promisify)(_cmdShim2.default); -const mkdirp = (0, _util.promisify)(_mkdirp2.default); -const unlink = exports.unlink = (0, _util.promisify)(_fs2.default.unlink); -const copyDirectory = exports.copyDirectory = (0, _util.promisify)(_ncp.ncp); -exports.chmod = chmod; -exports.readFile = readFile; -exports.mkdirp = mkdirp; + // if we haven't asked to stat everything, then just + // assume that everything in there exists, so we can avoid + // having to stat it a second time. + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i ++) { + var e = entries[i] + if (abs === '/') + e = abs + e + else + e = abs + '/' + e + this.cache[e] = true + } + } -/***/ }), -/* 71 */ -/***/ (function(module, exports, __webpack_require__) { + this.cache[abs] = entries + return cb(null, entries) +} -var wrappy = __webpack_require__(120) -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) +Glob.prototype._readdirError = function (f, er, cb) { + if (this.aborted) + return -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) + // handle errors, and cache the information + switch (er.code) { + case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 + case 'ENOTDIR': // totally normal. means it *does* exist. + var abs = this._makeAbs(f) + this.cache[abs] = 'FILE' + if (abs === this.cwdAbs) { + var error = new Error(er.code + ' invalid cwd ' + this.cwd) + error.path = this.cwd + error.code = er.code + this.emit('error', error) + this.abort() + } + break - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) + case 'ENOENT': // not terribly unusual + case 'ELOOP': + case 'ENAMETOOLONG': + case 'UNKNOWN': + this.cache[this._makeAbs(f)] = false + break -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) + default: // some unusual error. Treat as failure. + this.cache[this._makeAbs(f)] = false + if (this.strict) { + this.emit('error', er) + // If the error is handled, then we abort + // if not, we threw out of here + this.abort() + } + if (!this.silent) + console.error('glob error', er) + break } - f.called = false - return f + + return cb() } -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f +Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this + this._readdir(abs, inGlobStar, function (er, entries) { + self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) + }) } -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { +Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { + //console.error('pgs2', prefix, remain[0], entries) -"use strict"; + // no entries means not a dir, so it can never have matches + // foo.txt/** doesn't match foo.txt + if (!entries) + return cb() + // test without the globstar, and with every child both below + // and replacing the globstar. + var remainWithoutGlobStar = remain.slice(1) + var gspref = prefix ? [ prefix ] : [] + var noGlobStar = gspref.concat(remainWithoutGlobStar) -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isLinkDependency = undefined; -exports.readPackageJson = readPackageJson; -exports.writePackageJson = writePackageJson; + // the noGlobStar pattern exits the inGlobStar state + this._process(noGlobStar, index, false, cb) -var _readPkg = __webpack_require__(188); + var isSym = this.symlinks[abs] + var len = entries.length -var _readPkg2 = _interopRequireDefault(_readPkg); + // If it's a symlink, and we're in a globstar, then stop + if (isSym && inGlobStar) + return cb() -var _writePkg = __webpack_require__(212); + for (var i = 0; i < len; i++) { + var e = entries[i] + if (e.charAt(0) === '.' && !this.dot) + continue -var _writePkg2 = _interopRequireDefault(_writePkg); + // these two cases enter the inGlobStar state + var instead = gspref.concat(entries[i], remainWithoutGlobStar) + this._process(instead, index, true, cb) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var below = gspref.concat(entries[i], remain) + this._process(below, index, true, cb) + } -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -function readPackageJson(dir) { - return (0, _readPkg2.default)(dir, { normalize: false }); + cb() } -function writePackageJson(path, json) { - return (0, _writePkg2.default)(path, json); + +Glob.prototype._processSimple = function (prefix, index, cb) { + // XXX review this. Shouldn't it be doing the mounting etc + // before doing stat? kinda weird? + var self = this + this._stat(prefix, function (er, exists) { + self._processSimple2(prefix, index, er, exists, cb) + }) } -const isLinkDependency = exports.isLinkDependency = depVersion => depVersion.startsWith('link:'); +Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { -/***/ }), -/* 73 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return groupBy; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GroupedObservable; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8); -/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription,_Observable,_Subject PURE_IMPORTS_END */ + //console.error('ps2', prefix, exists) + if (!this.matches[index]) + this.matches[index] = Object.create(null) + // If it doesn't exist, then just mark the lack of results + if (!exists) + return cb() + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix) + if (prefix.charAt(0) === '/') { + prefix = path.join(this.root, prefix) + } else { + prefix = path.resolve(this.root, prefix) + if (trail) + prefix += '/' + } + } + if (process.platform === 'win32') + prefix = prefix.replace(/\\/g, '/') -function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) { - return function (source) { - return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector)); - }; + // Mark this as a match + this._emitMatch(index, prefix) + cb() } -var GroupByOperator = /*@__PURE__*/ (function () { - function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) { - this.keySelector = keySelector; - this.elementSelector = elementSelector; - this.durationSelector = durationSelector; - this.subjectSelector = subjectSelector; - } - GroupByOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector)); - }; - return GroupByOperator; -}()); -var GroupBySubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](GroupBySubscriber, _super); - function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) { - var _this = _super.call(this, destination) || this; - _this.keySelector = keySelector; - _this.elementSelector = elementSelector; - _this.durationSelector = durationSelector; - _this.subjectSelector = subjectSelector; - _this.groups = null; - _this.attemptedToUnsubscribe = false; - _this.count = 0; - return _this; - } - GroupBySubscriber.prototype._next = function (value) { - var key; - try { - key = this.keySelector(value); - } - catch (err) { - this.error(err); - return; - } - this._group(value, key); - }; - GroupBySubscriber.prototype._group = function (value, key) { - var groups = this.groups; - if (!groups) { - groups = this.groups = new Map(); - } - var group = groups.get(key); - var element; - if (this.elementSelector) { - try { - element = this.elementSelector(value); - } - catch (err) { - this.error(err); - } - } - else { - element = value; - } - if (!group) { - group = (this.subjectSelector ? this.subjectSelector() : new _Subject__WEBPACK_IMPORTED_MODULE_4__[/* Subject */ "a"]()); - groups.set(key, group); - var groupedObservable = new GroupedObservable(key, group, this); - this.destination.next(groupedObservable); - if (this.durationSelector) { - var duration = void 0; - try { - duration = this.durationSelector(new GroupedObservable(key, group)); - } - catch (err) { - this.error(err); - return; - } - this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this))); - } - } - if (!group.closed) { - group.next(element); - } - }; - GroupBySubscriber.prototype._error = function (err) { - var groups = this.groups; - if (groups) { - groups.forEach(function (group, key) { - group.error(err); - }); - groups.clear(); - } - this.destination.error(err); - }; - GroupBySubscriber.prototype._complete = function () { - var groups = this.groups; - if (groups) { - groups.forEach(function (group, key) { - group.complete(); - }); - groups.clear(); - } - this.destination.complete(); - }; - GroupBySubscriber.prototype.removeGroup = function (key) { - this.groups.delete(key); - }; - GroupBySubscriber.prototype.unsubscribe = function () { - if (!this.closed) { - this.attemptedToUnsubscribe = true; - if (this.count === 0) { - _super.prototype.unsubscribe.call(this); - } - } - }; - return GroupBySubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[/* Subscriber */ "a"])); -var GroupDurationSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](GroupDurationSubscriber, _super); - function GroupDurationSubscriber(key, group, parent) { - var _this = _super.call(this, group) || this; - _this.key = key; - _this.group = group; - _this.parent = parent; - return _this; - } - GroupDurationSubscriber.prototype._next = function (value) { - this.complete(); - }; - GroupDurationSubscriber.prototype._unsubscribe = function () { - var _a = this, parent = _a.parent, key = _a.key; - this.key = this.parent = null; - if (parent) { - parent.removeGroup(key); - } - }; - return GroupDurationSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[/* Subscriber */ "a"])); -var GroupedObservable = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](GroupedObservable, _super); - function GroupedObservable(key, groupSubject, refCountSubscription) { - var _this = _super.call(this) || this; - _this.key = key; - _this.groupSubject = groupSubject; - _this.refCountSubscription = refCountSubscription; - return _this; - } - GroupedObservable.prototype._subscribe = function (subscriber) { - var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__[/* Subscription */ "a"](); - var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject; - if (refCountSubscription && !refCountSubscription.closed) { - subscription.add(new InnerRefCountSubscription(refCountSubscription)); - } - subscription.add(groupSubject.subscribe(subscriber)); - return subscription; - }; - return GroupedObservable; -}(_Observable__WEBPACK_IMPORTED_MODULE_3__[/* Observable */ "a"])); -var InnerRefCountSubscription = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](InnerRefCountSubscription, _super); - function InnerRefCountSubscription(parent) { - var _this = _super.call(this) || this; - _this.parent = parent; - parent.count++; - return _this; - } - InnerRefCountSubscription.prototype.unsubscribe = function () { - var parent = this.parent; - if (!parent.closed && !this.closed) { - _super.prototype.unsubscribe.call(this); - parent.count -= 1; - if (parent.count === 0 && parent.attemptedToUnsubscribe) { - parent.unsubscribe(); - } - } - }; - return InnerRefCountSubscription; -}(_Subscription__WEBPACK_IMPORTED_MODULE_2__[/* Subscription */ "a"])); -//# sourceMappingURL=groupBy.js.map +// Returns either 'DIR', 'FILE', or false +Glob.prototype._stat = function (f, cb) { + var abs = this._makeAbs(f) + var needDir = f.slice(-1) === '/' + if (f.length > this.maxLength) + return cb() -/***/ }), -/* 74 */ -/***/ (function(module, exports, __webpack_require__) { + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs] -"use strict"; -/*! - * is-extendable - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. - */ + if (Array.isArray(c)) + c = 'DIR' + // It exists, but maybe not how we need it + if (!needDir || c === 'DIR') + return cb(null, c) + if (needDir && c === 'FILE') + return cb() -module.exports = function isExtendable(val) { - return typeof val !== 'undefined' && val !== null - && (typeof val === 'object' || typeof val === 'function'); -}; + // otherwise we have to stat, because maybe c=true + // if we know it exists, but not what it is. + } + var exists + var stat = this.statCache[abs] + if (stat !== undefined) { + if (stat === false) + return cb(null, stat) + else { + var type = stat.isDirectory() ? 'DIR' : 'FILE' + if (needDir && type === 'FILE') + return cb() + else + return cb(null, type, stat) + } + } -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { + var self = this + var statcb = inflight('stat\0' + abs, lstatcb_) + if (statcb) + fs.lstat(abs, statcb) -"use strict"; + function lstatcb_ (er, lstat) { + if (lstat && lstat.isSymbolicLink()) { + // If it's a symlink, then treat it as the target, unless + // the target does not exist, then treat it as a file. + return fs.stat(abs, function (er, stat) { + if (er) + self._stat2(f, abs, null, lstat, cb) + else + self._stat2(f, abs, er, stat, cb) + }) + } else { + self._stat2(f, abs, er, lstat, cb) + } + } +} +Glob.prototype._stat2 = function (f, abs, er, stat, cb) { + if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { + this.statCache[abs] = false + return cb() + } -var splitString = __webpack_require__(136); -var utils = module.exports; + var needDir = f.slice(-1) === '/' + this.statCache[abs] = stat -/** - * Module dependencies - */ + if (abs.slice(-1) === '/' && stat && !stat.isDirectory()) + return cb(null, false, stat) -utils.define = __webpack_require__(44); -utils.extend = __webpack_require__(20); -utils.flatten = __webpack_require__(323); -utils.isObject = __webpack_require__(30); -utils.fillRange = __webpack_require__(324); -utils.repeat = __webpack_require__(326); -utils.unique = __webpack_require__(65); + var c = true + if (stat) + c = stat.isDirectory() ? 'DIR' : 'FILE' + this.cache[abs] = this.cache[abs] || c -/** - * Returns true if the given string contains only empty brace sets. - */ + if (needDir && c === 'FILE') + return cb() -utils.isEmptySets = function(str) { - return /^(?:\{,\})+$/.test(str); -}; + return cb(null, c, stat) +} -/** - * Returns true if the given string contains only empty brace sets. - */ -utils.isQuotedString = function(str) { - var open = str.charAt(0); - if (open === '\'' || open === '"' || open === '`') { - return str.slice(-1) === open; - } - return false; -}; +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Create the key to use for memoization. The unique key is generated - * by iterating over the options and concatenating key-value pairs - * to the pattern string. - */ +module.exports = realpath +realpath.realpath = realpath +realpath.sync = realpathSync +realpath.realpathSync = realpathSync +realpath.monkeypatch = monkeypatch +realpath.unmonkeypatch = unmonkeypatch -utils.createKey = function(pattern, options) { - var id = pattern; - if (typeof options === 'undefined') { - return id; - } - var keys = Object.keys(options); - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - id += ';' + key + '=' + String(options[key]); - } - return id; -}; +var fs = __webpack_require__(23) +var origRealpath = fs.realpath +var origRealpathSync = fs.realpathSync -/** - * Normalize options - */ +var version = process.version +var ok = /^v[0-5]\./.test(version) +var old = __webpack_require__(38) -utils.createOptions = function(options) { - var opts = utils.extend.apply(null, arguments); - if (typeof opts.expand === 'boolean') { - opts.optimize = !opts.expand; +function newError (er) { + return er && er.syscall === 'realpath' && ( + er.code === 'ELOOP' || + er.code === 'ENOMEM' || + er.code === 'ENAMETOOLONG' + ) +} + +function realpath (p, cache, cb) { + if (ok) { + return origRealpath(p, cache, cb) } - if (typeof opts.optimize === 'boolean') { - opts.expand = !opts.optimize; + + if (typeof cache === 'function') { + cb = cache + cache = null } - if (opts.optimize === true) { - opts.makeRe = true; + origRealpath(p, cache, function (er, result) { + if (newError(er)) { + old.realpath(p, cache, cb) + } else { + cb(er, result) + } + }) +} + +function realpathSync (p, cache) { + if (ok) { + return origRealpathSync(p, cache) } - return opts; -}; -/** - * Join patterns in `a` to patterns in `b` - */ + try { + return origRealpathSync(p, cache) + } catch (er) { + if (newError(er)) { + return old.realpathSync(p, cache) + } else { + throw er + } + } +} -utils.join = function(a, b, options) { - options = options || {}; - a = utils.arrayify(a); - b = utils.arrayify(b); +function monkeypatch () { + fs.realpath = realpath + fs.realpathSync = realpathSync +} - if (!a.length) return b; - if (!b.length) return a; +function unmonkeypatch () { + fs.realpath = origRealpath + fs.realpathSync = origRealpathSync +} - var len = a.length; - var idx = -1; - var arr = []; - while (++idx < len) { - var val = a[idx]; - if (Array.isArray(val)) { - for (var i = 0; i < val.length; i++) { - val[i] = utils.join(val[i], b, options); - } - arr.push(val); - continue; - } +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { - for (var j = 0; j < b.length; j++) { - var bval = b[j]; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. - if (Array.isArray(bval)) { - arr.push(utils.join(val, bval, options)); - } else { - arr.push(val + bval); - } - } - } - return arr; -}; +var pathModule = __webpack_require__(16); +var isWindows = process.platform === 'win32'; +var fs = __webpack_require__(23); -/** - * Split the given string on `,` if not escaped. - */ +// JavaScript implementation of realpath, ported from node pre-v6 -utils.split = function(str, options) { - var opts = utils.extend({sep: ','}, options); - if (typeof opts.keepQuotes !== 'boolean') { - opts.keepQuotes = true; - } - if (opts.unescape === false) { - opts.keepEscaping = true; - } - return splitString(str, opts, utils.escapeBrackets(opts)); -}; +var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); -/** - * Expand ranges or sets in the given `pattern`. - * - * @param {String} `str` - * @param {Object} `options` - * @return {Object} - */ +function rethrow() { + // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and + // is fairly slow to generate. + var callback; + if (DEBUG) { + var backtrace = new Error; + callback = debugCallback; + } else + callback = missingCallback; -utils.expand = function(str, options) { - var opts = utils.extend({rangeLimit: 10000}, options); - var segs = utils.split(str, opts); - var tok = { segs: segs }; + return callback; - if (utils.isQuotedString(str)) { - return tok; + function debugCallback(err) { + if (err) { + backtrace.message = err.message; + err = backtrace; + missingCallback(err); + } } - if (opts.rangeLimit === true) { - opts.rangeLimit = 10000; + function missingCallback(err) { + if (err) { + if (process.throwDeprecation) + throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs + else if (!process.noDeprecation) { + var msg = 'fs: missing callback ' + (err.stack || err.message); + if (process.traceDeprecation) + console.trace(msg); + else + console.error(msg); + } + } } +} - if (segs.length > 1) { - if (opts.optimize === false) { - tok.val = segs[0]; - return tok; - } +function maybeCallback(cb) { + return typeof cb === 'function' ? cb : rethrow(); +} - tok.segs = utils.stringifyArray(tok.segs); - } else if (segs.length === 1) { - var arr = str.split('..'); +var normalize = pathModule.normalize; - if (arr.length === 1) { - tok.val = tok.segs[tok.segs.length - 1] || tok.val || str; - tok.segs = []; - return tok; - } +// Regexp that finds the next partion of a (partial) path +// result is [base_with_slash, base], e.g. ['somedir/', 'somedir'] +if (isWindows) { + var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; +} else { + var nextPartRe = /(.*?)(?:[\/]+|$)/g; +} - if (arr.length === 2 && arr[0] === arr[1]) { - tok.escaped = true; - tok.val = arr[0]; - tok.segs = []; - return tok; - } +// Regex to find the device root, including trailing slash. E.g. 'c:\\'. +if (isWindows) { + var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; +} else { + var splitRootRe = /^[\/]*/; +} - if (arr.length > 1) { - if (opts.optimize !== false) { - opts.optimize = true; - delete opts.expand; - } +exports.realpathSync = function realpathSync(p, cache) { + // make p is absolute + p = pathModule.resolve(p); - if (opts.optimize !== true) { - var min = Math.min(arr[0], arr[1]); - var max = Math.max(arr[0], arr[1]); - var step = arr[2] || 1; + if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { + return cache[p]; + } - if (opts.rangeLimit !== false && ((max - min) / step >= opts.rangeLimit)) { - throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); - } - } + var original = p, + seenLinks = {}, + knownHard = {}; - arr.push(opts); - tok.segs = utils.fillRange.apply(null, arr); + // current character position in p + var pos; + // the partial path so far, including a trailing slash if any + var current; + // the partial path without a trailing slash (except when pointing at a root) + var base; + // the partial path scanned in the previous round, with slash + var previous; - if (!tok.segs.length) { - tok.escaped = true; - tok.val = str; - return tok; - } + start(); - if (opts.optimize === true) { - tok.segs = utils.stringifyArray(tok.segs); - } + function start() { + // Skip over roots + var m = splitRootRe.exec(p); + pos = m[0].length; + current = m[0]; + base = m[0]; + previous = ''; - if (tok.segs === '') { - tok.val = str; - } else { - tok.val = tok.segs[0]; - } - return tok; + // On windows, check that the root exists. On unix there is no need. + if (isWindows && !knownHard[base]) { + fs.lstatSync(base); + knownHard[base] = true; } - } else { - tok.val = str; } - return tok; -}; -/** - * Ensure commas inside brackets and parens are not split. - * @param {Object} `tok` Token from the `split-string` module - * @return {undefined} - */ + // walk down the path, swapping out linked pathparts for their real + // values + // NB: p.length changes. + while (pos < p.length) { + // find the next part + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; -utils.escapeBrackets = function(options) { - return function(tok) { - if (tok.escaped && tok.val === 'b') { - tok.val = '\\b'; - return; + // continue if not a symlink + if (knownHard[base] || (cache && cache[base] === base)) { + continue; } - if (tok.val !== '(' && tok.val !== '[') return; - var opts = utils.extend({}, options); - var brackets = []; - var parens = []; - var stack = []; - var val = tok.val; - var str = tok.str; - var i = tok.idx - 1; - - while (++i < str.length) { - var ch = str[i]; - - if (ch === '\\') { - val += (opts.keepEscaping === false ? '' : ch) + str[++i]; + var resolvedLink; + if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { + // some known symbolic link. no need to stat again. + resolvedLink = cache[base]; + } else { + var stat = fs.lstatSync(base); + if (!stat.isSymbolicLink()) { + knownHard[base] = true; + if (cache) cache[base] = base; continue; } - if (ch === '(') { - parens.push(ch); - stack.push(ch); - } - - if (ch === '[') { - brackets.push(ch); - stack.push(ch); - } - - if (ch === ')') { - parens.pop(); - stack.pop(); - if (!stack.length) { - val += ch; - break; + // read the link if it wasn't read before + // dev/ino always return 0 on windows, so skip the check. + var linkTarget = null; + if (!isWindows) { + var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + linkTarget = seenLinks[id]; } } - - if (ch === ']') { - brackets.pop(); - stack.pop(); - if (!stack.length) { - val += ch; - break; - } + if (linkTarget === null) { + fs.statSync(base); + linkTarget = fs.readlinkSync(base); } - val += ch; + resolvedLink = pathModule.resolve(previous, linkTarget); + // track this, if given a cache. + if (cache) cache[base] = resolvedLink; + if (!isWindows) seenLinks[id] = linkTarget; } - tok.split = false; - tok.val = val.slice(1); - tok.idx = i; - }; -}; + // resolve the link, then start over + p = pathModule.resolve(resolvedLink, p.slice(pos)); + start(); + } -/** - * Returns true if the given string looks like a regex quantifier - * @return {Boolean} - */ + if (cache) cache[original] = p; -utils.isQuantifier = function(str) { - return /^(?:[0-9]?,[0-9]|[0-9],)$/.test(str); + return p; }; -/** - * Cast `val` to an array. - * @param {*} `val` - */ -utils.stringifyArray = function(arr) { - return [utils.arrayify(arr).join('|')]; -}; +exports.realpath = function realpath(p, cache, cb) { + if (typeof cb !== 'function') { + cb = maybeCallback(cache); + cache = null; + } -/** - * Cast `val` to an array. - * @param {*} `val` - */ + // make p is absolute + p = pathModule.resolve(p); -utils.arrayify = function(arr) { - if (typeof arr === 'undefined') { - return []; - } - if (typeof arr === 'string') { - return [arr]; + if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { + return process.nextTick(cb.bind(null, null, cache[p])); } - return arr; -}; - -/** - * Returns true if the given `str` is a non-empty string - * @return {Boolean} - */ -utils.isString = function(str) { - return str != null && typeof str === 'string'; -}; + var original = p, + seenLinks = {}, + knownHard = {}; -/** - * Get the last element from `array` - * @param {Array} `array` - * @return {*} - */ + // current character position in p + var pos; + // the partial path so far, including a trailing slash if any + var current; + // the partial path without a trailing slash (except when pointing at a root) + var base; + // the partial path scanned in the previous round, with slash + var previous; -utils.last = function(arr, n) { - return arr[arr.length - (n || 1)]; -}; + start(); -utils.escapeRegex = function(str) { - return str.replace(/\\?([!^*?()\[\]{}+?/])/g, '\\$1'); -}; + function start() { + // Skip over roots + var m = splitRootRe.exec(p); + pos = m[0].length; + current = m[0]; + base = m[0]; + previous = ''; + // On windows, check that the root exists. On unix there is no need. + if (isWindows && !knownHard[base]) { + fs.lstat(base, function(err) { + if (err) return cb(err); + knownHard[base] = true; + LOOP(); + }); + } else { + process.nextTick(LOOP); + } + } -/***/ }), -/* 76 */ -/***/ (function(module, exports, __webpack_require__) { + // walk down the path, swapping out linked pathparts for their real + // values + function LOOP() { + // stop if scanned past end of path + if (pos >= p.length) { + if (cache) cache[original] = p; + return cb(null, p); + } -"use strict"; -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ + // find the next part + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; + // continue if not a symlink + if (knownHard[base] || (cache && cache[base] === base)) { + return process.nextTick(LOOP); + } + if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { + // known symbolic link. no need to stat again. + return gotResolvedLink(cache[base]); + } -var isObject = __webpack_require__(30); + return fs.lstat(base, gotStat); + } -function isObjectObject(o) { - return isObject(o) === true - && Object.prototype.toString.call(o) === '[object Object]'; -} + function gotStat(err, stat) { + if (err) return cb(err); -module.exports = function isPlainObject(o) { - var ctor,prot; + // if not a symlink, skip to the next path part + if (!stat.isSymbolicLink()) { + knownHard[base] = true; + if (cache) cache[base] = base; + return process.nextTick(LOOP); + } - if (isObjectObject(o) === false) return false; + // stat & read the link if not read before + // call gotTarget as soon as the link target is known + // dev/ino always return 0 on windows, so skip the check. + if (!isWindows) { + var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + return gotTarget(null, seenLinks[id], base); + } + } + fs.stat(base, function(err) { + if (err) return cb(err); - // If has modified constructor - ctor = o.constructor; - if (typeof ctor !== 'function') return false; + fs.readlink(base, function(err, target) { + if (!isWindows) seenLinks[id] = target; + gotTarget(err, target); + }); + }); + } - // If has modified prototype - prot = ctor.prototype; - if (isObjectObject(prot) === false) return false; + function gotTarget(err, target, base) { + if (err) return cb(err); - // If constructor does not have an Object-specific method - if (prot.hasOwnProperty('isPrototypeOf') === false) { - return false; + var resolvedLink = pathModule.resolve(previous, target); + if (cache) cache[base] = resolvedLink; + gotResolvedLink(resolvedLink); } - // Most likely a plain Object - return true; + function gotResolvedLink(resolvedLink) { + // resolve the link, then start over + p = pathModule.resolve(resolvedLink, p.slice(pos)); + start(); + } }; /***/ }), -/* 77 */ +/* 39 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -/*! - * is-number - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */ +module.exports = minimatch +minimatch.Minimatch = Minimatch +var path = { sep: '/' } +try { + path = __webpack_require__(16) +} catch (er) {} +var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} +var expand = __webpack_require__(40) -var typeOf = __webpack_require__(49); +var plTypes = { + '!': { open: '(?:(?!(?:', close: '))[^/]*?)'}, + '?': { open: '(?:', close: ')?' }, + '+': { open: '(?:', close: ')+' }, + '*': { open: '(?:', close: ')*' }, + '@': { open: '(?:', close: ')' } +} -module.exports = function isNumber(num) { - var type = typeOf(num); +// any single thing other than / +// don't need to escape / when using new RegExp() +var qmark = '[^/]' - if (type === 'string') { - if (!num.trim()) return false; - } else if (type !== 'number') { - return false; - } +// * => any number of characters +var star = qmark + '*?' - return (num - num + 1) >= 0; -}; +// ** when dots are allowed. Anything goes, except .. and . +// not (^ or / followed by one or two dots followed by $ or /), +// followed by anything, any number of times. +var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' +// not a ^ or / followed by a dot, +// followed by anything, any number of times. +var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' -/***/ }), -/* 78 */ -/***/ (function(module, exports) { +// characters that need to be escaped in RegExp. +var reSpecials = charSet('().*{}+?[]^$\\!') -/*! - * get-value - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */ +// "abc" -> { a:true, b:true, c:true } +function charSet (s) { + return s.split('').reduce(function (set, c) { + set[c] = true + return set + }, {}) +} -module.exports = function(obj, prop, a, b, c) { - if (!isObject(obj) || !prop) { - return obj; +// normalizes slashes. +var slashSplit = /\/+/ + +minimatch.filter = filter +function filter (pattern, options) { + options = options || {} + return function (p, i, list) { + return minimatch(p, pattern, options) } +} - prop = toString(prop); +function ext (a, b) { + a = a || {} + b = b || {} + var t = {} + Object.keys(b).forEach(function (k) { + t[k] = b[k] + }) + Object.keys(a).forEach(function (k) { + t[k] = a[k] + }) + return t +} - // allowing for multiple properties to be passed as - // a string or array, but much faster (3-4x) than doing - // `[].slice.call(arguments)` - if (a) prop += '.' + toString(a); - if (b) prop += '.' + toString(b); - if (c) prop += '.' + toString(c); +minimatch.defaults = function (def) { + if (!def || !Object.keys(def).length) return minimatch - if (prop in obj) { - return obj[prop]; - } + var orig = minimatch - var segs = prop.split('.'); - var len = segs.length; - var i = -1; + var m = function minimatch (p, pattern, options) { + return orig.minimatch(p, pattern, ext(def, options)) + } - while (obj && (++i < len)) { - var key = segs[i]; - while (key[key.length - 1] === '\\') { - key = key.slice(0, -1) + '.' + segs[++i]; - } - obj = obj[key]; + m.Minimatch = function Minimatch (pattern, options) { + return new orig.Minimatch(pattern, ext(def, options)) } - return obj; -}; -function isObject(val) { - return val !== null && (typeof val === 'object' || typeof val === 'function'); + return m } -function toString(val) { - if (!val) return ''; - if (Array.isArray(val)) { - return val.join('.'); - } - return val; +Minimatch.defaults = function (def) { + if (!def || !Object.keys(def).length) return Minimatch + return minimatch.defaults(def).Minimatch } +function minimatch (p, pattern, options) { + if (typeof pattern !== 'string') { + throw new TypeError('glob pattern string required') + } -/***/ }), -/* 79 */ -/***/ (function(module, exports, __webpack_require__) { + if (!options) options = {} -"use strict"; + // shortcut: comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + return false + } + // "" only matches "" + if (pattern.trim() === '') return p === '' -/** - * Module dependencies - */ + return new Minimatch(pattern, options).match(p) +} -exports.extend = __webpack_require__(20); -exports.SourceMap = __webpack_require__(393); -exports.sourceMapResolve = __webpack_require__(400); +function Minimatch (pattern, options) { + if (!(this instanceof Minimatch)) { + return new Minimatch(pattern, options) + } -/** - * Convert backslash in the given string to forward slashes - */ + if (typeof pattern !== 'string') { + throw new TypeError('glob pattern string required') + } -exports.unixify = function(fp) { - return fp.split(/\\+/).join('/'); -}; + if (!options) options = {} + pattern = pattern.trim() -/** - * Return true if `val` is a non-empty string - * - * @param {String} `str` - * @return {Boolean} - */ + // windows support: need to use /, not \ + if (path.sep !== '/') { + pattern = pattern.split(path.sep).join('/') + } -exports.isString = function(str) { - return str && typeof str === 'string'; -}; + this.options = options + this.set = [] + this.pattern = pattern + this.regexp = null + this.negate = false + this.comment = false + this.empty = false -/** - * Cast `val` to an array - * @return {Array} - */ + // make the set of regexps etc. + this.make() +} -exports.arrayify = function(val) { - if (typeof val === 'string') return [val]; - return val ? (Array.isArray(val) ? val : [val]) : []; -}; +Minimatch.prototype.debug = function () {} -/** - * Get the last `n` element from the given `array` - * @param {Array} `array` - * @return {*} - */ +Minimatch.prototype.make = make +function make () { + // don't do it more than once. + if (this._made) return -exports.last = function(arr, n) { - return arr[arr.length - (n || 1)]; -}; + var pattern = this.pattern + var options = this.options + // empty patterns and comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + this.comment = true + return + } + if (!pattern) { + this.empty = true + return + } -/***/ }), -/* 80 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + // step 1: figure out negation, etc. + this.parseNegate() -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ConnectableObservable; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return connectableObservableDescriptor; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6); -/* harmony import */ var _operators_refCount__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50); -/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */ + // step 2: expand braces + var set = this.globSet = this.braceExpand() + if (options.debug) this.debug = console.error + this.debug(this.pattern, set) + // step 3: now we have a set, so turn each one into a series of path-portion + // matching patterns. + // These will be regexps, except in the case of "**", which is + // set to the GLOBSTAR object for globstar behavior, + // and will not contain any / characters + set = this.globParts = set.map(function (s) { + return s.split(slashSplit) + }) + this.debug(this.pattern, set) + // glob --> regexps + set = set.map(function (s, si, set) { + return s.map(this.parse, this) + }, this) -var ConnectableObservable = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](ConnectableObservable, _super); - function ConnectableObservable(source, subjectFactory) { - var _this = _super.call(this) || this; - _this.source = source; - _this.subjectFactory = subjectFactory; - _this._refCount = 0; - _this._isComplete = false; - return _this; - } - ConnectableObservable.prototype._subscribe = function (subscriber) { - return this.getSubject().subscribe(subscriber); - }; - ConnectableObservable.prototype.getSubject = function () { - var subject = this._subject; - if (!subject || subject.isStopped) { - this._subject = this.subjectFactory(); - } - return this._subject; - }; - ConnectableObservable.prototype.connect = function () { - var connection = this._connection; - if (!connection) { - this._isComplete = false; - connection = this._connection = new _Subscription__WEBPACK_IMPORTED_MODULE_4__[/* Subscription */ "a"](); - connection.add(this.source - .subscribe(new ConnectableSubscriber(this.getSubject(), this))); - if (connection.closed) { - this._connection = null; - connection = _Subscription__WEBPACK_IMPORTED_MODULE_4__[/* Subscription */ "a"].EMPTY; - } - else { - this._connection = connection; - } - } - return connection; - }; - ConnectableObservable.prototype.refCount = function () { - return Object(_operators_refCount__WEBPACK_IMPORTED_MODULE_5__[/* refCount */ "a"])()(this); - }; - return ConnectableObservable; -}(_Observable__WEBPACK_IMPORTED_MODULE_2__[/* Observable */ "a"])); + this.debug(this.pattern, set) -var connectableProto = ConnectableObservable.prototype; -var connectableObservableDescriptor = { - operator: { value: null }, - _refCount: { value: 0, writable: true }, - _subject: { value: null, writable: true }, - _connection: { value: null, writable: true }, - _subscribe: { value: connectableProto._subscribe }, - _isComplete: { value: connectableProto._isComplete, writable: true }, - getSubject: { value: connectableProto.getSubject }, - connect: { value: connectableProto.connect }, - refCount: { value: connectableProto.refCount } -}; -var ConnectableSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](ConnectableSubscriber, _super); - function ConnectableSubscriber(destination, connectable) { - var _this = _super.call(this, destination) || this; - _this.connectable = connectable; - return _this; - } - ConnectableSubscriber.prototype._error = function (err) { - this._unsubscribe(); - _super.prototype._error.call(this, err); - }; - ConnectableSubscriber.prototype._complete = function () { - this.connectable._isComplete = true; - this._unsubscribe(); - _super.prototype._complete.call(this); - }; - ConnectableSubscriber.prototype._unsubscribe = function () { - var connectable = this.connectable; - if (connectable) { - this.connectable = null; - var connection = connectable._connection; - connectable._refCount = 0; - connectable._subject = null; - connectable._connection = null; - if (connection) { - connection.unsubscribe(); - } - } - }; - return ConnectableSubscriber; -}(_Subject__WEBPACK_IMPORTED_MODULE_1__[/* SubjectSubscriber */ "b"])); -var RefCountOperator = /*@__PURE__*/ (function () { - function RefCountOperator(connectable) { - this.connectable = connectable; - } - RefCountOperator.prototype.call = function (subscriber, source) { - var connectable = this.connectable; - connectable._refCount++; - var refCounter = new RefCountSubscriber(subscriber, connectable); - var subscription = source.subscribe(refCounter); - if (!refCounter.closed) { - refCounter.connection = connectable.connect(); - } - return subscription; - }; - return RefCountOperator; -}()); -var RefCountSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](RefCountSubscriber, _super); - function RefCountSubscriber(destination, connectable) { - var _this = _super.call(this, destination) || this; - _this.connectable = connectable; - return _this; - } - RefCountSubscriber.prototype._unsubscribe = function () { - var connectable = this.connectable; - if (!connectable) { - this.connection = null; - return; - } - this.connectable = null; - var refCount = connectable._refCount; - if (refCount <= 0) { - this.connection = null; - return; - } - connectable._refCount = refCount - 1; - if (refCount > 1) { - this.connection = null; - return; - } - var connection = this.connection; - var sharedConnection = connectable._connection; - this.connection = null; - if (sharedConnection && (!connection || sharedConnection === connection)) { - sharedConnection.unsubscribe(); - } - }; - return RefCountSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[/* Subscriber */ "a"])); -//# sourceMappingURL=ConnectableObservable.js.map + // filter out everything that didn't compile properly. + set = set.filter(function (s) { + return s.indexOf(false) === -1 + }) + this.debug(this.pattern, set) -/***/ }), -/* 81 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + this.set = set +} -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return BehaviorSubject; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8); -/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28); -/** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */ +Minimatch.prototype.parseNegate = parseNegate +function parseNegate () { + var pattern = this.pattern + var negate = false + var options = this.options + var negateOffset = 0 + if (options.nonegate) return + for (var i = 0, l = pattern.length + ; i < l && pattern.charAt(i) === '!' + ; i++) { + negate = !negate + negateOffset++ + } -var BehaviorSubject = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](BehaviorSubject, _super); - function BehaviorSubject(_value) { - var _this = _super.call(this) || this; - _this._value = _value; - return _this; - } - Object.defineProperty(BehaviorSubject.prototype, "value", { - get: function () { - return this.getValue(); - }, - enumerable: true, - configurable: true - }); - BehaviorSubject.prototype._subscribe = function (subscriber) { - var subscription = _super.prototype._subscribe.call(this, subscriber); - if (subscription && !subscription.closed) { - subscriber.next(this._value); - } - return subscription; - }; - BehaviorSubject.prototype.getValue = function () { - if (this.hasError) { - throw this.thrownError; - } - else if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__[/* ObjectUnsubscribedError */ "a"](); - } - else { - return this._value; - } - }; - BehaviorSubject.prototype.next = function (value) { - _super.prototype.next.call(this, this._value = value); - }; - return BehaviorSubject; -}(_Subject__WEBPACK_IMPORTED_MODULE_1__[/* Subject */ "a"])); + if (negateOffset) this.pattern = pattern.substr(negateOffset) + this.negate = negate +} -//# sourceMappingURL=BehaviorSubject.js.map +// Brace expansion: +// a{b,c}d -> abd acd +// a{b,}c -> abc ac +// a{0..3}d -> a0d a1d a2d a3d +// a{b,c{d,e}f}g -> abg acdfg acefg +// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg +// +// Invalid sets are not expanded. +// a{2..}b -> a{2..}b +// a{b}c -> a{b}c +minimatch.braceExpand = function (pattern, options) { + return braceExpand(pattern, options) +} +Minimatch.prototype.braceExpand = braceExpand -/***/ }), -/* 82 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +function braceExpand (pattern, options) { + if (!options) { + if (this instanceof Minimatch) { + options = this.options + } else { + options = {} + } + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return observeOn; }); -/* unused harmony export ObserveOnOperator */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ObserveOnSubscriber; }); -/* unused harmony export ObserveOnMessage */ -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); -/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24); -/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */ + pattern = typeof pattern === 'undefined' + ? this.pattern : pattern + if (typeof pattern === 'undefined') { + throw new TypeError('undefined pattern') + } + if (options.nobrace || + !pattern.match(/\{.*\}/)) { + // shortcut. no need to expand. + return [pattern] + } -function observeOn(scheduler, delay) { - if (delay === void 0) { - delay = 0; - } - return function observeOnOperatorFunction(source) { - return source.lift(new ObserveOnOperator(scheduler, delay)); - }; + return expand(pattern) } -var ObserveOnOperator = /*@__PURE__*/ (function () { - function ObserveOnOperator(scheduler, delay) { - if (delay === void 0) { - delay = 0; - } - this.scheduler = scheduler; - this.delay = delay; - } - ObserveOnOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay)); - }; - return ObserveOnOperator; -}()); -var ObserveOnSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](ObserveOnSubscriber, _super); - function ObserveOnSubscriber(destination, scheduler, delay) { - if (delay === void 0) { - delay = 0; - } - var _this = _super.call(this, destination) || this; - _this.scheduler = scheduler; - _this.delay = delay; - return _this; - } - ObserveOnSubscriber.dispatch = function (arg) { - var notification = arg.notification, destination = arg.destination; - notification.observe(destination); - this.unsubscribe(); - }; - ObserveOnSubscriber.prototype.scheduleMessage = function (notification) { - this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); - }; - ObserveOnSubscriber.prototype._next = function (value) { - this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__[/* Notification */ "a"].createNext(value)); - }; - ObserveOnSubscriber.prototype._error = function (err) { - this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__[/* Notification */ "a"].createError(err)); - }; - ObserveOnSubscriber.prototype._complete = function () { - this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__[/* Notification */ "a"].createComplete()); - }; - return ObserveOnSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[/* Subscriber */ "a"])); +// parse a component of the expanded set. +// At this point, no pattern may contain "/" in it +// so we're going to return a 2d array, where each entry is the full +// pattern, split on '/', and then turned into a regular expression. +// A regexp is made at the end which joins each array with an +// escaped /, and another full one which joins each regexp with |. +// +// Following the lead of Bash 4.1, note that "**" only has special meaning +// when it is the *only* thing in a path portion. Otherwise, any series +// of * is equivalent to a single *. Globstar behavior is enabled by +// default, and can be disabled by setting options.noglobstar. +Minimatch.prototype.parse = parse +var SUBPARSE = {} +function parse (pattern, isSub) { + if (pattern.length > 1024 * 64) { + throw new TypeError('pattern is too long') + } -var ObserveOnMessage = /*@__PURE__*/ (function () { - function ObserveOnMessage(notification, destination) { - this.notification = notification; - this.destination = destination; - } - return ObserveOnMessage; -}()); + var options = this.options -//# sourceMappingURL=observeOn.js.map + // shortcuts + if (!options.noglobstar && pattern === '**') return GLOBSTAR + if (pattern === '') return '' + var re = '' + var hasMagic = !!options.nocase + var escaping = false + // ? => one single character + var patternListStack = [] + var negativeLists = [] + var stateChar + var inClass = false + var reClassStart = -1 + var classStart = -1 + // . and .. never match anything that doesn't start with ., + // even when options.dot is set. + var patternStart = pattern.charAt(0) === '.' ? '' // anything + // not (start or / followed by . or .. followed by / or end) + : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' + : '(?!\\.)' + var self = this -/***/ }), -/* 83 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + function clearStateChar () { + if (stateChar) { + // we had some state-tracking character + // that wasn't consumed by this pass. + switch (stateChar) { + case '*': + re += star + hasMagic = true + break + case '?': + re += qmark + hasMagic = true + break + default: + re += '\\' + stateChar + break + } + self.debug('clearStateChar %j %j', stateChar, re) + stateChar = false + } + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TimeoutError; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/** PURE_IMPORTS_START tslib PURE_IMPORTS_END */ + for (var i = 0, len = pattern.length, c + ; (i < len) && (c = pattern.charAt(i)) + ; i++) { + this.debug('%s\t%s %s %j', pattern, i, re, c) -var TimeoutError = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](TimeoutError, _super); - function TimeoutError() { - var _this = _super.call(this, 'Timeout has occurred') || this; - _this.name = 'TimeoutError'; - Object.setPrototypeOf(_this, TimeoutError.prototype); - return _this; + // skip over any that are escaped. + if (escaping && reSpecials[c]) { + re += '\\' + c + escaping = false + continue } - return TimeoutError; -}(Error)); - -//# sourceMappingURL=TimeoutError.js.map + switch (c) { + case '/': + // completely not allowed, even escaped. + // Should already be path-split by now. + return false -/***/ }), -/* 84 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + case '\\': + clearStateChar() + escaping = true + continue -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return concatAll; }); -/* harmony import */ var _mergeAll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55); -/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */ + // the various stateChar values + // for the "extglob" stuff. + case '?': + case '*': + case '+': + case '@': + case '!': + this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) -function concatAll() { - return Object(_mergeAll__WEBPACK_IMPORTED_MODULE_0__[/* mergeAll */ "a"])(1); -} -//# sourceMappingURL=concatAll.js.map + // all of those are literals inside a class, except that + // the glob [!a] means [^a] in regexp + if (inClass) { + this.debug(' in class') + if (c === '!' && i === classStart + 1) c = '^' + re += c + continue + } + // if we already have a stateChar, then it means + // that there was something like ** or +? in there. + // Handle the stateChar, then proceed with this one. + self.debug('call clearStateChar %j', stateChar) + clearStateChar() + stateChar = c + // if extglob is disabled, then +(asdf|foo) isn't a thing. + // just clear the statechar *now*, rather than even diving into + // the patternList stuff. + if (options.noext) clearStateChar() + continue -/***/ }), -/* 85 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + case '(': + if (inClass) { + re += '(' + continue + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return merge; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12); -/* harmony import */ var _operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55); -/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18); -/** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */ + if (!stateChar) { + re += '\\(' + continue + } + patternListStack.push({ + type: stateChar, + start: i - 1, + reStart: re.length, + open: plTypes[stateChar].open, + close: plTypes[stateChar].close + }) + // negation is (?:(?!js)[^/]*) + re += stateChar === '!' ? '(?:(?!(?:' : '(?:' + this.debug('plType %j %j', stateChar, re) + stateChar = false + continue - - -function merge() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - var concurrent = Number.POSITIVE_INFINITY; - var scheduler = null; - var last = observables[observables.length - 1]; - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__[/* isScheduler */ "a"])(last)) { - scheduler = observables.pop(); - if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') { - concurrent = observables.pop(); + case ')': + if (inClass || !patternListStack.length) { + re += '\\)' + continue } - } - else if (typeof last === 'number') { - concurrent = observables.pop(); - } - if (scheduler === null && observables.length === 1 && observables[0] instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__[/* Observable */ "a"]) { - return observables[0]; - } - return Object(_operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__[/* mergeAll */ "a"])(concurrent)(Object(_fromArray__WEBPACK_IMPORTED_MODULE_3__[/* fromArray */ "a"])(observables, scheduler)); -} -//# sourceMappingURL=merge.js.map - -/***/ }), -/* 86 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + clearStateChar() + hasMagic = true + var pl = patternListStack.pop() + // negation is (?:(?!js)[^/]*) + // The others are (?:) + re += pl.close + if (pl.type === '!') { + negativeLists.push(pl) + } + pl.reEnd = re.length + continue -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return race; }); -/* unused harmony export RaceOperator */ -/* unused harmony export RaceSubscriber */ -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11); -/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3); -/** PURE_IMPORTS_START tslib,_util_isArray,_fromArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ + case '|': + if (inClass || !patternListStack.length || escaping) { + re += '\\|' + escaping = false + continue + } + clearStateChar() + re += '|' + continue + // these are mostly the same in regexp and glob + case '[': + // swallow any state-tracking char before the [ + clearStateChar() + if (inClass) { + re += '\\' + c + continue + } + inClass = true + classStart = i + reClassStart = re.length + re += c + continue -function race() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - if (observables.length === 1) { - if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[/* isArray */ "a"])(observables[0])) { - observables = observables[0]; - } - else { - return observables[0]; + case ']': + // a right bracket shall lose its special + // meaning and represent itself in + // a bracket expression if it occurs + // first in the list. -- POSIX.2 2.8.3.2 + if (i === classStart + 1 || !inClass) { + re += '\\' + c + escaping = false + continue } - } - return Object(_fromArray__WEBPACK_IMPORTED_MODULE_2__[/* fromArray */ "a"])(observables, undefined).lift(new RaceOperator()); -} -var RaceOperator = /*@__PURE__*/ (function () { - function RaceOperator() { - } - RaceOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new RaceSubscriber(subscriber)); - }; - return RaceOperator; -}()); -var RaceSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](RaceSubscriber, _super); - function RaceSubscriber(destination) { - var _this = _super.call(this, destination) || this; - _this.hasFirst = false; - _this.observables = []; - _this.subscriptions = []; - return _this; - } - RaceSubscriber.prototype._next = function (observable) { - this.observables.push(observable); - }; - RaceSubscriber.prototype._complete = function () { - var observables = this.observables; - var len = observables.length; - if (len === 0) { - this.destination.complete(); - } - else { - for (var i = 0; i < len && !this.hasFirst; i++) { - var observable = observables[i]; - var subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[/* subscribeToResult */ "a"])(this, observable, observable, i); - if (this.subscriptions) { - this.subscriptions.push(subscription); - } - this.add(subscription); - } - this.observables = null; - } - }; - RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - if (!this.hasFirst) { - this.hasFirst = true; - for (var i = 0; i < this.subscriptions.length; i++) { - if (i !== outerIndex) { - var subscription = this.subscriptions[i]; - subscription.unsubscribe(); - this.remove(subscription); - } - } - this.subscriptions = null; + // handle the case where we left a class open. + // "[z-a]" is valid, equivalent to "\[z-a\]" + if (inClass) { + // split where the last [ was, make sure we don't have + // an invalid re. if so, re-walk the contents of the + // would-be class to re-translate any characters that + // were passed through as-is + // TODO: It would probably be faster to determine this + // without a try/catch and a new RegExp, but it's tricky + // to do safely. For now, this is safe and works. + var cs = pattern.substring(classStart + 1, i) + try { + RegExp('[' + cs + ']') + } catch (er) { + // not a valid class! + var sp = this.parse(cs, SUBPARSE) + re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' + hasMagic = hasMagic || sp[1] + inClass = false + continue + } } - this.destination.next(innerValue); - }; - return RaceSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[/* OuterSubscriber */ "a"])); -//# sourceMappingURL=race.js.map + // finish up the class. + hasMagic = true + inClass = false + re += c + continue + default: + // swallow any state char that wasn't consumed + clearStateChar() -/***/ }), -/* 87 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + if (escaping) { + // no need + escaping = false + } else if (reSpecials[c] + && !(c === '^' && inClass)) { + re += '\\' + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return timer; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10); -/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12); -/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */ + re += c + } // switch + } // for + // handle the case where we left a class open. + // "[abc" is valid, equivalent to "\[abc" + if (inClass) { + // split where the last [ was, and escape it + // this is a huge pita. We now have to re-walk + // the contents of the would-be class to re-translate + // any characters that were passed through as-is + cs = pattern.substr(classStart + 1) + sp = this.parse(cs, SUBPARSE) + re = re.substr(0, reClassStart) + '\\[' + sp[0] + hasMagic = hasMagic || sp[1] + } + // handle the case where we had a +( thing at the *end* + // of the pattern. + // each pattern list stack adds 3 chars, and we need to go through + // and escape any | chars that were passed through as-is for the regexp. + // Go through and escape them, taking care not to double-escape any + // | chars that were already escaped. + for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { + var tail = re.slice(pl.reStart + pl.open.length) + this.debug('setting tail', re, pl) + // maybe some even number of \, then maybe 1 \, followed by a | + tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { + if (!$2) { + // the | isn't already escaped, so escape it. + $2 = '\\' + } -function timer(dueTime, periodOrScheduler, scheduler) { - if (dueTime === void 0) { - dueTime = 0; - } - var period = -1; - if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__[/* isNumeric */ "a"])(periodOrScheduler)) { - period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler); - } - else if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__[/* isScheduler */ "a"])(periodOrScheduler)) { - scheduler = periodOrScheduler; - } - if (!Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__[/* isScheduler */ "a"])(scheduler)) { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[/* async */ "a"]; - } - return new _Observable__WEBPACK_IMPORTED_MODULE_0__[/* Observable */ "a"](function (subscriber) { - var due = Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__[/* isNumeric */ "a"])(dueTime) - ? dueTime - : (+dueTime - scheduler.now()); - return scheduler.schedule(dispatch, due, { - index: 0, period: period, subscriber: subscriber - }); - }); -} -function dispatch(state) { - var index = state.index, period = state.period, subscriber = state.subscriber; - subscriber.next(index); - if (subscriber.closed) { - return; - } - else if (period === -1) { - return subscriber.complete(); - } - state.index = index + 1; - this.schedule(state, period); -} -//# sourceMappingURL=timer.js.map + // need to escape all those slashes *again*, without escaping the + // one that we need for escaping the | character. As it works out, + // escaping an even number of slashes can be done by simply repeating + // it exactly after itself. That's why this trick works. + // + // I am sorry that you have to see this. + return $1 + $1 + $2 + '|' + }) + this.debug('tail=%j\n %s', tail, tail, pl, re) + var t = pl.type === '*' ? star + : pl.type === '?' ? qmark + : '\\' + pl.type -/***/ }), -/* 88 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + hasMagic = true + re = re.slice(0, pl.reStart) + t + '\\(' + tail + } -"use strict"; + // handle trailing things that only matter at the very end. + clearStateChar() + if (escaping) { + // trailing \\ + re += '\\\\' + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/tslib/tslib.es6.js -var tslib_es6 = __webpack_require__(0); + // only need to apply the nodot start if the re starts with + // something that could conceivably capture a dot + var addPatternStart = false + switch (re.charAt(0)) { + case '.': + case '[': + case '(': addPatternStart = true + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js + 1 modules -var AsyncAction = __webpack_require__(37); + // Hack to work around lack of negative lookbehind in JS + // A pattern like: *.!(x).!(y|z) needs to ensure that a name + // like 'a.xyz.yz' doesn't match. So, the first negative + // lookahead, has to look ALL the way ahead, to the end of + // the pattern. + for (var n = negativeLists.length - 1; n > -1; n--) { + var nl = negativeLists[n] -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js -/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */ + var nlBefore = re.slice(0, nl.reStart) + var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) + var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) + var nlAfter = re.slice(nl.reEnd) + nlLast += nlAfter -var QueueAction_QueueAction = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](QueueAction, _super); - function QueueAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - return _this; + // Handle nested stuff like *(*.js|!(*.json)), where open parens + // mean that we should *not* include the ) in the bit that is considered + // "after" the negated section. + var openParensBefore = nlBefore.split('(').length - 1 + var cleanAfter = nlAfter + for (i = 0; i < openParensBefore; i++) { + cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') } - QueueAction.prototype.schedule = function (state, delay) { - if (delay === void 0) { - delay = 0; - } - if (delay > 0) { - return _super.prototype.schedule.call(this, state, delay); - } - this.delay = delay; - this.state = state; - this.scheduler.flush(this); - return this; - }; - QueueAction.prototype.execute = function (state, delay) { - return (delay > 0 || this.closed) ? - _super.prototype.execute.call(this, state, delay) : - this._execute(state, delay); - }; - QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); - } - return scheduler.flush(this); - }; - return QueueAction; -}(AsyncAction["a" /* AsyncAction */])); - -//# sourceMappingURL=QueueAction.js.map - -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js -var AsyncScheduler = __webpack_require__(35); - -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js -/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ - + nlAfter = cleanAfter -var QueueScheduler_QueueScheduler = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](QueueScheduler, _super); - function QueueScheduler() { - return _super !== null && _super.apply(this, arguments) || this; + var dollar = '' + if (nlAfter === '' && isSub !== SUBPARSE) { + dollar = '$' } - return QueueScheduler; -}(AsyncScheduler["a" /* AsyncScheduler */])); + var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast + re = newRe + } -//# sourceMappingURL=QueueScheduler.js.map + // if the re is not "" at this point, then we need to make sure + // it doesn't match against an empty path part. + // Otherwise a/* will match a/, which it should not. + if (re !== '' && hasMagic) { + re = '(?=.)' + re + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/queue.js -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return queue; }); -/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */ + if (addPatternStart) { + re = patternStart + re + } + // parsing just a piece of a larger pattern. + if (isSub === SUBPARSE) { + return [re, hasMagic] + } -var queue = /*@__PURE__*/ new QueueScheduler_QueueScheduler(QueueAction_QueueAction); -//# sourceMappingURL=queue.js.map + // skip the regexp for non-magical patterns + // unescape anything in it, though, so that it'll be + // an exact match against a file etc. + if (!hasMagic) { + return globUnescape(pattern) + } + var flags = options.nocase ? 'i' : '' + try { + var regExp = new RegExp('^' + re + '$', flags) + } catch (er) { + // If it was an invalid regular expression, then it can't match + // anything. This trick looks for a character after the end of + // the string, which is of course impossible, except in multi-line + // mode, but it's not a /m regex. + return new RegExp('$.') + } -/***/ }), -/* 89 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + regExp._glob = pattern + regExp._src = re -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isObject; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function isObject(x) { - return x != null && typeof x === 'object'; + return regExp } -//# sourceMappingURL=isObject.js.map - - -/***/ }), -/* 90 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SubjectSubscription; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); -/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */ - -var SubjectSubscription = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "a"](SubjectSubscription, _super); - function SubjectSubscription(subject, subscriber) { - var _this = _super.call(this) || this; - _this.subject = subject; - _this.subscriber = subscriber; - _this.closed = false; - return _this; - } - SubjectSubscription.prototype.unsubscribe = function () { - if (this.closed) { - return; - } - this.closed = true; - var subject = this.subject; - var observers = subject.observers; - this.subject = null; - if (!observers || observers.length === 0 || subject.isStopped || subject.closed) { - return; - } - var subscriberIndex = observers.indexOf(this.subscriber); - if (subscriberIndex !== -1) { - observers.splice(subscriberIndex, 1); - } - }; - return SubjectSubscription; -}(_Subscription__WEBPACK_IMPORTED_MODULE_1__[/* Subscription */ "a"])); +minimatch.makeRe = function (pattern, options) { + return new Minimatch(pattern, options || {}).makeRe() +} -//# sourceMappingURL=SubjectSubscription.js.map +Minimatch.prototype.makeRe = makeRe +function makeRe () { + if (this.regexp || this.regexp === false) return this.regexp + // at this point, this.set is a 2d array of partial + // pattern strings, or "**". + // + // It's better to use .match(). This function shouldn't + // be used, really, but it's pretty convenient sometimes, + // when you just want to work with a regex. + var set = this.set -/***/ }), -/* 91 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + if (!set.length) { + this.regexp = false + return this.regexp + } + var options = this.options -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return subscribeToArray; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var subscribeToArray = function (array) { - return function (subscriber) { - for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) { - subscriber.next(array[i]); - } - if (!subscriber.closed) { - subscriber.complete(); - } - }; -}; -//# sourceMappingURL=subscribeToArray.js.map + var twoStar = options.noglobstar ? star + : options.dot ? twoStarDot + : twoStarNoDot + var flags = options.nocase ? 'i' : '' + var re = set.map(function (pattern) { + return pattern.map(function (p) { + return (p === GLOBSTAR) ? twoStar + : (typeof p === 'string') ? regExpEscape(p) + : p._src + }).join('\\\/') + }).join('|') -/***/ }), -/* 92 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + // must match entire pattern + // ending in a * or ** will make it less strict. + re = '^(?:' + re + ')$' -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return subscribeTo; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); -/* harmony import */ var _subscribeToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(91); -/* harmony import */ var _subscribeToPromise__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96); -/* harmony import */ var _subscribeToIterable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(97); -/* harmony import */ var _subscribeToObservable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(93); -/* harmony import */ var _isArrayLike__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(94); -/* harmony import */ var _isPromise__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(95); -/* harmony import */ var _isObject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(89); -/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(25); -/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(27); -/** PURE_IMPORTS_START _Observable,_subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */ + // can match anything, as long as it's not this. + if (this.negate) re = '^(?!' + re + ').*$' + try { + this.regexp = new RegExp(re, flags) + } catch (ex) { + this.regexp = false + } + return this.regexp +} +minimatch.match = function (list, pattern, options) { + options = options || {} + var mm = new Minimatch(pattern, options) + list = list.filter(function (f) { + return mm.match(f) + }) + if (mm.options.nonull && !list.length) { + list.push(pattern) + } + return list +} +Minimatch.prototype.match = match +function match (f, partial) { + this.debug('match', f, this.pattern) + // short-circuit in the case of busted things. + // comments, etc. + if (this.comment) return false + if (this.empty) return f === '' + if (f === '/' && partial) return true + var options = this.options + // windows: need to use /, not \ + if (path.sep !== '/') { + f = f.split(path.sep).join('/') + } + // treat the test path as a set of pathparts. + f = f.split(slashSplit) + this.debug(this.pattern, 'split', f) + // just ONE of the pattern sets in this.set needs to match + // in order for it to be valid. If negating, then just one + // match means that we have failed. + // Either way, return on the first hit. + var set = this.set + this.debug(this.pattern, 'set', set) -var subscribeTo = function (result) { - if (result instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__[/* Observable */ "a"]) { - return function (subscriber) { - if (result._isScalar) { - subscriber.next(result.value); - subscriber.complete(); - return undefined; - } - else { - return result.subscribe(subscriber); - } - }; - } - else if (result && typeof result[_symbol_observable__WEBPACK_IMPORTED_MODULE_9__[/* observable */ "a"]] === 'function') { - return Object(_subscribeToObservable__WEBPACK_IMPORTED_MODULE_4__[/* subscribeToObservable */ "a"])(result); - } - else if (Object(_isArrayLike__WEBPACK_IMPORTED_MODULE_5__[/* isArrayLike */ "a"])(result)) { - return Object(_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__[/* subscribeToArray */ "a"])(result); - } - else if (Object(_isPromise__WEBPACK_IMPORTED_MODULE_6__[/* isPromise */ "a"])(result)) { - return Object(_subscribeToPromise__WEBPACK_IMPORTED_MODULE_2__[/* subscribeToPromise */ "a"])(result); - } - else if (result && typeof result[_symbol_iterator__WEBPACK_IMPORTED_MODULE_8__[/* iterator */ "a"]] === 'function') { - return Object(_subscribeToIterable__WEBPACK_IMPORTED_MODULE_3__[/* subscribeToIterable */ "a"])(result); + // Find the basename of the path by looking for the last non-empty segment + var filename + var i + for (i = f.length - 1; i >= 0; i--) { + filename = f[i] + if (filename) break + } + + for (i = 0; i < set.length; i++) { + var pattern = set[i] + var file = f + if (options.matchBase && pattern.length === 1) { + file = [filename] } - else { - var value = Object(_isObject__WEBPACK_IMPORTED_MODULE_7__[/* isObject */ "a"])(result) ? 'an invalid object' : "'" + result + "'"; - var msg = "You provided " + value + " where a stream was expected." - + ' You can provide an Observable, Promise, Array, or Iterable.'; - throw new TypeError(msg); + var hit = this.matchOne(file, pattern, partial) + if (hit) { + if (options.flipNegate) return true + return !this.negate } -}; -//# sourceMappingURL=subscribeTo.js.map - - -/***/ }), -/* 93 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return subscribeToObservable; }); -/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27); -/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */ - -var subscribeToObservable = function (obj) { - return function (subscriber) { - var obs = obj[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "a"]](); - if (typeof obs.subscribe !== 'function') { - throw new TypeError('Provided object does not correctly implement Symbol.observable'); - } - else { - return obs.subscribe(subscriber); - } - }; -}; -//# sourceMappingURL=subscribeToObservable.js.map - - -/***/ }), -/* 94 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isArrayLike; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; }); -//# sourceMappingURL=isArrayLike.js.map - - -/***/ }), -/* 95 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + } -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isPromise; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function isPromise(value) { - return value && typeof value.subscribe !== 'function' && typeof value.then === 'function'; + // didn't get any hits. this is success if it's a negative + // pattern, failure otherwise. + if (options.flipNegate) return false + return this.negate } -//# sourceMappingURL=isPromise.js.map +// set partial to true to test if, for example, +// "/a/b" matches the start of "/*/b/*/d" +// Partial means, if you run out of file before you run +// out of pattern, then that's fine, as long as all +// the parts match. +Minimatch.prototype.matchOne = function (file, pattern, partial) { + var options = this.options -/***/ }), -/* 96 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + this.debug('matchOne', + { 'this': this, file: file, pattern: pattern }) -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return subscribeToPromise; }); -/* harmony import */ var _hostReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41); -/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */ + this.debug('matchOne', file.length, pattern.length) -var subscribeToPromise = function (promise) { - return function (subscriber) { - promise.then(function (value) { - if (!subscriber.closed) { - subscriber.next(value); - subscriber.complete(); - } - }, function (err) { return subscriber.error(err); }) - .then(null, _hostReportError__WEBPACK_IMPORTED_MODULE_0__[/* hostReportError */ "a"]); - return subscriber; - }; -}; -//# sourceMappingURL=subscribeToPromise.js.map + for (var fi = 0, + pi = 0, + fl = file.length, + pl = pattern.length + ; (fi < fl) && (pi < pl) + ; fi++, pi++) { + this.debug('matchOne loop') + var p = pattern[pi] + var f = file[fi] + this.debug(pattern, p, f) -/***/ }), -/* 97 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + // should be impossible. + // some invalid regexp stuff in the set. + if (p === false) return false -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return subscribeToIterable; }); -/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25); -/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */ + if (p === GLOBSTAR) { + this.debug('GLOBSTAR', [pattern, p, f]) -var subscribeToIterable = function (iterable) { - return function (subscriber) { - var iterator = iterable[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__[/* iterator */ "a"]](); - do { - var item = iterator.next(); - if (item.done) { - subscriber.complete(); - break; - } - subscriber.next(item.value); - if (subscriber.closed) { - break; - } - } while (true); - if (typeof iterator.return === 'function') { - subscriber.add(function () { - if (iterator.return) { - iterator.return(); - } - }); + // "**" + // a/**/b/**/c would match the following: + // a/b/x/y/z/c + // a/x/y/z/b/c + // a/b/x/b/x/c + // a/b/c + // To do this, take the rest of the pattern after + // the **, and see if it would match the file remainder. + // If so, return success. + // If not, the ** "swallows" a segment, and try again. + // This is recursively awful. + // + // a/**/b/**/c matching a/b/x/y/z/c + // - a matches a + // - doublestar + // - matchOne(b/x/y/z/c, b/**/c) + // - b matches b + // - doublestar + // - matchOne(x/y/z/c, c) -> no + // - matchOne(y/z/c, c) -> no + // - matchOne(z/c, c) -> no + // - matchOne(c, c) yes, hit + var fr = fi + var pr = pi + 1 + if (pr === pl) { + this.debug('** at the end') + // a ** at the end will just swallow the rest. + // We have found a match. + // however, it will not swallow /.x, unless + // options.dot is set. + // . and .. are *never* matched by **, for explosively + // exponential reasons. + for (; fi < fl; fi++) { + if (file[fi] === '.' || file[fi] === '..' || + (!options.dot && file[fi].charAt(0) === '.')) return false } - return subscriber; - }; -}; -//# sourceMappingURL=subscribeToIterable.js.map + return true + } + // ok, let's see if we can swallow whatever we can. + while (fr < fl) { + var swallowee = file[fr] -/***/ }), -/* 98 */ -/***/ (function(module, exports, __webpack_require__) { + this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) -"use strict"; + // XXX remove this slice. Just pass the start index. + if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { + this.debug('globstar found match!', fr, fl, swallowee) + // found a match. + return true + } else { + // can't swallow "." or ".." ever. + // can only swallow ".foo" when explicitly asked. + if (swallowee === '.' || swallowee === '..' || + (!options.dot && swallowee.charAt(0) === '.')) { + this.debug('dot detected!', file, fr, pattern, pr) + break + } + // ** swallows a segment, and continue. + this.debug('globstar swallow a segment, and continue') + fr++ + } + } -Object.defineProperty(exports, "__esModule", { - value: true -}); + // no match was found. + // However, in partial mode, we can't say this is necessarily over. + // If there's more *pattern* left, then + if (partial) { + // ran out of file + this.debug('\n>>> no match, partial?', file, fr, pattern, pr) + if (fr === fl) return true + } + return false + } -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -let parallelizeBatches = exports.parallelizeBatches = (() => { - var _ref = _asyncToGenerator(function* (batches, fn) { - for (const batch of batches) { - // We need to make sure the entire batch has completed before we can move on - // to the next batch - yield parallelize(batch, fn); - } - }); + // something other than ** + // non-magic patterns just have to match exactly + // patterns with magic have been turned into regexps. + var hit + if (typeof p === 'string') { + if (options.nocase) { + hit = f.toLowerCase() === p.toLowerCase() + } else { + hit = f === p + } + this.debug('string match', p, f, hit) + } else { + hit = f.match(p) + this.debug('pattern match', p, f, hit) + } - return function parallelizeBatches(_x, _x2) { - return _ref.apply(this, arguments); - }; -})(); + if (!hit) return false + } -let parallelize = exports.parallelize = (() => { - var _ref2 = _asyncToGenerator(function* (items, fn, concurrency = 4) { - if (items.length === 0) { - return; - } - return new Promise(function (resolve, reject) { - let scheduleItem = (() => { - var _ref3 = _asyncToGenerator(function* (item) { - activePromises++; - try { - yield fn(item); - activePromises--; - if (values.length > 0) { - // We have more work to do, so we schedule the next promise - scheduleItem(values.shift()); - } else if (activePromises === 0) { - // We have no more values left, and all items have completed, so we've - // completed all the work. - resolve(); - } - } catch (error) { - reject(error); - } - }); + // Note: ending in / means that we'll get a final "" + // at the end of the pattern. This can only match a + // corresponding "" at the end of the file. + // If the file ends in /, then it can only match a + // a pattern that ends in /, unless the pattern just + // doesn't have any more for it. But, a/b/ should *not* + // match "a/b/*", even though "" matches against the + // [^/]*? pattern, except in partial mode, where it might + // simply not be reached yet. + // However, a/b/ should still satisfy a/* - return function scheduleItem(_x5) { - return _ref3.apply(this, arguments); - }; - })(); + // now either we fell off the end of the pattern, or we're done. + if (fi === fl && pi === pl) { + // ran out of pattern and filename at the same time. + // an exact hit! + return true + } else if (fi === fl) { + // ran out of file, but still had pattern left. + // this is ok if we're doing the match as part of + // a glob fs traversal. + return partial + } else if (pi === pl) { + // ran out of pattern, still have file left. + // this is only acceptable if we're on the very last + // empty segment of a file with a trailing slash. + // a/* should match a/b/ + var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') + return emptyFileEnd + } - let activePromises = 0; - const values = items.slice(0); + // should be unreachable. + throw new Error('wtf?') +} - values.splice(0, concurrency).map(scheduleItem); - }); - }); +// replace stuff like \* with * +function globUnescape (s) { + return s.replace(/\\(.)/g, '$1') +} - return function parallelize(_x3, _x4) { - return _ref2.apply(this, arguments); - }; -})(); +function regExpEscape (s) { + return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') +} -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /***/ }), -/* 99 */ +/* 40 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = minimatch -minimatch.Minimatch = Minimatch +var concatMap = __webpack_require__(41); +var balanced = __webpack_require__(42); -var path = { sep: '/' } -try { - path = __webpack_require__(5) -} catch (er) {} +module.exports = expandTop; -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} -var expand = __webpack_require__(182) +var escSlash = '\0SLASH'+Math.random()+'\0'; +var escOpen = '\0OPEN'+Math.random()+'\0'; +var escClose = '\0CLOSE'+Math.random()+'\0'; +var escComma = '\0COMMA'+Math.random()+'\0'; +var escPeriod = '\0PERIOD'+Math.random()+'\0'; -var plTypes = { - '!': { open: '(?:(?!(?:', close: '))[^/]*?)'}, - '?': { open: '(?:', close: ')?' }, - '+': { open: '(?:', close: ')+' }, - '*': { open: '(?:', close: ')*' }, - '@': { open: '(?:', close: ')' } +function numeric(str) { + return parseInt(str, 10) == str + ? parseInt(str, 10) + : str.charCodeAt(0); } -// any single thing other than / -// don't need to escape / when using new RegExp() -var qmark = '[^/]' - -// * => any number of characters -var star = qmark + '*?' - -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' - -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' - -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!') +function escapeBraces(str) { + return str.split('\\\\').join(escSlash) + .split('\\{').join(escOpen) + .split('\\}').join(escClose) + .split('\\,').join(escComma) + .split('\\.').join(escPeriod); +} -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true - return set - }, {}) +function unescapeBraces(str) { + return str.split(escSlash).join('\\') + .split(escOpen).join('{') + .split(escClose).join('}') + .split(escComma).join(',') + .split(escPeriod).join('.'); } -// normalizes slashes. -var slashSplit = /\/+/ -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} +// Basically just str.split(","), but handling cases +// where we have nested braced sections, which should be +// treated as individual members, like {a,{b,c},d} +function parseCommaParts(str) { + if (!str) + return ['']; -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} + var parts = []; + var m = balanced('{', '}', str); -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch + if (!m) + return str.split(','); - var orig = minimatch + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(','); - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) + p[p.length-1] += '{' + body + '}'; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length-1] += postParts.shift(); + p.push.apply(p, postParts); } - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } + parts.push.apply(parts, p); - return m + return parts; } -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} +function expandTop(str) { + if (!str) + return []; -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') + // I don't know why Bash 4.3 does this, but it does. + // Anything starting with {} will have the first two bytes preserved + // but *only* at the top level, so {},a}b will not expand to anything, + // but a{},b}c will be expanded to [a}c,abc]. + // One could argue that this is a bug in Bash, but since the goal of + // this module is to match Bash's rules, we escape a leading {} + if (str.substr(0, 2) === '{}') { + str = '\\{\\}' + str.substr(2); } - if (!options) options = {} + return expand(escapeBraces(str), true).map(unescapeBraces); +} - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } +function identity(e) { + return e; +} - // "" only matches "" - if (pattern.trim() === '') return p === '' +function embrace(str) { + return '{' + str + '}'; +} +function isPadded(el) { + return /^-?0\d/.test(el); +} - return new Minimatch(pattern, options).match(p) +function lte(i, y) { + return i <= y; +} +function gte(i, y) { + return i >= y; } -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } +function expand(str, isTop) { + var expansions = []; - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } + var m = balanced('{', '}', str); + if (!m || /\$$/.test(m.pre)) return [str]; - if (!options) options = {} - pattern = pattern.trim() + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(',') >= 0; + if (!isSequence && !isOptions) { + // {a},b} + if (m.post.match(/,.*\}/)) { + str = m.pre + '{' + m.body + escClose + m.post; + return expand(str); + } + return [str]; + } - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/') + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + // x{{a,b}}y ==> x{a}y x{b}y + n = expand(n[0], false).map(embrace); + if (n.length === 1) { + var post = m.post.length + ? expand(m.post, false) + : ['']; + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } + } } - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false + // at this point, n is the parts, and we know it's not a comma set + // with a single entry. - // make the set of regexps etc. - this.make() -} + // no need to expand pre, since it is guaranteed to be free of brace-sets + var pre = m.pre; + var post = m.post.length + ? expand(m.post, false) + : ['']; -Minimatch.prototype.debug = function () {} + var N; -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length) + var incr = n.length == 3 + ? Math.abs(numeric(n[2])) + : 1; + var test = lte; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; + } + var pad = n.some(isPadded); - var pattern = this.pattern - var options = this.options + N = []; - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true - return + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === '\\') + c = ''; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join('0'); + if (i < 0) + c = '-' + z + c.slice(1); + else + c = z + c; + } + } + } + N.push(c); + } + } else { + N = concatMap(n, function(el) { return expand(el, false) }); } - if (!pattern) { - this.empty = true - return + + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } } - // step 1: figure out negation, etc. - this.parseNegate() + return expansions; +} - // step 2: expand braces - var set = this.globSet = this.braceExpand() - if (options.debug) this.debug = console.error - this.debug(this.pattern, set) +/***/ }), +/* 41 */ +/***/ (function(module, exports) { - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) +module.exports = function (xs, fn) { + var res = []; + for (var i = 0; i < xs.length; i++) { + var x = fn(xs[i], i); + if (isArray(x)) res.push.apply(res, x); + else res.push(x); + } + return res; +}; - this.debug(this.pattern, set) +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - this.debug(this.pattern, set) +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) +"use strict"; - this.debug(this.pattern, set) +module.exports = balanced; +function balanced(a, b, str) { + if (a instanceof RegExp) a = maybeMatch(a, str); + if (b instanceof RegExp) b = maybeMatch(b, str); - this.set = set + var r = range(a, b, str); + + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) + }; } -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 +function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; +} - if (options.nonegate) return +balanced.range = range; +function range(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } + if (ai >= 0 && bi > 0) { + begs = []; + left = str.length; - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [ begs.pop(), bi ]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} + bi = str.indexOf(b, i + 1); + } -Minimatch.prototype.braceExpand = braceExpand + i = ai < bi && ai >= 0 ? ai : bi; + } -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} + if (begs.length) { + result = [ left, right ]; } } - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern + return result; +} - if (typeof pattern === 'undefined') { - throw new TypeError('undefined pattern') - } - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } +/***/ }), +/* 43 */ +/***/ (function(module, exports, __webpack_require__) { - return expand(pattern) +try { + var util = __webpack_require__(29); + if (typeof util.inherits !== 'function') throw ''; + module.exports = util.inherits; +} catch (e) { + module.exports = __webpack_require__(44); } -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - if (pattern.length > 1024 * 64) { - throw new TypeError('pattern is too long') - } - - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this +/***/ }), +/* 44 */ +/***/ (function(module, exports) { - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } + }); + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor } +} - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } +/***/ }), +/* 45 */ +/***/ (function(module, exports) { - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false +module.exports = require("events"); - case '\\': - clearStateChar() - escaping = true - continue +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) +"use strict"; - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue +function posix(path) { + return path.charAt(0) === '/'; +} - case '(': - if (inClass) { - re += '(' - continue - } +function win32(path) { + // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 + var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; + var result = splitDeviceRe.exec(path); + var device = result[1] || ''; + var isUnc = Boolean(device && device.charAt(1) !== ':'); - if (!stateChar) { - re += '\\(' - continue - } + // UNC paths are always absolute + return Boolean(result[2] || isUnc); +} - patternListStack.push({ - type: stateChar, - start: i - 1, - reStart: re.length, - open: plTypes[stateChar].open, - close: plTypes[stateChar].close - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue +module.exports = process.platform === 'win32' ? win32 : posix; +module.exports.posix = posix; +module.exports.win32 = win32; - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - clearStateChar() - hasMagic = true - var pl = patternListStack.pop() - // negation is (?:(?!js)[^/]*) - // The others are (?:) - re += pl.close - if (pl.type === '!') { - negativeLists.push(pl) - } - pl.reEnd = re.length - continue +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } +module.exports = globSync +globSync.GlobSync = GlobSync - clearStateChar() - re += '|' - continue +var fs = __webpack_require__(23) +var rp = __webpack_require__(37) +var minimatch = __webpack_require__(39) +var Minimatch = minimatch.Minimatch +var Glob = __webpack_require__(36).Glob +var util = __webpack_require__(29) +var path = __webpack_require__(16) +var assert = __webpack_require__(30) +var isAbsolute = __webpack_require__(46) +var common = __webpack_require__(48) +var alphasort = common.alphasort +var alphasorti = common.alphasorti +var setopts = common.setopts +var ownProp = common.ownProp +var childrenIgnored = common.childrenIgnored +var isIgnored = common.isIgnored - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() +function globSync (pattern, options) { + if (typeof options === 'function' || arguments.length === 3) + throw new TypeError('callback provided to sync glob\n'+ + 'See: https://github.com/isaacs/node-glob/issues/167') - if (inClass) { - re += '\\' + c - continue - } + return new GlobSync(pattern, options).found +} - inClass = true - classStart = i - reClassStart = re.length - re += c - continue +function GlobSync (pattern, options) { + if (!pattern) + throw new Error('must provide pattern') - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } + if (typeof options === 'function' || arguments.length === 3) + throw new TypeError('callback provided to sync glob\n'+ + 'See: https://github.com/isaacs/node-glob/issues/167') - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } + if (!(this instanceof GlobSync)) + return new GlobSync(pattern, options) - // finish up the class. - hasMagic = true - inClass = false - re += c - continue + setopts(this, pattern, options) - default: - // swallow any state char that wasn't consumed - clearStateChar() + if (this.noprocess) + return this - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' + var n = this.minimatch.set.length + this.matches = new Array(n) + for (var i = 0; i < n; i ++) { + this._process(this.minimatch.set[i], i, false) + } + this._finish() +} + +GlobSync.prototype._finish = function () { + assert(this instanceof GlobSync) + if (this.realpath) { + var self = this + this.matches.forEach(function (matchset, index) { + var set = self.matches[index] = Object.create(null) + for (var p in matchset) { + try { + p = self._makeAbs(p) + var real = rp.realpathSync(p, self.realpathCache) + set[real] = true + } catch (er) { + if (er.syscall === 'stat') + set[self._makeAbs(p)] = true + else + throw er } + } + }) + } + common.finish(this) +} - re += c - } // switch - } // for +GlobSync.prototype._process = function (pattern, index, inGlobStar) { + assert(this instanceof GlobSync) - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] + // Get the first [n] parts of pattern that are all strings. + var n = 0 + while (typeof pattern[n] === 'string') { + n ++ } + // now n is the index of the first one that is *not* a string. - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + pl.open.length) - this.debug('setting tail', re, pl) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) + // See if there's anything else + var prefix + switch (n) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join('/'), index) + return - this.debug('tail=%j\n %s', tail, tail, pl, re) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type + case 0: + // pattern *starts* with some non-trivial item. + // going to readdir(cwd), but not include the prefix in matches. + prefix = null + break - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail + default: + // pattern has some string bits in the front. + // whatever it starts with, whether that's 'absolute' like /foo/bar, + // or 'relative' like '../baz' + prefix = pattern.slice(0, n).join('/') + break } - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } + var remain = pattern.slice(n) - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } + // get the list of entries. + var read + if (prefix === null) + read = '.' + else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + if (!prefix || !isAbsolute(prefix)) + prefix = '/' + prefix + read = prefix + } else + read = prefix - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] + var abs = this._makeAbs(read) - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) + //if ignored, skip processing + if (childrenIgnored(this, read)) + return - nlLast += nlAfter + var isGlobStar = remain[0] === minimatch.GLOBSTAR + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar) +} - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' +GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { + var entries = this._readdir(abs, inGlobStar) + + // if the abs isn't a dir, then nothing can match! + if (!entries) + return + + // It will only match dot entries if it starts with a dot, or if + // dot is set. Stuff like @(.foo|.bar) isn't allowed. + var pn = remain[0] + var negate = !!this.minimatch.negate + var rawGlob = pn._glob + var dotOk = this.dot || rawGlob.charAt(0) === '.' + + var matchedEntries = [] + for (var i = 0; i < entries.length; i++) { + var e = entries[i] + if (e.charAt(0) !== '.' || dotOk) { + var m + if (negate && !prefix) { + m = !e.match(pn) + } else { + m = e.match(pn) + } + if (m) + matchedEntries.push(e) } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe } - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } + var len = matchedEntries.length + // If there are no matched entries, then nothing matches. + if (len === 0) + return - if (addPatternStart) { - re = patternStart + re - } + // if this is the last remaining pattern bit, then no need for + // an additional stat *unless* the user has specified mark or + // stat explicitly. We know they exist, since readdir returned + // them. - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = Object.create(null) - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + if (prefix) { + if (prefix.slice(-1) !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + + if (e.charAt(0) === '/' && !this.nomount) { + e = path.join(this.root, e) + } + this._emitMatch(index, e) + } + // This was the last one, and no stats were needed + return } - var flags = options.nocase ? 'i' : '' - try { - var regExp = new RegExp('^' + re + '$', flags) - } catch (er) { - // If it was an invalid regular expression, then it can't match - // anything. This trick looks for a character after the end of - // the string, which is of course impossible, except in multi-line - // mode, but it's not a /m regex. - return new RegExp('$.') + // now test all matched entries as stand-ins for that part + // of the pattern. + remain.shift() + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + var newPattern + if (prefix) + newPattern = [prefix, e] + else + newPattern = [e] + this._process(newPattern.concat(remain), index, inGlobStar) } +} - regExp._glob = pattern - regExp._src = re - return regExp -} +GlobSync.prototype._emitMatch = function (index, e) { + if (isIgnored(this, e)) + return -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} + var abs = this._makeAbs(e) -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp + if (this.mark) + e = this._mark(e) - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set + if (this.absolute) { + e = abs + } - if (!set.length) { - this.regexp = false - return this.regexp + if (this.matches[index][e]) + return + + if (this.nodir) { + var c = this.cache[abs] + if (c === 'DIR' || Array.isArray(c)) + return } - var options = this.options - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' + this.matches[index][e] = true - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') + if (this.stat) + this._stat(e) +} - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' +GlobSync.prototype._readdirInGlobStar = function (abs) { + // follow all symlinked directories forever + // just proceed as if this is a non-globstar situation + if (this.follow) + return this._readdir(abs, false) + var entries + var lstat + var stat try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) + lstat = fs.lstatSync(abs) + } catch (er) { + if (er.code === 'ENOENT') { + // lstat failed, doesn't exist + return null + } } - return list -} -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' + var isSym = lstat && lstat.isSymbolicLink() + this.symlinks[abs] = isSym - if (f === '/' && partial) return true + // If it's not a symlink or a dir, then it's definitely a regular file. + // don't bother doing a readdir in that case. + if (!isSym && lstat && !lstat.isDirectory()) + this.cache[abs] = 'FILE' + else + entries = this._readdir(abs, false) - var options = this.options + return entries +} - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } +GlobSync.prototype._readdir = function (abs, inGlobStar) { + var entries - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs) - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. + if (ownProp(this.cache, abs)) { + var c = this.cache[abs] + if (!c || c === 'FILE') + return null - var set = this.set - this.debug(this.pattern, 'set', set) + if (Array.isArray(c)) + return c + } - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break + try { + return this._readdirEntries(abs, fs.readdirSync(abs)) + } catch (er) { + this._readdirError(abs, er) + return null } +} - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate +GlobSync.prototype._readdirEntries = function (abs, entries) { + // if we haven't asked to stat everything, then just + // assume that everything in there exists, so we can avoid + // having to stat it a second time. + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i ++) { + var e = entries[i] + if (abs === '/') + e = abs + e + else + e = abs + '/' + e + this.cache[e] = true } } - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate + this.cache[abs] = entries + + // mark and cache dir-ness + return entries } -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options +GlobSync.prototype._readdirError = function (f, er) { + // handle errors, and cache the information + switch (er.code) { + case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 + case 'ENOTDIR': // totally normal. means it *does* exist. + var abs = this._makeAbs(f) + this.cache[abs] = 'FILE' + if (abs === this.cwdAbs) { + var error = new Error(er.code + ' invalid cwd ' + this.cwd) + error.path = this.cwd + error.code = er.code + throw error + } + break - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) + case 'ENOENT': // not terribly unusual + case 'ELOOP': + case 'ENAMETOOLONG': + case 'UNKNOWN': + this.cache[this._makeAbs(f)] = false + break - this.debug('matchOne', file.length, pattern.length) + default: // some unusual error. Treat as failure. + this.cache[this._makeAbs(f)] = false + if (this.strict) + throw er + if (!this.silent) + console.error('glob error', er) + break + } +} - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] +GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - this.debug(pattern, p, f) + var entries = this._readdir(abs, inGlobStar) - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false + // no entries means not a dir, so it can never have matches + // foo.txt/** doesn't match foo.txt + if (!entries) + return - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) + // test without the globstar, and with every child both below + // and replacing the globstar. + var remainWithoutGlobStar = remain.slice(1) + var gspref = prefix ? [ prefix ] : [] + var noGlobStar = gspref.concat(remainWithoutGlobStar) - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } + // the noGlobStar pattern exits the inGlobStar state + this._process(noGlobStar, index, false) - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] + var len = entries.length + var isSym = this.symlinks[abs] - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) + // If it's a symlink, and we're in a globstar, then stop + if (isSym && inGlobStar) + return - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } + for (var i = 0; i < len; i++) { + var e = entries[i] + if (e.charAt(0) === '.' && !this.dot) + continue - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } + // these two cases enter the inGlobStar state + var instead = gspref.concat(entries[i], remainWithoutGlobStar) + this._process(instead, index, true) - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } + var below = gspref.concat(entries[i], remain) + this._process(below, index, true) + } +} - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } +GlobSync.prototype._processSimple = function (prefix, index) { + // XXX review this. Shouldn't it be doing the mounting etc + // before doing stat? kinda weird? + var exists = this._stat(prefix) - if (!hit) return false - } + if (!this.matches[index]) + this.matches[index] = Object.create(null) - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* + // If it doesn't exist, then just mark the lack of results + if (!exists) + return - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix) + if (prefix.charAt(0) === '/') { + prefix = path.join(this.root, prefix) + } else { + prefix = path.resolve(this.root, prefix) + if (trail) + prefix += '/' + } } - // should be unreachable. - throw new Error('wtf?') -} + if (process.platform === 'win32') + prefix = prefix.replace(/\\/g, '/') -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') + // Mark this as a match + this._emitMatch(index, prefix) } -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} +// Returns either 'DIR', 'FILE', or false +GlobSync.prototype._stat = function (f) { + var abs = this._makeAbs(f) + var needDir = f.slice(-1) === '/' + if (f.length > this.maxLength) + return false -/***/ }), -/* 100 */ -/***/ (function(module, exports, __webpack_require__) { + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs] -"use strict"; + if (Array.isArray(c)) + c = 'DIR' + // It exists, but maybe not how we need it + if (!needDir || c === 'DIR') + return c -function posix(path) { - return path.charAt(0) === '/'; -} + if (needDir && c === 'FILE') + return false -function win32(path) { - // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 - var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; - var result = splitDeviceRe.exec(path); - var device = result[1] || ''; - var isUnc = Boolean(device && device.charAt(1) !== ':'); + // otherwise we have to stat, because maybe c=true + // if we know it exists, but not what it is. + } - // UNC paths are always absolute - return Boolean(result[2] || isUnc); -} + var exists + var stat = this.statCache[abs] + if (!stat) { + var lstat + try { + lstat = fs.lstatSync(abs) + } catch (er) { + if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { + this.statCache[abs] = false + return false + } + } -module.exports = process.platform === 'win32' ? win32 : posix; -module.exports.posix = posix; -module.exports.win32 = win32; + if (lstat && lstat.isSymbolicLink()) { + try { + stat = fs.statSync(abs) + } catch (er) { + stat = lstat + } + } else { + stat = lstat + } + } + this.statCache[abs] = stat -/***/ }), -/* 101 */ -/***/ (function(module, exports, __webpack_require__) { + var c = true + if (stat) + c = stat.isDirectory() ? 'DIR' : 'FILE' -"use strict"; + this.cache[abs] = this.cache[abs] || c + if (needDir && c === 'FILE') + return false -Object.defineProperty(exports, "__esModule", { - value: true -}); -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -class CliError extends Error { - constructor(message, meta = {}) { - super(message); - this.meta = meta; - } + return c } -exports.CliError = CliError; -/***/ }), -/* 102 */ -/***/ (function(module, exports) { +GlobSync.prototype._mark = function (p) { + return common.mark(this, p) +} + +GlobSync.prototype._makeAbs = function (f) { + return common.makeAbs(this, f) +} -module.exports = require("url"); /***/ }), -/* 103 */ +/* 48 */ /***/ (function(module, exports, __webpack_require__) { -// Note: since nyc uses this module to output coverage, any lines -// that are in the direct sync flow of nyc's outputCoverage are -// ignored, since we can never get coverage for them. -var assert = __webpack_require__(62) -var signals = __webpack_require__(216) +exports.alphasort = alphasort +exports.alphasorti = alphasorti +exports.setopts = setopts +exports.ownProp = ownProp +exports.makeAbs = makeAbs +exports.finish = finish +exports.mark = mark +exports.isIgnored = isIgnored +exports.childrenIgnored = childrenIgnored -var EE = __webpack_require__(63) -/* istanbul ignore if */ -if (typeof EE !== 'function') { - EE = EE.EventEmitter +function ownProp (obj, field) { + return Object.prototype.hasOwnProperty.call(obj, field) } -var emitter -if (process.__signal_exit_emitter__) { - emitter = process.__signal_exit_emitter__ -} else { - emitter = process.__signal_exit_emitter__ = new EE() - emitter.count = 0 - emitter.emitted = {} -} +var path = __webpack_require__(16) +var minimatch = __webpack_require__(39) +var isAbsolute = __webpack_require__(46) +var Minimatch = minimatch.Minimatch -// Because this emitter is a global, we have to check to see if a -// previous version of this library failed to enable infinite listeners. -// I know what you're about to say. But literally everything about -// signal-exit is a compromise with evil. Get used to it. -if (!emitter.infinite) { - emitter.setMaxListeners(Infinity) - emitter.infinite = true +function alphasorti (a, b) { + return a.toLowerCase().localeCompare(b.toLowerCase()) } -module.exports = function (cb, opts) { - assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler') +function alphasort (a, b) { + return a.localeCompare(b) +} - if (loaded === false) { - load() - } +function setupIgnores (self, options) { + self.ignore = options.ignore || [] - var ev = 'exit' - if (opts && opts.alwaysLast) { - ev = 'afterexit' - } + if (!Array.isArray(self.ignore)) + self.ignore = [self.ignore] - var remove = function () { - emitter.removeListener(ev, cb) - if (emitter.listeners('exit').length === 0 && - emitter.listeners('afterexit').length === 0) { - unload() - } + if (self.ignore.length) { + self.ignore = self.ignore.map(ignoreMap) } - emitter.on(ev, cb) - - return remove } -module.exports.unload = unload -function unload () { - if (!loaded) { - return +// ignore patterns are always in dot:true mode. +function ignoreMap (pattern) { + var gmatcher = null + if (pattern.slice(-3) === '/**') { + var gpattern = pattern.replace(/(\/\*\*)+$/, '') + gmatcher = new Minimatch(gpattern, { dot: true }) } - loaded = false - - signals.forEach(function (sig) { - try { - process.removeListener(sig, sigListeners[sig]) - } catch (er) {} - }) - process.emit = originalProcessEmit - process.reallyExit = originalProcessReallyExit - emitter.count -= 1 -} -function emit (event, code, signal) { - if (emitter.emitted[event]) { - return + return { + matcher: new Minimatch(pattern, { dot: true }), + gmatcher: gmatcher } - emitter.emitted[event] = true - emitter.emit(event, code, signal) } -// { : , ... } -var sigListeners = {} -signals.forEach(function (sig) { - sigListeners[sig] = function listener () { - // If there are no other listeners, an exit is coming! - // Simplest way: remove us and then re-send the signal. - // We know that this will kill the process, so we can - // safely emit now. - var listeners = process.listeners(sig) - if (listeners.length === emitter.count) { - unload() - emit('exit', null, sig) - /* istanbul ignore next */ - emit('afterexit', null, sig) - /* istanbul ignore next */ - process.kill(process.pid, sig) +function setopts (self, pattern, options) { + if (!options) + options = {} + + // base-matching: just use globstar for that. + if (options.matchBase && -1 === pattern.indexOf("/")) { + if (options.noglobstar) { + throw new Error("base matching requires globstar") } + pattern = "**/" + pattern } -}) -module.exports.signals = function () { - return signals -} + self.silent = !!options.silent + self.pattern = pattern + self.strict = options.strict !== false + self.realpath = !!options.realpath + self.realpathCache = options.realpathCache || Object.create(null) + self.follow = !!options.follow + self.dot = !!options.dot + self.mark = !!options.mark + self.nodir = !!options.nodir + if (self.nodir) + self.mark = true + self.sync = !!options.sync + self.nounique = !!options.nounique + self.nonull = !!options.nonull + self.nosort = !!options.nosort + self.nocase = !!options.nocase + self.stat = !!options.stat + self.noprocess = !!options.noprocess + self.absolute = !!options.absolute -module.exports.load = load + self.maxLength = options.maxLength || Infinity + self.cache = options.cache || Object.create(null) + self.statCache = options.statCache || Object.create(null) + self.symlinks = options.symlinks || Object.create(null) -var loaded = false + setupIgnores(self, options) -function load () { - if (loaded) { - return + self.changedCwd = false + var cwd = process.cwd() + if (!ownProp(options, "cwd")) + self.cwd = cwd + else { + self.cwd = path.resolve(options.cwd) + self.changedCwd = self.cwd !== cwd } - loaded = true - - // This is the number of onSignalExit's that are in play. - // It's important so that we can count the correct number of - // listeners on signals, and don't wait for the other one to - // handle it instead of us. - emitter.count += 1 - signals = signals.filter(function (sig) { - try { - process.on(sig, sigListeners[sig]) - return true - } catch (er) { - return false - } - }) + self.root = options.root || path.resolve(self.cwd, "/") + self.root = path.resolve(self.root) + if (process.platform === "win32") + self.root = self.root.replace(/\\/g, "/") - process.emit = processEmit - process.reallyExit = processReallyExit -} + // TODO: is an absolute `cwd` supposed to be resolved against `root`? + // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test') + self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd) + if (process.platform === "win32") + self.cwdAbs = self.cwdAbs.replace(/\\/g, "/") + self.nomount = !!options.nomount -var originalProcessReallyExit = process.reallyExit -function processReallyExit (code) { - process.exitCode = code || 0 - emit('exit', process.exitCode, null) - /* istanbul ignore next */ - emit('afterexit', process.exitCode, null) - /* istanbul ignore next */ - originalProcessReallyExit.call(process, process.exitCode) -} + // disable comments and negation in Minimatch. + // Note that they are not supported in Glob itself anyway. + options.nonegate = true + options.nocomment = true -var originalProcessEmit = process.emit -function processEmit (ev, arg) { - if (ev === 'exit') { - if (arg !== undefined) { - process.exitCode = arg - } - var ret = originalProcessEmit.apply(this, arguments) - emit('exit', process.exitCode, null) - /* istanbul ignore next */ - emit('afterexit', process.exitCode, null) - return ret - } else { - return originalProcessEmit.apply(this, arguments) - } + self.minimatch = new Minimatch(pattern, options) + self.options = self.minimatch.options } +function finish (self) { + var nou = self.nounique + var all = nou ? [] : Object.create(null) -/***/ }), -/* 104 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getProjectPaths = getProjectPaths; + for (var i = 0, l = self.matches.length; i < l; i ++) { + var matches = self.matches[i] + if (!matches || Object.keys(matches).length === 0) { + if (self.nonull) { + // do like the shell, and spit out the literal glob + var literal = self.minimatch.globSet[i] + if (nou) + all.push(literal) + else + all[literal] = true + } + } else { + // had matches + var m = Object.keys(matches) + if (nou) + all.push.apply(all, m) + else + m.forEach(function (m) { + all[m] = true + }) + } + } -var _path = __webpack_require__(5); + if (!nou) + all = Object.keys(all) -/** - * Returns all the paths where plugins are located - */ -function getProjectPaths(rootPath, options) { - const skipKibanaExtra = Boolean(options['skip-kibana-extra']); - const ossOnly = Boolean(options.oss); - const projectPaths = [rootPath, (0, _path.resolve)(rootPath, 'packages/*')]; - // This is needed in order to install the dependencies for the declared - // plugin functional used in the selenium functional tests. - // As we are now using the webpack dll for the client vendors dependencies - // when we run the plugin functional tests against the distributable - // dependencies used by such plugins like @eui, react and react-dom can't - // be loaded from the dll as the context is different from the one declared - // into the webpack dll reference plugin. - // In anyway, have a plugin declaring their own dependencies is the - // correct and the expect behavior. - projectPaths.push((0, _path.resolve)(rootPath, 'test/plugin_functional/plugins/*')); - if (!ossOnly) { - projectPaths.push((0, _path.resolve)(rootPath, 'x-pack')); - projectPaths.push((0, _path.resolve)(rootPath, 'x-pack/plugins/*')); + if (!self.nosort) + all = all.sort(self.nocase ? alphasorti : alphasort) + + // at *some* point we statted all of these + if (self.mark) { + for (var i = 0; i < all.length; i++) { + all[i] = self._mark(all[i]) } - if (!skipKibanaExtra) { - projectPaths.push((0, _path.resolve)(rootPath, '../kibana-extra/*')); - projectPaths.push((0, _path.resolve)(rootPath, '../kibana-extra/*/packages/*')); - projectPaths.push((0, _path.resolve)(rootPath, '../kibana-extra/*/plugins/*')); + if (self.nodir) { + all = all.filter(function (e) { + var notDir = !(/\/$/.test(e)) + var c = self.cache[e] || self.cache[makeAbs(self, e)] + if (notDir && c) + notDir = c !== 'DIR' && !Array.isArray(c) + return notDir + }) } - return projectPaths; -} /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __webpack_require__) { + } -"use strict"; + if (self.ignore.length) + all = all.filter(function(m) { + return !isIgnored(self, m) + }) -var __values = (this && this.__values) || function (o) { - var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; - if (m) return m.call(o); - return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var globParent = __webpack_require__(301); -var micromatch = __webpack_require__(305); -var GLOBSTAR = '**'; -/** - * Convert a windows «path» to a unix-style «path». - */ -function unixifyPattern(pattern) { - return pattern.replace(/\\/g, '/'); -} -exports.unixifyPattern = unixifyPattern; -/** - * Returns negative pattern as positive pattern. - */ -function convertToPositivePattern(pattern) { - return pattern.slice(1); -} -exports.convertToPositivePattern = convertToPositivePattern; -/** - * Returns positive pattern as negative pattern. - */ -function convertToNegativePattern(pattern) { - return '!' + pattern; -} -exports.convertToNegativePattern = convertToNegativePattern; -/** - * Return true if provided pattern is negative pattern. - */ -function isNegativePattern(pattern) { - return pattern.startsWith('!'); -} -exports.isNegativePattern = isNegativePattern; -/** - * Return true if provided pattern is positive pattern. - */ -function isPositivePattern(pattern) { - return !isNegativePattern(pattern); -} -exports.isPositivePattern = isPositivePattern; -/** - * Extracts negative patterns from array of patterns. - */ -function getNegativePatterns(patterns) { - return patterns.filter(isNegativePattern); -} -exports.getNegativePatterns = getNegativePatterns; -/** - * Extracts positive patterns from array of patterns. - */ -function getPositivePatterns(patterns) { - return patterns.filter(isPositivePattern); -} -exports.getPositivePatterns = getPositivePatterns; -/** - * Extract base directory from provided pattern. - */ -function getBaseDirectory(pattern) { - return globParent(pattern); -} -exports.getBaseDirectory = getBaseDirectory; -/** - * Return true if provided pattern has globstar. - */ -function hasGlobStar(pattern) { - return pattern.indexOf(GLOBSTAR) !== -1; -} -exports.hasGlobStar = hasGlobStar; -/** - * Return true if provided pattern ends with slash and globstar. - */ -function endsWithSlashGlobStar(pattern) { - return pattern.endsWith('/' + GLOBSTAR); -} -exports.endsWithSlashGlobStar = endsWithSlashGlobStar; -/** - * Trim trailing globstar if provided pattern ends with slash and globstar. - */ -function trimTrailingSlashGlobStar(pattern) { - return endsWithSlashGlobStar(pattern) ? pattern.slice(0, -3) : pattern; -} -exports.trimTrailingSlashGlobStar = trimTrailingSlashGlobStar; -/** - * Return naive depth of provided pattern. - */ -function getDepth(pattern) { - return pattern.split('/').length; -} -exports.getDepth = getDepth; -/** - * Make RegExp for provided pattern. - */ -function makeRe(pattern, options) { - return micromatch.makeRe(pattern, options); -} -exports.makeRe = makeRe; -/** - * Convert patterns to regexps. - */ -function convertPatternsToRe(patterns, options) { - return patterns.map(function (pattern) { return makeRe(pattern, options); }); + self.found = all } -exports.convertPatternsToRe = convertPatternsToRe; -/** - * Returns true if the entry match any of the given RegExp's. - */ -function matchAny(entry, patternsRe) { - try { - for (var patternsRe_1 = __values(patternsRe), patternsRe_1_1 = patternsRe_1.next(); !patternsRe_1_1.done; patternsRe_1_1 = patternsRe_1.next()) { - var regexp = patternsRe_1_1.value; - if (regexp.test(entry)) { - return true; - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (patternsRe_1_1 && !patternsRe_1_1.done && (_a = patternsRe_1.return)) _a.call(patternsRe_1); - } - finally { if (e_1) throw e_1.error; } + +function mark (self, p) { + var abs = makeAbs(self, p) + var c = self.cache[abs] + var m = p + if (c) { + var isDir = c === 'DIR' || Array.isArray(c) + var slash = p.slice(-1) === '/' + + if (isDir && !slash) + m += '/' + else if (!isDir && slash) + m = m.slice(0, -1) + + if (m !== p) { + var mabs = makeAbs(self, m) + self.statCache[mabs] = self.statCache[abs] + self.cache[mabs] = self.cache[abs] } - return false; - var e_1, _a; + } + + return m } -exports.matchAny = matchAny; -/** - * Returns true if the entry doesn't match any of the given negative RegExp's and match any of the given positive RegExp's. - */ -function match(entry, positiveRe, negativeRe) { - return matchAny(entry, negativeRe) ? false : matchAny(entry, positiveRe); + +// lotta situps... +function makeAbs (self, f) { + var abs = f + if (f.charAt(0) === '/') { + abs = path.join(self.root, f) + } else if (isAbsolute(f) || f === '') { + abs = f + } else if (self.changedCwd) { + abs = path.resolve(self.cwd, f) + } else { + abs = path.resolve(f) + } + + if (process.platform === 'win32') + abs = abs.replace(/\\/g, '/') + + return abs } -exports.match = match; -/***/ }), -/* 106 */ -/***/ (function(module, exports, __webpack_require__) { +// Return true, if pattern ends with globstar '**', for the accompanying parent directory. +// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents +function isIgnored (self, path) { + if (!self.ignore.length) + return false -/** - * Detect Electron renderer process, which is node, but we should - * treat as a browser. - */ + return self.ignore.some(function(item) { + return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) + }) +} -if (typeof process !== 'undefined' && process.type === 'renderer') { - module.exports = __webpack_require__(388); -} else { - module.exports = __webpack_require__(390); +function childrenIgnored (self, path) { + if (!self.ignore.length) + return false + + return self.ignore.some(function(item) { + return !!(item.gmatcher && item.gmatcher.match(path)) + }) } /***/ }), -/* 107 */ +/* 49 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -/*! - * fragment-cache - * - * Copyright (c) 2016-2017, Jon Schlinkert. - * Released under the MIT License. - */ - +var wrappy = __webpack_require__(50) +var reqs = Object.create(null) +var once = __webpack_require__(51) +module.exports = wrappy(inflight) -var MapCache = __webpack_require__(148); +function inflight (key, cb) { + if (reqs[key]) { + reqs[key].push(cb) + return null + } else { + reqs[key] = [cb] + return makeres(key) + } +} -/** - * Create a new `FragmentCache` with an optional object to use for `caches`. - * - * ```js - * var fragment = new FragmentCache(); - * ``` - * @name FragmentCache - * @param {String} `cacheName` - * @return {Object} Returns the [map-cache][] instance. - * @api public - */ +function makeres (key) { + return once(function RES () { + var cbs = reqs[key] + var len = cbs.length + var args = slice(arguments) -function FragmentCache(caches) { - this.caches = caches || {}; + // XXX It's somewhat ambiguous whether a new callback added in this + // pass should be queued for later execution if something in the + // list of callbacks throws, or if it should just be discarded. + // However, it's such an edge case that it hardly matters, and either + // choice is likely as surprising as the other. + // As it happens, we do go ahead and schedule it for later execution. + try { + for (var i = 0; i < len; i++) { + cbs[i].apply(null, args) + } + } finally { + if (cbs.length > len) { + // added more in the interim. + // de-zalgo, just in case, but don't call again. + cbs.splice(0, len) + process.nextTick(function () { + RES.apply(null, args) + }) + } else { + delete reqs[key] + } + } + }) } -/** - * Prototype - */ - -FragmentCache.prototype = { +function slice (args) { + var length = args.length + var array = [] - /** - * Get cache `name` from the `fragment.caches` object. Creates a new - * `MapCache` if it doesn't already exist. - * - * ```js - * var cache = fragment.cache('files'); - * console.log(fragment.caches.hasOwnProperty('files')); - * //=> true - * ``` - * @name .cache - * @param {String} `cacheName` - * @return {Object} Returns the [map-cache][] instance. - * @api public - */ + for (var i = 0; i < length; i++) array[i] = args[i] + return array +} - cache: function(cacheName) { - return this.caches[cacheName] || (this.caches[cacheName] = new MapCache()); - }, - /** - * Set a value for property `key` on cache `name` - * - * ```js - * fragment.set('files', 'somefile.js', new File({path: 'somefile.js'})); - * ``` - * @name .set - * @param {String} `name` - * @param {String} `key` Property name to set - * @param {any} `val` The value of `key` - * @return {Object} The cache instance for chaining - * @api public - */ +/***/ }), +/* 50 */ +/***/ (function(module, exports) { - set: function(cacheName, key, val) { - var cache = this.cache(cacheName); - cache.set(key, val); - return cache; - }, +// Returns a wrapper function that returns a wrapped callback +// The wrapper function should do some stuff, and return a +// presumably different callback function. +// This makes sure that own properties are retained, so that +// decorations and such are not lost along the way. +module.exports = wrappy +function wrappy (fn, cb) { + if (fn && cb) return wrappy(fn)(cb) - /** - * Returns true if a non-undefined value is set for `key` on fragment cache `name`. - * - * ```js - * var cache = fragment.cache('files'); - * cache.set('somefile.js'); - * - * console.log(cache.has('somefile.js')); - * //=> true - * - * console.log(cache.has('some-other-file.js')); - * //=> false - * ``` - * @name .has - * @param {String} `name` Cache name - * @param {String} `key` Optionally specify a property to check for on cache `name` - * @return {Boolean} - * @api public - */ + if (typeof fn !== 'function') + throw new TypeError('need wrapper function') - has: function(cacheName, key) { - return typeof this.get(cacheName, key) !== 'undefined'; - }, + Object.keys(fn).forEach(function (k) { + wrapper[k] = fn[k] + }) - /** - * Get `name`, or if specified, the value of `key`. Invokes the [cache]() method, - * so that cache `name` will be created it doesn't already exist. If `key` is not passed, - * the entire cache (`name`) is returned. - * - * ```js - * var Vinyl = require('vinyl'); - * var cache = fragment.cache('files'); - * cache.set('somefile.js', new Vinyl({path: 'somefile.js'})); - * console.log(cache.get('somefile.js')); - * //=> - * ``` - * @name .get - * @param {String} `name` - * @return {Object} Returns cache `name`, or the value of `key` if specified - * @api public - */ + return wrapper - get: function(name, key) { - var cache = this.cache(name); - if (typeof key === 'string') { - return cache.get(key); + function wrapper() { + var args = new Array(arguments.length) + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] } - return cache; + var ret = fn.apply(this, args) + var cb = args[args.length-1] + if (typeof ret === 'function' && ret !== cb) { + Object.keys(cb).forEach(function (k) { + ret[k] = cb[k] + }) + } + return ret } -}; - -/** - * Expose `FragmentCache` - */ - -exports = module.exports = FragmentCache; +} /***/ }), -/* 108 */ +/* 51 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; - +var wrappy = __webpack_require__(50) +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) -const readdirSync = __webpack_require__(434); -const readdirAsync = __webpack_require__(440); -const readdirStream = __webpack_require__(442); +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) -module.exports = exports = readdirAsyncPath; -exports.readdir = exports.readdirAsync = exports.async = readdirAsyncPath; -exports.readdirAsyncStat = exports.async.stat = readdirAsyncStat; -exports.readdirStream = exports.stream = readdirStreamPath; -exports.readdirStreamStat = exports.stream.stat = readdirStreamStat; -exports.readdirSync = exports.sync = readdirSyncPath; -exports.readdirSyncStat = exports.sync.stat = readdirSyncStat; + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) -/** - * Synchronous readdir that returns an array of string paths. - * - * @param {string} dir - * @param {object} [options] - * @returns {string[]} - */ -function readdirSyncPath (dir, options) { - return readdirSync(dir, options, {}); +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) + } + f.called = false + return f } -/** - * Synchronous readdir that returns results as an array of {@link fs.Stats} objects - * - * @param {string} dir - * @param {object} [options] - * @returns {fs.Stats[]} - */ -function readdirSyncStat (dir, options) { - return readdirSync(dir, options, { stats: true }); +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f } -/** - * Aynchronous readdir (accepts an error-first callback or returns a {@link Promise}). - * Results are an array of path strings. - * - * @param {string} dir - * @param {object} [options] - * @param {function} [callback] - * @returns {Promise} - */ -function readdirAsyncPath (dir, options, callback) { - return readdirAsync(dir, options, callback, {}); -} -/** - * Aynchronous readdir (accepts an error-first callback or returns a {@link Promise}). - * Results are an array of {@link fs.Stats} objects. - * - * @param {string} dir - * @param {object} [options] - * @param {function} [callback] - * @returns {Promise} - */ -function readdirAsyncStat (dir, options, callback) { - return readdirAsync(dir, options, callback, { stats: true }); -} +/***/ }), +/* 52 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Aynchronous readdir that returns a {@link stream.Readable} (which is also an {@link EventEmitter}). - * All stream data events ("data", "file", "directory", "symlink") are passed a path string. - * - * @param {string} dir - * @param {object} [options] - * @returns {stream.Readable} - */ -function readdirStreamPath (dir, options) { - return readdirStream(dir, options, {}); -} +"use strict"; -/** - * Aynchronous readdir that returns a {@link stream.Readable} (which is also an {@link EventEmitter}) - * All stream data events ("data", "file", "directory", "symlink") are passed an {@link fs.Stats} object. + +Object.defineProperty(exports, "__esModule", { + value: true +}); +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * @param {string} dir - * @param {object} [options] - * @returns {stream.Readable} + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. */ -function readdirStreamStat (dir, options) { - return readdirStream(dir, options, { stats: true }); +class CliError extends Error { + constructor(message, meta = {}) { + super(message); + this.meta = meta; + } } - +exports.CliError = CliError; /***/ }), -/* 109 */ +/* 53 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const Readable = __webpack_require__(39).Readable; -const EventEmitter = __webpack_require__(63).EventEmitter; -const path = __webpack_require__(5); -const normalizeOptions = __webpack_require__(435); -const stat = __webpack_require__(437); -const call = __webpack_require__(110); - -/** - * Asynchronously reads the contents of a directory and streams the results - * via a {@link stream.Readable}. - */ -class DirectoryReader { - /** - * @param {string} dir - The absolute or relative directory path to read - * @param {object} [options] - User-specified options, if any (see {@link normalizeOptions}) - * @param {object} internalOptions - Internal options that aren't part of the public API - * @class - */ - constructor (dir, options, internalOptions) { - this.options = options = normalizeOptions(options, internalOptions); - - // Indicates whether we should keep reading - // This is set false if stream.Readable.push() returns false. - this.shouldRead = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Project = undefined; - // The directories to read - // (initialized with the top-level directory) - this.queue = [{ - path: dir, - basePath: options.basePath, - posixBasePath: options.posixBasePath, - depth: 0 - }]; +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ - // The number of directories that are currently being processed - this.pending = 0; - // The data that has been read, but not yet emitted - this.buffer = []; +var _chalk = __webpack_require__(2); - this.stream = new Readable({ objectMode: true }); - this.stream._read = () => { - // Start (or resume) reading - this.shouldRead = true; +var _chalk2 = _interopRequireDefault(_chalk); - // If we have data in the buffer, then send the next chunk - if (this.buffer.length > 0) { - this.pushFromBuffer(); - } +var _path = __webpack_require__(16); - // If we have directories queued, then start processing the next one - if (this.queue.length > 0) { - if (this.options.facade.sync) { - while (this.queue.length > 0) { - this.readNextDirectory(); - } - } - else { - this.readNextDirectory(); - } - } +var _util = __webpack_require__(29); - this.checkForEOF(); - }; - } +var _errors = __webpack_require__(52); - /** - * Reads the next directory in the queue - */ - readNextDirectory () { - let facade = this.options.facade; - let dir = this.queue.shift(); - this.pending++; +var _log = __webpack_require__(33); - // Read the directory listing - call.safe(facade.fs.readdir, dir.path, (err, items) => { - if (err) { - // fs.readdir threw an error - this.emit('error', err); - return this.finishedReadingDirectory(); - } +var _package_json = __webpack_require__(54); - try { - // Process each item in the directory (simultaneously, if async) - facade.forEach( - items, - this.processItem.bind(this, dir), - this.finishedReadingDirectory.bind(this, dir) - ); - } - catch (err2) { - // facade.forEach threw an error - // (probably because fs.readdir returned an invalid result) - this.emit('error', err2); - this.finishedReadingDirectory(); - } - }); - } +var _scripts = __webpack_require__(95); - /** - * This method is called after all items in a directory have been processed. - * - * NOTE: This does not necessarily mean that the reader is finished, since there may still - * be other directories queued or pending. - */ - finishedReadingDirectory () { - this.pending--; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - if (this.shouldRead) { - // If we have directories queued, then start processing the next one - if (this.queue.length > 0 && this.options.facade.async) { - this.readNextDirectory(); - } +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } - this.checkForEOF(); +class Project { + constructor(packageJson, projectPath) { + this.isWorkspaceRoot = false; + this.isWorkspaceProject = false; + this.json = Object.freeze(packageJson); + this.path = projectPath; + this.packageJsonLocation = (0, _path.resolve)(this.path, 'package.json'); + this.nodeModulesLocation = (0, _path.resolve)(this.path, 'node_modules'); + this.targetLocation = (0, _path.resolve)(this.path, 'target'); + this.productionDependencies = this.json.dependencies || {}; + this.devDependencies = this.json.devDependencies || {}; + this.allDependencies = _extends({}, this.devDependencies, this.productionDependencies); + this.isWorkspaceRoot = this.json.hasOwnProperty('workspaces'); + this.scripts = this.json.scripts || {}; } - } + static fromPath(path) { + return _asyncToGenerator(function* () { + const pkgJson = yield (0, _package_json.readPackageJson)(path); + return new Project(pkgJson, path); + })(); + } + get name() { + return this.json.name; + } + ensureValidProjectDependency(project, dependentProjectIsInWorkspace) { + const versionInPackageJson = this.allDependencies[project.name]; + let expectedVersionInPackageJson; + if (dependentProjectIsInWorkspace) { + expectedVersionInPackageJson = project.json.version; + } else { + const relativePathToProject = normalizePath((0, _path.relative)(this.path, project.path)); + expectedVersionInPackageJson = `link:${relativePathToProject}`; + } + // No issues! + if (versionInPackageJson === expectedVersionInPackageJson) { + return; + } + let problemMsg; + if ((0, _package_json.isLinkDependency)(versionInPackageJson) && dependentProjectIsInWorkspace) { + problemMsg = `but should be using a workspace`; + } else if ((0, _package_json.isLinkDependency)(versionInPackageJson)) { + problemMsg = `using 'link:', but the path is wrong`; + } else { + problemMsg = `but it's not using the local package`; + } + throw new _errors.CliError(`[${this.name}] depends on [${project.name}] ${problemMsg}. Update its package.json to the expected value below.`, { + actual: `"${project.name}": "${versionInPackageJson}"`, + expected: `"${project.name}": "${expectedVersionInPackageJson}"`, + package: `${this.name} (${this.packageJsonLocation})` + }); + } + getBuildConfig() { + return this.json.kibana && this.json.kibana.build || {}; + } + /** + * Returns the directory that should be copied into the Kibana build artifact. + * This config can be specified to only include the project's build artifacts + * instead of everything located in the project directory. + */ + getIntermediateBuildDirectory() { + return (0, _path.resolve)(this.path, this.getBuildConfig().intermediateBuildDirectory || '.'); + } + getCleanConfig() { + return this.json.kibana && this.json.kibana.clean || {}; + } + hasScript(name) { + return name in this.scripts; + } + getExecutables() { + const raw = this.json.bin; + if (!raw) { + return {}; + } + if (typeof raw === 'string') { + return { + [this.name]: (0, _path.resolve)(this.path, raw) + }; + } + if (typeof raw === 'object') { + const binsConfig = {}; + for (const binName of Object.keys(raw)) { + binsConfig[binName] = (0, _path.resolve)(this.path, raw[binName]); + } + return binsConfig; + } + throw new _errors.CliError(`[${this.name}] has an invalid "bin" field in its package.json, ` + `expected an object or a string`, { + binConfig: (0, _util.inspect)(raw), + package: `${this.name} (${this.packageJsonLocation})` + }); + } + runScript(scriptName, args = []) { + var _this = this; - /** - * Determines whether the reader has finished processing all items in all directories. - * If so, then the "end" event is fired (via {@Readable#push}) - */ - checkForEOF () { - if (this.buffer.length === 0 && // The stuff we've already read - this.pending === 0 && // The stuff we're currently reading - this.queue.length === 0) { // The stuff we haven't read yet - // There's no more stuff! - this.stream.push(null); + return _asyncToGenerator(function* () { + _log.log.write(_chalk2.default.bold(`\n\nRunning script [${_chalk2.default.green(scriptName)}] in [${_chalk2.default.green(_this.name)}]:\n`)); + return (0, _scripts.runScriptInPackage)(scriptName, args, _this); + })(); } - } + runScriptStreaming(scriptName, args = []) { + return (0, _scripts.runScriptInPackageStreaming)(scriptName, args, this); + } + hasDependencies() { + return Object.keys(this.allDependencies).length > 0; + } + installDependencies({ extraArgs }) { + var _this2 = this; - /** - * Processes a single item in a directory. - * - * If the item is a directory, and `option.deep` is enabled, then the item will be added - * to the directory queue. - * - * If the item meets the filter criteria, then it will be emitted to the reader's stream. - * - * @param {object} dir - A directory object from the queue - * @param {string} item - The name of the item (name only, no path) - * @param {function} done - A callback function that is called after the item has been processed - */ - processItem (dir, item, done) { - let stream = this.stream; - let options = this.options; + return _asyncToGenerator(function* () { + _log.log.write(_chalk2.default.bold(`\n\nInstalling dependencies in [${_chalk2.default.green(_this2.name)}]:\n`)); + return (0, _scripts.installInDir)(_this2.path, extraArgs); + })(); + } +} +exports.Project = Project; // We normalize all path separators to `/` in generated files - let itemPath = dir.basePath + item; - let posixPath = dir.posixBasePath + item; - let fullPath = path.join(dir.path, item); +function normalizePath(path) { + return path.replace(/[\\\/]+/g, '/'); +} - // If `options.deep` is a number, and we've already recursed to the max depth, - // then there's no need to check fs.Stats to know if it's a directory. - // If `options.deep` is a function, then we'll need fs.Stats - let maxDepthReached = dir.depth >= options.recurseDepth; +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { - // Do we need to call `fs.stat`? - let needStats = - !maxDepthReached || // we need the fs.Stats to know if it's a directory - options.stats || // the user wants fs.Stats objects returned - options.recurseFn || // we need fs.Stats for the recurse function - options.filterFn || // we need fs.Stats for the filter function - EventEmitter.listenerCount(stream, 'file') || // we need the fs.Stats to know if it's a file - EventEmitter.listenerCount(stream, 'directory') || // we need the fs.Stats to know if it's a directory - EventEmitter.listenerCount(stream, 'symlink'); // we need the fs.Stats to know if it's a symlink +"use strict"; - // If we don't need stats, then exit early - if (!needStats) { - if (this.filter(itemPath, posixPath)) { - this.pushOrBuffer({ data: itemPath }); - } - return done(); - } - // Get the fs.Stats object for this path - stat(options.facade.fs, fullPath, (err, stats) => { - if (err) { - // fs.stat threw an error - this.emit('error', err); - return done(); - } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isLinkDependency = undefined; +exports.readPackageJson = readPackageJson; +exports.writePackageJson = writePackageJson; - try { - // Add the item's path to the fs.Stats object - // The base of this path, and its separators are determined by the options - // (i.e. options.basePath and options.sep) - stats.path = itemPath; +var _readPkg = __webpack_require__(55); - // Add depth of the path to the fs.Stats object for use this in the filter function - stats.depth = dir.depth; +var _readPkg2 = _interopRequireDefault(_readPkg); - if (this.shouldRecurse(stats, posixPath, maxDepthReached)) { - // Add this subdirectory to the queue - this.queue.push({ - path: fullPath, - basePath: itemPath + options.sep, - posixBasePath: posixPath + '/', - depth: dir.depth + 1, - }); - } +var _writePkg = __webpack_require__(83); - // Determine whether this item matches the filter criteria - if (this.filter(stats, posixPath)) { - this.pushOrBuffer({ - data: options.stats ? stats : itemPath, - file: stats.isFile(), - directory: stats.isDirectory(), - symlink: stats.isSymbolicLink(), - }); - } +var _writePkg2 = _interopRequireDefault(_writePkg); - done(); - } - catch (err2) { - // An error occurred while processing the item - // (probably during a user-specified function, such as options.deep, options.filter, etc.) - this.emit('error', err2); - done(); - } - }); - } +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - /** - * Pushes the given chunk of data to the stream, or adds it to the buffer, - * depending on the state of the stream. - * - * @param {object} chunk - */ - pushOrBuffer (chunk) { - // Add the chunk to the buffer - this.buffer.push(chunk); +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +function readPackageJson(dir) { + return (0, _readPkg2.default)(dir, { normalize: false }); +} +function writePackageJson(path, json) { + return (0, _writePkg2.default)(path, json); +} +const isLinkDependency = exports.isLinkDependency = depVersion => depVersion.startsWith('link:'); - // If we're still reading, then immediately emit the next chunk in the buffer - // (which may or may not be the chunk that we just added) - if (this.shouldRead) { - this.pushFromBuffer(); - } - } +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { - /** - * Immediately pushes the next chunk in the buffer to the reader's stream. - * The "data" event will always be fired (via {@link Readable#push}). - * In addition, the "file", "directory", and/or "symlink" events may be fired, - * depending on the type of properties of the chunk. - */ - pushFromBuffer () { - let stream = this.stream; - let chunk = this.buffer.shift(); +"use strict"; - // Stream the data - try { - this.shouldRead = stream.push(chunk.data); - } - catch (err) { - this.emit('error', err); - } +const path = __webpack_require__(16); +const loadJsonFile = __webpack_require__(56); +const pathType = __webpack_require__(63); - // Also emit specific events, based on the type of chunk - chunk.file && this.emit('file', chunk.data); - chunk.symlink && this.emit('symlink', chunk.data); - chunk.directory && this.emit('directory', chunk.data); - } +module.exports = (fp, opts) => { + if (typeof fp !== 'string') { + opts = fp; + fp = '.'; + } - /** - * Determines whether the given directory meets the user-specified recursion criteria. - * If the user didn't specify recursion criteria, then this function will default to true. - * - * @param {fs.Stats} stats - The directory's {@link fs.Stats} object - * @param {string} posixPath - The item's POSIX path (used for glob matching) - * @param {boolean} maxDepthReached - Whether we've already crawled the user-specified depth - * @returns {boolean} - */ - shouldRecurse (stats, posixPath, maxDepthReached) { - let options = this.options; + opts = opts || {}; - if (maxDepthReached) { - // We've already crawled to the maximum depth. So no more recursion. - return false; - } - else if (!stats.isDirectory()) { - // It's not a directory. So don't try to crawl it. - return false; - } - else if (options.recurseGlob) { - // Glob patterns are always tested against the POSIX path, even on Windows - // https://github.com/isaacs/node-glob#windows - return options.recurseGlob.test(posixPath); - } - else if (options.recurseRegExp) { - // Regular expressions are tested against the normal path - // (based on the OS or options.sep) - return options.recurseRegExp.test(stats.path); - } - else if (options.recurseFn) { - try { - // Run the user-specified recursion criteria - return options.recurseFn.call(null, stats); - } - catch (err) { - // An error occurred in the user's code. - // In Sync and Async modes, this will return an error. - // In Streaming mode, we emit an "error" event, but continue processing - this.emit('error', err); - } - } - else { - // No recursion function was specified, and we're within the maximum depth. - // So crawl this directory. - return true; - } - } + return pathType.dir(fp) + .then(isDir => { + if (isDir) { + fp = path.join(fp, 'package.json'); + } - /** - * Determines whether the given item meets the user-specified filter criteria. - * If the user didn't specify a filter, then this function will always return true. - * - * @param {string|fs.Stats} value - Either the item's path, or the item's {@link fs.Stats} object - * @param {string} posixPath - The item's POSIX path (used for glob matching) - * @returns {boolean} - */ - filter (value, posixPath) { - let options = this.options; + return loadJsonFile(fp); + }) + .then(x => { + if (opts.normalize !== false) { + __webpack_require__(65)(x); + } - if (options.filterGlob) { - // Glob patterns are always tested against the POSIX path, even on Windows - // https://github.com/isaacs/node-glob#windows - return options.filterGlob.test(posixPath); - } - else if (options.filterRegExp) { - // Regular expressions are tested against the normal path - // (based on the OS or options.sep) - return options.filterRegExp.test(value.path || value); - } - else if (options.filterFn) { - try { - // Run the user-specified filter function - return options.filterFn.call(null, value); - } - catch (err) { - // An error occurred in the user's code. - // In Sync and Async modes, this will return an error. - // In Streaming mode, we emit an "error" event, but continue processing - this.emit('error', err); - } - } - else { - // No filter was specified, so match everything - return true; - } - } + return x; + }); +}; - /** - * Emits an event. If one of the event listeners throws an error, - * then an "error" event is emitted. - * - * @param {string} eventName - * @param {*} data - */ - emit (eventName, data) { - let stream = this.stream; +module.exports.sync = (fp, opts) => { + if (typeof fp !== 'string') { + opts = fp; + fp = '.'; + } - try { - stream.emit(eventName, data); - } - catch (err) { - if (eventName === 'error') { - // Don't recursively emit "error" events. - // If the first one fails, then just throw - throw err; - } - else { - stream.emit('error', err); - } - } - } -} + opts = opts || {}; + fp = pathType.dirSync(fp) ? path.join(fp, 'package.json') : fp; -module.exports = DirectoryReader; + const x = loadJsonFile.sync(fp); + + if (opts.normalize !== false) { + __webpack_require__(65)(x); + } + + return x; +}; /***/ }), -/* 110 */ +/* 56 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +const path = __webpack_require__(16); +const fs = __webpack_require__(22); +const stripBom = __webpack_require__(57); +const parseJson = __webpack_require__(58); +const pify = __webpack_require__(62); -let call = module.exports = { - safe: safeCall, - once: callOnce, -}; - -/** - * Calls a function with the given arguments, and ensures that the error-first callback is _always_ - * invoked exactly once, even if the function throws an error. - * - * @param {function} fn - The function to invoke - * @param {...*} args - The arguments to pass to the function. The final argument must be a callback function. - */ -function safeCall (fn, args) { - // Get the function arguments as an array - args = Array.prototype.slice.call(arguments, 1); - - // Replace the callback function with a wrapper that ensures it will only be called once - let callback = call.once(args.pop()); - args.push(callback); - - try { - fn.apply(null, args); - } - catch (err) { - callback(err); - } -} - -/** - * Returns a wrapper function that ensures the given callback function is only called once. - * Subsequent calls are ignored, unless the first argument is an Error, in which case the - * error is thrown. - * - * @param {function} fn - The function that should only be called once - * @returns {function} - */ -function callOnce (fn) { - let fulfilled = false; +const parse = (data, fp) => parseJson(stripBom(data), path.relative('.', fp)); - return function onceWrapper (err) { - if (!fulfilled) { - fulfilled = true; - return fn.apply(this, arguments); - } - else if (err) { - // The callback has already been called, but now an error has occurred - // (most likely inside the callback function). So re-throw the error, - // so it gets handled further up the call stack - throw err; - } - }; -} +module.exports = fp => pify(fs.readFile)(fp, 'utf8').then(data => parse(data, fp)); +module.exports.sync = fp => parse(fs.readFileSync(fp, 'utf8'), fp); /***/ }), -/* 111 */ +/* 57 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var path = __webpack_require__(5); -var deep_1 = __webpack_require__(443); -var entry_1 = __webpack_require__(445); -var Reader = /** @class */ (function () { - function Reader(options) { - this.options = options; - this.micromatchOptions = this.getMicromatchOptions(); - this.entryFilter = new entry_1.default(options, this.micromatchOptions); - this.deepFilter = new deep_1.default(options, this.micromatchOptions); - } - /** - * Returns root path to scanner. - */ - Reader.prototype.getRootDirectory = function (task) { - return path.resolve(this.options.cwd, task.base); - }; - /** - * Returns options for reader. - */ - Reader.prototype.getReaderOptions = function (task) { - return { - basePath: task.base === '.' ? '' : task.base, - filter: this.entryFilter.getFilter(task.positive, task.negative), - deep: this.deepFilter.getFilter(task.positive, task.negative), - sep: '/' - }; - }; - /** - * Returns options for micromatch. - */ - Reader.prototype.getMicromatchOptions = function () { - return { - dot: this.options.dot, - nobrace: this.options.nobrace, - noglobstar: this.options.noglobstar, - noext: this.options.noext, - nocase: this.options.nocase, - matchBase: this.options.matchBase - }; - }; - /** - * Returns transformed entry. - */ - Reader.prototype.transform = function (entry) { - if (this.options.markDirectories && entry.isDirectory()) { - entry.path += '/'; - } - if (this.options.absolute && !path.isAbsolute(entry.path)) { - entry.path = path.resolve(this.options.cwd, entry.path); - } - var item = this.options.stats ? entry : entry.path; - if (this.options.transform === null) { - return item; - } - return this.options.transform(item); - }; - /** - * Returns true if error has ENOENT code. - */ - Reader.prototype.isEnoentCodeError = function (err) { - return err.code === 'ENOENT'; - }; - return Reader; -}()); -exports.default = Reader; - - -/***/ }), -/* 112 */ -/***/ (function(module, exports) { +module.exports = x => { + if (typeof x !== 'string') { + throw new TypeError('Expected a string, got ' + typeof x); + } -module.exports = function(module) { - if (!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - if (!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function() { - return module.i; - } - }); - module.webpackPolyfill = 1; + // Catches EFBBBF (UTF-8 BOM) because the buffer-to-string + // conversion translates it to FEFF (UTF-16 BOM) + if (x.charCodeAt(0) === 0xFEFF) { + return x.slice(1); } - return module; + + return x; }; /***/ }), -/* 113 */ +/* 58 */ /***/ (function(module, exports, __webpack_require__) { -/* MIT license */ -var cssKeywords = __webpack_require__(166); +"use strict"; -// NOTE: conversions should only return primitive values (i.e. arrays, or -// values that give correct `typeof` results). -// do not use box values types (i.e. Number(), String(), etc.) +const errorEx = __webpack_require__(59); +const fallback = __webpack_require__(61); -var reverseKeywords = {}; -for (var key in cssKeywords) { - if (cssKeywords.hasOwnProperty(key)) { - reverseKeywords[cssKeywords[key]] = key; - } -} +const JSONError = errorEx('JSONError', { + fileName: errorEx.append('in %s') +}); -var convert = module.exports = { - rgb: {channels: 3, labels: 'rgb'}, - hsl: {channels: 3, labels: 'hsl'}, - hsv: {channels: 3, labels: 'hsv'}, - hwb: {channels: 3, labels: 'hwb'}, - cmyk: {channels: 4, labels: 'cmyk'}, - xyz: {channels: 3, labels: 'xyz'}, - lab: {channels: 3, labels: 'lab'}, - lch: {channels: 3, labels: 'lch'}, - hex: {channels: 1, labels: ['hex']}, - keyword: {channels: 1, labels: ['keyword']}, - ansi16: {channels: 1, labels: ['ansi16']}, - ansi256: {channels: 1, labels: ['ansi256']}, - hcg: {channels: 3, labels: ['h', 'c', 'g']}, - apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, - gray: {channels: 1, labels: ['gray']} -}; +module.exports = (input, reviver, filename) => { + if (typeof reviver === 'string') { + filename = reviver; + reviver = null; + } -// hide .channels and .labels properties -for (var model in convert) { - if (convert.hasOwnProperty(model)) { - if (!('channels' in convert[model])) { - throw new Error('missing channels property: ' + model); - } + try { + try { + return JSON.parse(input, reviver); + } catch (err) { + fallback(input, reviver); - if (!('labels' in convert[model])) { - throw new Error('missing channel labels property: ' + model); + throw err; } + } catch (err) { + err.message = err.message.replace(/\n/g, ''); - if (convert[model].labels.length !== convert[model].channels) { - throw new Error('channel and label counts mismatch: ' + model); + const jsonErr = new JSONError(err); + if (filename) { + jsonErr.fileName = filename; } - var channels = convert[model].channels; - var labels = convert[model].labels; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], 'channels', {value: channels}); - Object.defineProperty(convert[model], 'labels', {value: labels}); + throw jsonErr; } -} +}; -convert.rgb.hsl = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var min = Math.min(r, g, b); - var max = Math.max(r, g, b); - var delta = max - min; - var h; - var s; - var l; - if (max === min) { - h = 0; - } else if (r === max) { - h = (g - b) / delta; - } else if (g === max) { - h = 2 + (b - r) / delta; - } else if (b === max) { - h = 4 + (r - g) / delta; - } +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { - h = Math.min(h * 60, 360); +"use strict"; - if (h < 0) { - h += 360; - } - l = (min + max) / 2; +var util = __webpack_require__(29); +var isArrayish = __webpack_require__(60); - if (max === min) { - s = 0; - } else if (l <= 0.5) { - s = delta / (max + min); - } else { - s = delta / (2 - max - min); +var errorEx = function errorEx(name, properties) { + if (!name || name.constructor !== String) { + properties = name || {}; + name = Error.name; } - return [h, s * 100, l * 100]; -}; + var errorExError = function ErrorEXError(message) { + if (!this) { + return new ErrorEXError(message); + } -convert.rgb.hsv = function (rgb) { - var r = rgb[0]; - var g = rgb[1]; - var b = rgb[2]; - var min = Math.min(r, g, b); - var max = Math.max(r, g, b); - var delta = max - min; - var h; - var s; - var v; + message = message instanceof Error + ? message.message + : (message || this.message); - if (max === 0) { - s = 0; - } else { - s = (delta / max * 1000) / 10; - } + Error.call(this, message); + Error.captureStackTrace(this, errorExError); - if (max === min) { - h = 0; - } else if (r === max) { - h = (g - b) / delta; - } else if (g === max) { - h = 2 + (b - r) / delta; - } else if (b === max) { - h = 4 + (r - g) / delta; - } + this.name = name; - h = Math.min(h * 60, 360); + Object.defineProperty(this, 'message', { + configurable: true, + enumerable: false, + get: function () { + var newMessage = message.split(/\r?\n/g); - if (h < 0) { - h += 360; - } + for (var key in properties) { + if (!properties.hasOwnProperty(key)) { + continue; + } - v = ((max / 255) * 1000) / 10; + var modifier = properties[key]; - return [h, s, v]; -}; + if ('message' in modifier) { + newMessage = modifier.message(this[key], newMessage) || newMessage; + if (!isArrayish(newMessage)) { + newMessage = [newMessage]; + } + } + } -convert.rgb.hwb = function (rgb) { - var r = rgb[0]; - var g = rgb[1]; - var b = rgb[2]; - var h = convert.rgb.hsl(rgb)[0]; - var w = 1 / 255 * Math.min(r, Math.min(g, b)); + return newMessage.join('\n'); + }, + set: function (v) { + message = v; + } + }); - b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + var stackDescriptor = Object.getOwnPropertyDescriptor(this, 'stack'); + var stackGetter = stackDescriptor.get; + var stackValue = stackDescriptor.value; + delete stackDescriptor.value; + delete stackDescriptor.writable; - return [h, w * 100, b * 100]; -}; + stackDescriptor.get = function () { + var stack = (stackGetter) + ? stackGetter.call(this).split(/\r?\n+/g) + : stackValue.split(/\r?\n+/g); -convert.rgb.cmyk = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var c; - var m; - var y; - var k; + // starting in Node 7, the stack builder caches the message. + // just replace it. + stack[0] = this.name + ': ' + this.message; - k = Math.min(1 - r, 1 - g, 1 - b); - c = (1 - r - k) / (1 - k) || 0; - m = (1 - g - k) / (1 - k) || 0; - y = (1 - b - k) / (1 - k) || 0; + var lineCount = 1; + for (var key in properties) { + if (!properties.hasOwnProperty(key)) { + continue; + } - return [c * 100, m * 100, y * 100, k * 100]; -}; - -/** - * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance - * */ -function comparativeDistance(x, y) { - return ( - Math.pow(x[0] - y[0], 2) + - Math.pow(x[1] - y[1], 2) + - Math.pow(x[2] - y[2], 2) - ); -} + var modifier = properties[key]; -convert.rgb.keyword = function (rgb) { - var reversed = reverseKeywords[rgb]; - if (reversed) { - return reversed; - } + if ('line' in modifier) { + var line = modifier.line(this[key]); + if (line) { + stack.splice(lineCount++, 0, ' ' + line); + } + } - var currentClosestDistance = Infinity; - var currentClosestKeyword; + if ('stack' in modifier) { + modifier.stack(this[key], stack); + } + } - for (var keyword in cssKeywords) { - if (cssKeywords.hasOwnProperty(keyword)) { - var value = cssKeywords[keyword]; + return stack.join('\n'); + }; - // Compute comparative distance - var distance = comparativeDistance(rgb, value); + Object.defineProperty(this, 'stack', stackDescriptor); + }; - // Check if its less, if so set as closest - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; - } - } + if (Object.setPrototypeOf) { + Object.setPrototypeOf(errorExError.prototype, Error.prototype); + Object.setPrototypeOf(errorExError, Error); + } else { + util.inherits(errorExError, Error); } - return currentClosestKeyword; -}; - -convert.keyword.rgb = function (keyword) { - return cssKeywords[keyword]; + return errorExError; }; -convert.rgb.xyz = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - - // assume sRGB - r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92); - g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92); - b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92); +errorEx.append = function (str, def) { + return { + message: function (v, message) { + v = v || def; - var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); - var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); - var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); + if (v) { + message[0] += ' ' + str.replace('%s', v.toString()); + } - return [x * 100, y * 100, z * 100]; + return message; + } + }; }; -convert.rgb.lab = function (rgb) { - var xyz = convert.rgb.xyz(rgb); - var x = xyz[0]; - var y = xyz[1]; - var z = xyz[2]; - var l; - var a; - var b; - - x /= 95.047; - y /= 100; - z /= 108.883; - - x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); - y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); - z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); +errorEx.line = function (str, def) { + return { + line: function (v) { + v = v || def; - l = (116 * y) - 16; - a = 500 * (x - y); - b = 200 * (y - z); + if (v) { + return str.replace('%s', v.toString()); + } - return [l, a, b]; + return null; + } + }; }; -convert.hsl.rgb = function (hsl) { - var h = hsl[0] / 360; - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var t1; - var t2; - var t3; - var rgb; - var val; - - if (s === 0) { - val = l * 255; - return [val, val, val]; - } +module.exports = errorEx; - if (l < 0.5) { - t2 = l * (1 + s); - } else { - t2 = l + s - l * s; - } - t1 = 2 * l - t2; +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { - rgb = [0, 0, 0]; - for (var i = 0; i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); - if (t3 < 0) { - t3++; - } - if (t3 > 1) { - t3--; - } +"use strict"; - if (6 * t3 < 1) { - val = t1 + (t2 - t1) * 6 * t3; - } else if (2 * t3 < 1) { - val = t2; - } else if (3 * t3 < 2) { - val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - val = t1; - } - rgb[i] = val * 255; +module.exports = function isArrayish(obj) { + if (!obj) { + return false; } - return rgb; + return obj instanceof Array || Array.isArray(obj) || + (obj.length >= 0 && obj.splice instanceof Function); }; -convert.hsl.hsv = function (hsl) { - var h = hsl[0]; - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var smin = s; - var lmin = Math.max(l, 0.01); - var sv; - var v; - - l *= 2; - s *= (l <= 1) ? l : 2 - l; - smin *= lmin <= 1 ? lmin : 2 - lmin; - v = (l + s) / 2; - sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); - - return [h, sv * 100, v * 100]; -}; -convert.hsv.rgb = function (hsv) { - var h = hsv[0] / 60; - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var hi = Math.floor(h) % 6; +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { - var f = h - Math.floor(h); - var p = 255 * v * (1 - s); - var q = 255 * v * (1 - (s * f)); - var t = 255 * v * (1 - (s * (1 - f))); - v *= 255; +"use strict"; - switch (hi) { - case 0: - return [v, t, p]; - case 1: - return [q, v, p]; - case 2: - return [p, v, t]; - case 3: - return [p, q, v]; - case 4: - return [t, p, v]; - case 5: - return [v, p, q]; - } -}; -convert.hsv.hsl = function (hsv) { - var h = hsv[0]; - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var vmin = Math.max(v, 0.01); - var lmin; - var sl; - var l; +module.exports = parseJson +function parseJson (txt, reviver, context) { + context = context || 20 + try { + return JSON.parse(txt, reviver) + } catch (e) { + const syntaxErr = e.message.match(/^Unexpected token.*position\s+(\d+)/i) + const errIdx = syntaxErr + ? +syntaxErr[1] + : e.message.match(/^Unexpected end of JSON.*/i) + ? txt.length - 1 + : null + if (errIdx != null) { + const start = errIdx <= context + ? 0 + : errIdx - context + const end = errIdx + context >= txt.length + ? txt.length + : errIdx + context + e.message += ` while parsing near '${ + start === 0 ? '' : '...' + }${txt.slice(start, end)}${ + end === txt.length ? '' : '...' + }'` + } else { + e.message += ` while parsing '${txt.slice(0, context * 2)}'` + } + throw e + } +} - l = (2 - s) * v; - lmin = (2 - s) * vmin; - sl = s * vmin; - sl /= (lmin <= 1) ? lmin : 2 - lmin; - sl = sl || 0; - l /= 2; - return [h, sl * 100, l * 100]; -}; +/***/ }), +/* 62 */ +/***/ (function(module, exports, __webpack_require__) { -// http://dev.w3.org/csswg/css-color/#hwb-to-rgb -convert.hwb.rgb = function (hwb) { - var h = hwb[0] / 360; - var wh = hwb[1] / 100; - var bl = hwb[2] / 100; - var ratio = wh + bl; - var i; - var v; - var f; - var n; +"use strict"; - // wh + bl cant be > 1 - if (ratio > 1) { - wh /= ratio; - bl /= ratio; - } - i = Math.floor(6 * h); - v = 1 - bl; - f = 6 * h - i; +const processFn = (fn, opts) => function () { + const P = opts.promiseModule; + const args = new Array(arguments.length); - if ((i & 0x01) !== 0) { - f = 1 - f; + for (let i = 0; i < arguments.length; i++) { + args[i] = arguments[i]; } - n = wh + f * (v - wh); // linear interpolation + return new P((resolve, reject) => { + if (opts.errorFirst) { + args.push(function (err, result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); - var r; - var g; - var b; - switch (i) { - default: - case 6: - case 0: r = v; g = n; b = wh; break; - case 1: r = n; g = v; b = wh; break; - case 2: r = wh; g = v; b = n; break; - case 3: r = wh; g = n; b = v; break; - case 4: r = n; g = wh; b = v; break; - case 5: r = v; g = wh; b = n; break; - } + for (let i = 1; i < arguments.length; i++) { + results[i - 1] = arguments[i]; + } - return [r * 255, g * 255, b * 255]; -}; + if (err) { + results.unshift(err); + reject(results); + } else { + resolve(results); + } + } else if (err) { + reject(err); + } else { + resolve(result); + } + }); + } else { + args.push(function (result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); -convert.cmyk.rgb = function (cmyk) { - var c = cmyk[0] / 100; - var m = cmyk[1] / 100; - var y = cmyk[2] / 100; - var k = cmyk[3] / 100; - var r; - var g; - var b; + for (let i = 0; i < arguments.length; i++) { + results[i] = arguments[i]; + } - r = 1 - Math.min(1, c * (1 - k) + k); - g = 1 - Math.min(1, m * (1 - k) + k); - b = 1 - Math.min(1, y * (1 - k) + k); + resolve(results); + } else { + resolve(result); + } + }); + } - return [r * 255, g * 255, b * 255]; + fn.apply(this, args); + }); }; -convert.xyz.rgb = function (xyz) { - var x = xyz[0] / 100; - var y = xyz[1] / 100; - var z = xyz[2] / 100; - var r; - var g; - var b; - - r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); - g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); - b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); +module.exports = (obj, opts) => { + opts = Object.assign({ + exclude: [/.+(Sync|Stream)$/], + errorFirst: true, + promiseModule: Promise + }, opts); - // assume sRGB - r = r > 0.0031308 - ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055) - : r * 12.92; + const filter = key => { + const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); + return opts.include ? opts.include.some(match) : !opts.exclude.some(match); + }; - g = g > 0.0031308 - ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055) - : g * 12.92; + let ret; + if (typeof obj === 'function') { + ret = function () { + if (opts.excludeMain) { + return obj.apply(this, arguments); + } - b = b > 0.0031308 - ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055) - : b * 12.92; + return processFn(obj, opts).apply(this, arguments); + }; + } else { + ret = Object.create(Object.getPrototypeOf(obj)); + } - r = Math.min(Math.max(0, r), 1); - g = Math.min(Math.max(0, g), 1); - b = Math.min(Math.max(0, b), 1); + for (const key in obj) { // eslint-disable-line guard-for-in + const x = obj[key]; + ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; + } - return [r * 255, g * 255, b * 255]; + return ret; }; -convert.xyz.lab = function (xyz) { - var x = xyz[0]; - var y = xyz[1]; - var z = xyz[2]; - var l; - var a; - var b; - x /= 95.047; - y /= 100; - z /= 108.883; +/***/ }), +/* 63 */ +/***/ (function(module, exports, __webpack_require__) { - x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); - y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); - z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); +"use strict"; - l = (116 * y) - 16; - a = 500 * (x - y); - b = 200 * (y - z); +const fs = __webpack_require__(23); +const pify = __webpack_require__(64); - return [l, a, b]; -}; +function type(fn, fn2, fp) { + if (typeof fp !== 'string') { + return Promise.reject(new TypeError(`Expected a string, got ${typeof fp}`)); + } -convert.lab.xyz = function (lab) { - var l = lab[0]; - var a = lab[1]; - var b = lab[2]; - var x; - var y; - var z; + return pify(fs[fn])(fp) + .then(stats => stats[fn2]()) + .catch(err => { + if (err.code === 'ENOENT') { + return false; + } - y = (l + 16) / 116; - x = a / 500 + y; - z = y - b / 200; + throw err; + }); +} - var y2 = Math.pow(y, 3); - var x2 = Math.pow(x, 3); - var z2 = Math.pow(z, 3); - y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; - x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; - z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; +function typeSync(fn, fn2, fp) { + if (typeof fp !== 'string') { + throw new TypeError(`Expected a string, got ${typeof fp}`); + } - x *= 95.047; - y *= 100; - z *= 108.883; + try { + return fs[fn](fp)[fn2](); + } catch (err) { + if (err.code === 'ENOENT') { + return false; + } - return [x, y, z]; -}; + throw err; + } +} -convert.lab.lch = function (lab) { - var l = lab[0]; - var a = lab[1]; - var b = lab[2]; - var hr; - var h; - var c; +exports.file = type.bind(null, 'stat', 'isFile'); +exports.dir = type.bind(null, 'stat', 'isDirectory'); +exports.symlink = type.bind(null, 'lstat', 'isSymbolicLink'); +exports.fileSync = typeSync.bind(null, 'statSync', 'isFile'); +exports.dirSync = typeSync.bind(null, 'statSync', 'isDirectory'); +exports.symlinkSync = typeSync.bind(null, 'lstatSync', 'isSymbolicLink'); - hr = Math.atan2(b, a); - h = hr * 360 / 2 / Math.PI; - if (h < 0) { - h += 360; - } +/***/ }), +/* 64 */ +/***/ (function(module, exports, __webpack_require__) { - c = Math.sqrt(a * a + b * b); +"use strict"; - return [l, c, h]; -}; -convert.lch.lab = function (lch) { - var l = lch[0]; - var c = lch[1]; - var h = lch[2]; - var a; - var b; - var hr; +const processFn = (fn, opts) => function () { + const P = opts.promiseModule; + const args = new Array(arguments.length); - hr = h / 360 * 2 * Math.PI; - a = c * Math.cos(hr); - b = c * Math.sin(hr); + for (let i = 0; i < arguments.length; i++) { + args[i] = arguments[i]; + } - return [l, a, b]; -}; + return new P((resolve, reject) => { + if (opts.errorFirst) { + args.push(function (err, result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); -convert.rgb.ansi16 = function (args) { - var r = args[0]; - var g = args[1]; - var b = args[2]; - var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization - - value = Math.round(value / 50); - - if (value === 0) { - return 30; - } - - var ansi = 30 - + ((Math.round(b / 255) << 2) - | (Math.round(g / 255) << 1) - | Math.round(r / 255)); - - if (value === 2) { - ansi += 60; - } - - return ansi; -}; - -convert.hsv.ansi16 = function (args) { - // optimization here; we already know the value and don't need to get - // it converted for us. - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); -}; + for (let i = 1; i < arguments.length; i++) { + results[i - 1] = arguments[i]; + } -convert.rgb.ansi256 = function (args) { - var r = args[0]; - var g = args[1]; - var b = args[2]; + if (err) { + results.unshift(err); + reject(results); + } else { + resolve(results); + } + } else if (err) { + reject(err); + } else { + resolve(result); + } + }); + } else { + args.push(function (result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); - // we use the extended greyscale palette here, with the exception of - // black and white. normal palette only has 4 greyscale shades. - if (r === g && g === b) { - if (r < 8) { - return 16; - } + for (let i = 0; i < arguments.length; i++) { + results[i] = arguments[i]; + } - if (r > 248) { - return 231; + resolve(results); + } else { + resolve(result); + } + }); } - return Math.round(((r - 8) / 247) * 24) + 232; - } - - var ansi = 16 - + (36 * Math.round(r / 255 * 5)) - + (6 * Math.round(g / 255 * 5)) - + Math.round(b / 255 * 5); - - return ansi; + fn.apply(this, args); + }); }; -convert.ansi16.rgb = function (args) { - var color = args % 10; +module.exports = (obj, opts) => { + opts = Object.assign({ + exclude: [/.+(Sync|Stream)$/], + errorFirst: true, + promiseModule: Promise + }, opts); - // handle greyscale - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } + const filter = key => { + const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); + return opts.include ? opts.include.some(match) : !opts.exclude.some(match); + }; - color = color / 10.5 * 255; + let ret; + if (typeof obj === 'function') { + ret = function () { + if (opts.excludeMain) { + return obj.apply(this, arguments); + } - return [color, color, color]; + return processFn(obj, opts).apply(this, arguments); + }; + } else { + ret = Object.create(Object.getPrototypeOf(obj)); } - var mult = (~~(args > 50) + 1) * 0.5; - var r = ((color & 1) * mult) * 255; - var g = (((color >> 1) & 1) * mult) * 255; - var b = (((color >> 2) & 1) * mult) * 255; - - return [r, g, b]; -}; - -convert.ansi256.rgb = function (args) { - // handle greyscale - if (args >= 232) { - var c = (args - 232) * 10 + 8; - return [c, c, c]; + for (const key in obj) { // eslint-disable-line guard-for-in + const x = obj[key]; + ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; } - args -= 16; - - var rem; - var r = Math.floor(args / 36) / 5 * 255; - var g = Math.floor((rem = args % 36) / 6) / 5 * 255; - var b = (rem % 6) / 5 * 255; - - return [r, g, b]; + return ret; }; -convert.rgb.hex = function (args) { - var integer = ((Math.round(args[0]) & 0xFF) << 16) - + ((Math.round(args[1]) & 0xFF) << 8) - + (Math.round(args[2]) & 0xFF); - - var string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; -convert.hex.rgb = function (args) { - var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); - if (!match) { - return [0, 0, 0]; - } +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { - var colorString = match[0]; +module.exports = normalize - if (match[0].length === 3) { - colorString = colorString.split('').map(function (char) { - return char + char; - }).join(''); - } +var fixer = __webpack_require__(66) +normalize.fixer = fixer - var integer = parseInt(colorString, 16); - var r = (integer >> 16) & 0xFF; - var g = (integer >> 8) & 0xFF; - var b = integer & 0xFF; +var makeWarning = __webpack_require__(81) - return [r, g, b]; -}; +var fieldsToFix = ['name','version','description','repository','modules','scripts' + ,'files','bin','man','bugs','keywords','readme','homepage','license'] +var otherThingsToFix = ['dependencies','people', 'typos'] -convert.rgb.hcg = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var max = Math.max(Math.max(r, g), b); - var min = Math.min(Math.min(r, g), b); - var chroma = (max - min); - var grayscale; - var hue; +var thingsToFix = fieldsToFix.map(function(fieldName) { + return ucFirst(fieldName) + "Field" +}) +// two ways to do this in CoffeeScript on only one line, sub-70 chars: +// thingsToFix = fieldsToFix.map (name) -> ucFirst(name) + "Field" +// thingsToFix = (ucFirst(name) + "Field" for name in fieldsToFix) +thingsToFix = thingsToFix.concat(otherThingsToFix) - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } +function normalize (data, warn, strict) { + if(warn === true) warn = null, strict = true + if(!strict) strict = false + if(!warn || data.private) warn = function(msg) { /* noop */ } - if (chroma <= 0) { - hue = 0; - } else - if (max === r) { - hue = ((g - b) / chroma) % 6; - } else - if (max === g) { - hue = 2 + (b - r) / chroma; - } else { - hue = 4 + (r - g) / chroma + 4; - } + if (data.scripts && + data.scripts.install === "node-gyp rebuild" && + !data.scripts.preinstall) { + data.gypfile = true + } + fixer.warn = function() { warn(makeWarning.apply(null, arguments)) } + thingsToFix.forEach(function(thingName) { + fixer["fix" + ucFirst(thingName)](data, strict) + }) + data._id = data.name + "@" + data.version +} - hue /= 6; - hue %= 1; +function ucFirst (string) { + return string.charAt(0).toUpperCase() + string.slice(1); +} - return [hue * 360, chroma * 100, grayscale * 100]; -}; -convert.hsl.hcg = function (hsl) { - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var c = 1; - var f = 0; +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { - if (l < 0.5) { - c = 2.0 * s * l; - } else { - c = 2.0 * s * (1.0 - l); - } +var semver = __webpack_require__(67) +var validateLicense = __webpack_require__(68); +var hostedGitInfo = __webpack_require__(73) +var isBuiltinModule = __webpack_require__(77) +var depTypes = ["dependencies","devDependencies","optionalDependencies"] +var extractDescription = __webpack_require__(79) +var url = __webpack_require__(74) +var typos = __webpack_require__(80) - if (c < 1.0) { - f = (l - 0.5 * c) / (1.0 - c); - } +var fixer = module.exports = { + // default warning function + warn: function() {}, - return [hsl[0], c * 100, f * 100]; -}; + fixRepositoryField: function(data) { + if (data.repositories) { + this.warn("repositories"); + data.repository = data.repositories[0] + } + if (!data.repository) return this.warn("missingRepository") + if (typeof data.repository === "string") { + data.repository = { + type: "git", + url: data.repository + } + } + var r = data.repository.url || "" + if (r) { + var hosted = hostedGitInfo.fromUrl(r) + if (hosted) { + r = data.repository.url + = hosted.getDefaultRepresentation() == "shortcut" ? hosted.https() : hosted.toString() + } + } -convert.hsv.hcg = function (hsv) { - var s = hsv[1] / 100; - var v = hsv[2] / 100; + if (r.match(/github.com\/[^\/]+\/[^\/]+\.git\.git$/)) { + this.warn("brokenGitUrl", r) + } + } - var c = s * v; - var f = 0; +, fixTypos: function(data) { + Object.keys(typos.topLevel).forEach(function (d) { + if (data.hasOwnProperty(d)) { + this.warn("typo", d, typos.topLevel[d]) + } + }, this) + } - if (c < 1.0) { - f = (v - c) / (1 - c); - } +, fixScriptsField: function(data) { + if (!data.scripts) return + if (typeof data.scripts !== "object") { + this.warn("nonObjectScripts") + delete data.scripts + return + } + Object.keys(data.scripts).forEach(function (k) { + if (typeof data.scripts[k] !== "string") { + this.warn("nonStringScript") + delete data.scripts[k] + } else if (typos.script[k] && !data.scripts[typos.script[k]]) { + this.warn("typo", k, typos.script[k], "scripts") + } + }, this) + } - return [hsv[0], c * 100, f * 100]; -}; +, fixFilesField: function(data) { + var files = data.files + if (files && !Array.isArray(files)) { + this.warn("nonArrayFiles") + delete data.files + } else if (data.files) { + data.files = data.files.filter(function(file) { + if (!file || typeof file !== "string") { + this.warn("invalidFilename", file) + return false + } else { + return true + } + }, this) + } + } -convert.hcg.rgb = function (hcg) { - var h = hcg[0] / 360; - var c = hcg[1] / 100; - var g = hcg[2] / 100; +, fixBinField: function(data) { + if (!data.bin) return; + if (typeof data.bin === "string") { + var b = {} + var match + if (match = data.name.match(/^@[^/]+[/](.*)$/)) { + b[match[1]] = data.bin + } else { + b[data.name] = data.bin + } + data.bin = b + } + } - if (c === 0.0) { - return [g * 255, g * 255, g * 255]; - } +, fixManField: function(data) { + if (!data.man) return; + if (typeof data.man === "string") { + data.man = [ data.man ] + } + } +, fixBundleDependenciesField: function(data) { + var bdd = "bundledDependencies" + var bd = "bundleDependencies" + if (data[bdd] && !data[bd]) { + data[bd] = data[bdd] + delete data[bdd] + } + if (data[bd] && !Array.isArray(data[bd])) { + this.warn("nonArrayBundleDependencies") + delete data[bd] + } else if (data[bd]) { + data[bd] = data[bd].filter(function(bd) { + if (!bd || typeof bd !== 'string') { + this.warn("nonStringBundleDependency", bd) + return false + } else { + if (!data.dependencies) { + data.dependencies = {} + } + if (!data.dependencies.hasOwnProperty(bd)) { + this.warn("nonDependencyBundleDependency", bd) + data.dependencies[bd] = "*" + } + return true + } + }, this) + } + } - var pure = [0, 0, 0]; - var hi = (h % 1) * 6; - var v = hi % 1; - var w = 1 - v; - var mg = 0; +, fixDependencies: function(data, strict) { + var loose = !strict + objectifyDeps(data, this.warn) + addOptionalDepsToDeps(data, this.warn) + this.fixBundleDependenciesField(data) - switch (Math.floor(hi)) { - case 0: - pure[0] = 1; pure[1] = v; pure[2] = 0; break; - case 1: - pure[0] = w; pure[1] = 1; pure[2] = 0; break; - case 2: - pure[0] = 0; pure[1] = 1; pure[2] = v; break; - case 3: - pure[0] = 0; pure[1] = w; pure[2] = 1; break; - case 4: - pure[0] = v; pure[1] = 0; pure[2] = 1; break; - default: - pure[0] = 1; pure[1] = 0; pure[2] = w; - } + ;['dependencies','devDependencies'].forEach(function(deps) { + if (!(deps in data)) return + if (!data[deps] || typeof data[deps] !== "object") { + this.warn("nonObjectDependencies", deps) + delete data[deps] + return + } + Object.keys(data[deps]).forEach(function (d) { + var r = data[deps][d] + if (typeof r !== 'string') { + this.warn("nonStringDependency", d, JSON.stringify(r)) + delete data[deps][d] + } + var hosted = hostedGitInfo.fromUrl(data[deps][d]) + if (hosted) data[deps][d] = hosted.toString() + }, this) + }, this) + } - mg = (1.0 - c) * g; +, fixModulesField: function (data) { + if (data.modules) { + this.warn("deprecatedModules") + delete data.modules + } + } - return [ - (c * pure[0] + mg) * 255, - (c * pure[1] + mg) * 255, - (c * pure[2] + mg) * 255 - ]; -}; +, fixKeywordsField: function (data) { + if (typeof data.keywords === "string") { + data.keywords = data.keywords.split(/,\s+/) + } + if (data.keywords && !Array.isArray(data.keywords)) { + delete data.keywords + this.warn("nonArrayKeywords") + } else if (data.keywords) { + data.keywords = data.keywords.filter(function(kw) { + if (typeof kw !== "string" || !kw) { + this.warn("nonStringKeyword"); + return false + } else { + return true + } + }, this) + } + } -convert.hcg.hsv = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; +, fixVersionField: function(data, strict) { + // allow "loose" semver 1.0 versions in non-strict mode + // enforce strict semver 2.0 compliance in strict mode + var loose = !strict + if (!data.version) { + data.version = "" + return true + } + if (!semver.valid(data.version, loose)) { + throw new Error('Invalid version: "'+ data.version + '"') + } + data.version = semver.clean(data.version, loose) + return true + } - var v = c + g * (1.0 - c); - var f = 0; +, fixPeople: function(data) { + modifyPeople(data, unParsePerson) + modifyPeople(data, parsePerson) + } - if (v > 0.0) { - f = c / v; - } +, fixNameField: function(data, options) { + if (typeof options === "boolean") options = {strict: options} + else if (typeof options === "undefined") options = {} + var strict = options.strict + if (!data.name && !strict) { + data.name = "" + return + } + if (typeof data.name !== "string") { + throw new Error("name field must be a string.") + } + if (!strict) + data.name = data.name.trim() + ensureValidName(data.name, strict, options.allowLegacyCase) + if (isBuiltinModule(data.name)) + this.warn("conflictingName", data.name) + } - return [hcg[0], f * 100, v * 100]; -}; -convert.hcg.hsl = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; +, fixDescriptionField: function (data) { + if (data.description && typeof data.description !== 'string') { + this.warn("nonStringDescription") + delete data.description + } + if (data.readme && !data.description) + data.description = extractDescription(data.readme) + if(data.description === undefined) delete data.description; + if (!data.description) this.warn("missingDescription") + } - var l = g * (1.0 - c) + 0.5 * c; - var s = 0; +, fixReadmeField: function (data) { + if (!data.readme) { + this.warn("missingReadme") + data.readme = "ERROR: No README data found!" + } + } - if (l > 0.0 && l < 0.5) { - s = c / (2 * l); - } else - if (l >= 0.5 && l < 1.0) { - s = c / (2 * (1 - l)); - } +, fixBugsField: function(data) { + if (!data.bugs && data.repository && data.repository.url) { + var hosted = hostedGitInfo.fromUrl(data.repository.url) + if(hosted && hosted.bugs()) { + data.bugs = {url: hosted.bugs()} + } + } + else if(data.bugs) { + var emailRe = /^.+@.*\..+$/ + if(typeof data.bugs == "string") { + if(emailRe.test(data.bugs)) + data.bugs = {email:data.bugs} + else if(url.parse(data.bugs).protocol) + data.bugs = {url: data.bugs} + else + this.warn("nonEmailUrlBugsString") + } + else { + bugsTypos(data.bugs, this.warn) + var oldBugs = data.bugs + data.bugs = {} + if(oldBugs.url) { + if(typeof(oldBugs.url) == "string" && url.parse(oldBugs.url).protocol) + data.bugs.url = oldBugs.url + else + this.warn("nonUrlBugsUrlField") + } + if(oldBugs.email) { + if(typeof(oldBugs.email) == "string" && emailRe.test(oldBugs.email)) + data.bugs.email = oldBugs.email + else + this.warn("nonEmailBugsEmailField") + } + } + if(!data.bugs.email && !data.bugs.url) { + delete data.bugs + this.warn("emptyNormalizedBugs") + } + } + } - return [hcg[0], s * 100, l * 100]; -}; +, fixHomepageField: function(data) { + if (!data.homepage && data.repository && data.repository.url) { + var hosted = hostedGitInfo.fromUrl(data.repository.url) + if (hosted && hosted.docs()) data.homepage = hosted.docs() + } + if (!data.homepage) return -convert.hcg.hwb = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - var v = c + g * (1.0 - c); - return [hcg[0], (v - c) * 100, (1 - v) * 100]; -}; + if(typeof data.homepage !== "string") { + this.warn("nonUrlHomepage") + return delete data.homepage + } + if(!url.parse(data.homepage).protocol) { + data.homepage = "http://" + data.homepage + } + } -convert.hwb.hcg = function (hwb) { - var w = hwb[1] / 100; - var b = hwb[2] / 100; - var v = 1 - b; - var c = v - w; - var g = 0; +, fixLicenseField: function(data) { + if (!data.license) { + return this.warn("missingLicense") + } else{ + if ( + typeof(data.license) !== 'string' || + data.license.length < 1 + ) { + this.warn("invalidLicense") + } else { + if (!validateLicense(data.license).validForNewPackages) + this.warn("invalidLicense") + } + } + } +} - if (c < 1) { - g = (v - c) / (1 - c); - } +function isValidScopedPackageName(spec) { + if (spec.charAt(0) !== '@') return false - return [hwb[0], c * 100, g * 100]; -}; + var rest = spec.slice(1).split('/') + if (rest.length !== 2) return false -convert.apple.rgb = function (apple) { - return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; -}; + return rest[0] && rest[1] && + rest[0] === encodeURIComponent(rest[0]) && + rest[1] === encodeURIComponent(rest[1]) +} -convert.rgb.apple = function (rgb) { - return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; -}; +function isCorrectlyEncodedName(spec) { + return !spec.match(/[\/@\s\+%:]/) && + spec === encodeURIComponent(spec) +} -convert.gray.rgb = function (args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; -}; +function ensureValidName (name, strict, allowLegacyCase) { + if (name.charAt(0) === "." || + !(isValidScopedPackageName(name) || isCorrectlyEncodedName(name)) || + (strict && (!allowLegacyCase) && name !== name.toLowerCase()) || + name.toLowerCase() === "node_modules" || + name.toLowerCase() === "favicon.ico") { + throw new Error("Invalid name: " + JSON.stringify(name)) + } +} -convert.gray.hsl = convert.gray.hsv = function (args) { - return [0, 0, args[0]]; -}; +function modifyPeople (data, fn) { + if (data.author) data.author = fn(data.author) + ;["maintainers", "contributors"].forEach(function (set) { + if (!Array.isArray(data[set])) return; + data[set] = data[set].map(fn) + }) + return data +} -convert.gray.hwb = function (gray) { - return [0, 100, gray[0]]; -}; +function unParsePerson (person) { + if (typeof person === "string") return person + var name = person.name || "" + var u = person.url || person.web + var url = u ? (" ("+u+")") : "" + var e = person.email || person.mail + var email = e ? (" <"+e+">") : "" + return name+email+url +} -convert.gray.cmyk = function (gray) { - return [0, 0, 0, gray[0]]; -}; +function parsePerson (person) { + if (typeof person !== "string") return person + var name = person.match(/^([^\(<]+)/) + var url = person.match(/\(([^\)]+)\)/) + var email = person.match(/<([^>]+)>/) + var obj = {} + if (name && name[0].trim()) obj.name = name[0].trim() + if (email) obj.email = email[1]; + if (url) obj.url = url[1]; + return obj +} -convert.gray.lab = function (gray) { - return [gray[0], 0, 0]; -}; +function addOptionalDepsToDeps (data, warn) { + var o = data.optionalDependencies + if (!o) return; + var d = data.dependencies || {} + Object.keys(o).forEach(function (k) { + d[k] = o[k] + }) + data.dependencies = d +} -convert.gray.hex = function (gray) { - var val = Math.round(gray[0] / 100 * 255) & 0xFF; - var integer = (val << 16) + (val << 8) + val; +function depObjectify (deps, type, warn) { + if (!deps) return {} + if (typeof deps === "string") { + deps = deps.trim().split(/[\n\r\s\t ,]+/) + } + if (!Array.isArray(deps)) return deps + warn("deprecatedArrayDependencies", type) + var o = {} + deps.filter(function (d) { + return typeof d === "string" + }).forEach(function(d) { + d = d.trim().split(/(:?[@\s><=])/) + var dn = d.shift() + var dv = d.join("") + dv = dv.trim() + dv = dv.replace(/^@/, "") + o[dn] = dv + }) + return o +} - var string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; +function objectifyDeps (data, warn) { + depTypes.forEach(function (type) { + if (!data[type]) return; + data[type] = depObjectify(data[type], type, warn) + }) +} -convert.rgb.gray = function (rgb) { - var val = (rgb[0] + rgb[1] + rgb[2]) / 3; - return [val / 255 * 100]; -}; +function bugsTypos(bugs, warn) { + if (!bugs) return + Object.keys(bugs).forEach(function (k) { + if (typos.bugs[k]) { + warn("typo", k, typos.bugs[k], "bugs") + bugs[typos.bugs[k]] = bugs[k] + delete bugs[k] + } + }) +} /***/ }), -/* 114 */ +/* 67 */ /***/ (function(module, exports) { -module.exports = require("os"); +exports = module.exports = SemVer; -/***/ }), -/* 115 */ -/***/ (function(module, exports, __webpack_require__) { +// The debug function is excluded entirely from the minified version. +/* nomin */ var debug; +/* nomin */ if (typeof process === 'object' && + /* nomin */ process.env && + /* nomin */ process.env.NODE_DEBUG && + /* nomin */ /\bsemver\b/i.test(process.env.NODE_DEBUG)) + /* nomin */ debug = function() { + /* nomin */ var args = Array.prototype.slice.call(arguments, 0); + /* nomin */ args.unshift('SEMVER'); + /* nomin */ console.log.apply(console, args); + /* nomin */ }; +/* nomin */ else + /* nomin */ debug = function() {}; -"use strict"; +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +exports.SEMVER_SPEC_VERSION = '2.0.0'; +var MAX_LENGTH = 256; +var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; -var fs = __webpack_require__(13) +// The actual regexps go on exports.re +var re = exports.re = []; +var src = exports.src = []; +var R = 0; -module.exports = clone(fs) +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. -function clone (obj) { - if (obj === null || typeof obj !== 'object') - return obj +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. - if (obj instanceof Object) - var copy = { __proto__: obj.__proto__ } - else - var copy = Object.create(null) +var NUMERICIDENTIFIER = R++; +src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'; +var NUMERICIDENTIFIERLOOSE = R++; +src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'; - Object.getOwnPropertyNames(obj).forEach(function (key) { - Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) - }) - return copy -} +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. +var NONNUMERICIDENTIFIER = R++; +src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'; -/***/ }), -/* 116 */ -/***/ (function(module, exports, __webpack_require__) { -var path = __webpack_require__(5); -var fs = __webpack_require__(13); -var _0777 = parseInt('0777', 8); +// ## Main Version +// Three dot-separated numeric identifiers. -module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; +var MAINVERSION = R++; +src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' + + '(' + src[NUMERICIDENTIFIER] + ')\\.' + + '(' + src[NUMERICIDENTIFIER] + ')'; -function mkdirP (p, opts, f, made) { - if (typeof opts === 'function') { - f = opts; - opts = {}; - } - else if (!opts || typeof opts !== 'object') { - opts = { mode: opts }; - } - - var mode = opts.mode; - var xfs = opts.fs || fs; - - if (mode === undefined) { - mode = _0777 & (~process.umask()); - } - if (!made) made = null; - - var cb = f || function () {}; - p = path.resolve(p); - - xfs.mkdir(p, mode, function (er) { - if (!er) { - made = made || p; - return cb(null, made); - } - switch (er.code) { - case 'ENOENT': - mkdirP(path.dirname(p), opts, function (er, made) { - if (er) cb(er, made); - else mkdirP(p, opts, cb, made); - }); - break; +var MAINVERSIONLOOSE = R++; +src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[NUMERICIDENTIFIERLOOSE] + ')'; - // In the case of any other error, just see if there's a dir - // there already. If so, then hooray! If not, then something - // is borked. - default: - xfs.stat(p, function (er2, stat) { - // if the stat fails, then that's super weird. - // let the original error be the failure reason. - if (er2 || !stat.isDirectory()) cb(er, made) - else cb(null, made); - }); - break; - } - }); -} +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. -mkdirP.sync = function sync (p, opts, made) { - if (!opts || typeof opts !== 'object') { - opts = { mode: opts }; - } - - var mode = opts.mode; - var xfs = opts.fs || fs; - - if (mode === undefined) { - mode = _0777 & (~process.umask()); - } - if (!made) made = null; +var PRERELEASEIDENTIFIER = R++; +src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] + + '|' + src[NONNUMERICIDENTIFIER] + ')'; - p = path.resolve(p); +var PRERELEASEIDENTIFIERLOOSE = R++; +src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] + + '|' + src[NONNUMERICIDENTIFIER] + ')'; - try { - xfs.mkdirSync(p, mode); - made = made || p; - } - catch (err0) { - switch (err0.code) { - case 'ENOENT' : - made = sync(path.dirname(p), opts, made); - sync(p, opts, made); - break; - // In the case of any other error, just see if there's a dir - // there already. If so, then hooray! If not, then something - // is borked. - default: - var stat; - try { - stat = xfs.statSync(p); - } - catch (err1) { - throw err0; - } - if (!stat.isDirectory()) throw err0; - break; - } - } +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. - return made; -}; +var PRERELEASE = R++; +src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] + + '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'; +var PRERELEASELOOSE = R++; +src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] + + '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'; -/***/ }), -/* 117 */ -/***/ (function(module, exports, __webpack_require__) { +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. -module.exports = realpath -realpath.realpath = realpath -realpath.sync = realpathSync -realpath.realpathSync = realpathSync -realpath.monkeypatch = monkeypatch -realpath.unmonkeypatch = unmonkeypatch +var BUILDIDENTIFIER = R++; +src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'; -var fs = __webpack_require__(13) -var origRealpath = fs.realpath -var origRealpathSync = fs.realpathSync +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. -var version = process.version -var ok = /^v[0-5]\./.test(version) -var old = __webpack_require__(181) +var BUILD = R++; +src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] + + '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'; -function newError (er) { - return er && er.syscall === 'realpath' && ( - er.code === 'ELOOP' || - er.code === 'ENOMEM' || - er.code === 'ENAMETOOLONG' - ) -} -function realpath (p, cache, cb) { - if (ok) { - return origRealpath(p, cache, cb) - } +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. - if (typeof cache === 'function') { - cb = cache - cache = null - } - origRealpath(p, cache, function (er, result) { - if (newError(er)) { - old.realpath(p, cache, cb) - } else { - cb(er, result) - } - }) -} +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. -function realpathSync (p, cache) { - if (ok) { - return origRealpathSync(p, cache) - } +var FULL = R++; +var FULLPLAIN = 'v?' + src[MAINVERSION] + + src[PRERELEASE] + '?' + + src[BUILD] + '?'; - try { - return origRealpathSync(p, cache) - } catch (er) { - if (newError(er)) { - return old.realpathSync(p, cache) - } else { - throw er - } - } -} +src[FULL] = '^' + FULLPLAIN + '$'; -function monkeypatch () { - fs.realpath = realpath - fs.realpathSync = realpathSync -} +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] + + src[PRERELEASELOOSE] + '?' + + src[BUILD] + '?'; -function unmonkeypatch () { - fs.realpath = origRealpath - fs.realpathSync = origRealpathSync -} +var LOOSE = R++; +src[LOOSE] = '^' + LOOSEPLAIN + '$'; +var GTLT = R++; +src[GTLT] = '((?:<|>)?=?)'; -/***/ }), -/* 118 */ -/***/ (function(module, exports, __webpack_require__) { +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifer, meaning "any version" +// Only the first item is strictly required. +var XRANGEIDENTIFIERLOOSE = R++; +src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'; +var XRANGEIDENTIFIER = R++; +src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'; -try { - var util = __webpack_require__(14); - if (typeof util.inherits !== 'function') throw ''; - module.exports = util.inherits; -} catch (e) { - module.exports = __webpack_require__(185); -} +var XRANGEPLAIN = R++; +src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + + '(?:' + src[PRERELEASE] + ')?' + + src[BUILD] + '?' + + ')?)?'; +var XRANGEPLAINLOOSE = R++; +src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + + '(?:' + src[PRERELEASELOOSE] + ')?' + + src[BUILD] + '?' + + ')?)?'; -/***/ }), -/* 119 */ -/***/ (function(module, exports, __webpack_require__) { - -exports.alphasort = alphasort -exports.alphasorti = alphasorti -exports.setopts = setopts -exports.ownProp = ownProp -exports.makeAbs = makeAbs -exports.finish = finish -exports.mark = mark -exports.isIgnored = isIgnored -exports.childrenIgnored = childrenIgnored - -function ownProp (obj, field) { - return Object.prototype.hasOwnProperty.call(obj, field) -} - -var path = __webpack_require__(5) -var minimatch = __webpack_require__(99) -var isAbsolute = __webpack_require__(100) -var Minimatch = minimatch.Minimatch - -function alphasorti (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()) -} - -function alphasort (a, b) { - return a.localeCompare(b) -} - -function setupIgnores (self, options) { - self.ignore = options.ignore || [] - - if (!Array.isArray(self.ignore)) - self.ignore = [self.ignore] - - if (self.ignore.length) { - self.ignore = self.ignore.map(ignoreMap) - } -} - -// ignore patterns are always in dot:true mode. -function ignoreMap (pattern) { - var gmatcher = null - if (pattern.slice(-3) === '/**') { - var gpattern = pattern.replace(/(\/\*\*)+$/, '') - gmatcher = new Minimatch(gpattern, { dot: true }) - } - - return { - matcher: new Minimatch(pattern, { dot: true }), - gmatcher: gmatcher - } -} - -function setopts (self, pattern, options) { - if (!options) - options = {} - - // base-matching: just use globstar for that. - if (options.matchBase && -1 === pattern.indexOf("/")) { - if (options.noglobstar) { - throw new Error("base matching requires globstar") - } - pattern = "**/" + pattern - } +var XRANGE = R++; +src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'; +var XRANGELOOSE = R++; +src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'; - self.silent = !!options.silent - self.pattern = pattern - self.strict = options.strict !== false - self.realpath = !!options.realpath - self.realpathCache = options.realpathCache || Object.create(null) - self.follow = !!options.follow - self.dot = !!options.dot - self.mark = !!options.mark - self.nodir = !!options.nodir - if (self.nodir) - self.mark = true - self.sync = !!options.sync - self.nounique = !!options.nounique - self.nonull = !!options.nonull - self.nosort = !!options.nosort - self.nocase = !!options.nocase - self.stat = !!options.stat - self.noprocess = !!options.noprocess - self.absolute = !!options.absolute +// Tilde ranges. +// Meaning is "reasonably at or greater than" +var LONETILDE = R++; +src[LONETILDE] = '(?:~>?)'; - self.maxLength = options.maxLength || Infinity - self.cache = options.cache || Object.create(null) - self.statCache = options.statCache || Object.create(null) - self.symlinks = options.symlinks || Object.create(null) +var TILDETRIM = R++; +src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'; +re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g'); +var tildeTrimReplace = '$1~'; - setupIgnores(self, options) +var TILDE = R++; +src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'; +var TILDELOOSE = R++; +src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'; - self.changedCwd = false - var cwd = process.cwd() - if (!ownProp(options, "cwd")) - self.cwd = cwd - else { - self.cwd = path.resolve(options.cwd) - self.changedCwd = self.cwd !== cwd - } +// Caret ranges. +// Meaning is "at least and backwards compatible with" +var LONECARET = R++; +src[LONECARET] = '(?:\\^)'; - self.root = options.root || path.resolve(self.cwd, "/") - self.root = path.resolve(self.root) - if (process.platform === "win32") - self.root = self.root.replace(/\\/g, "/") +var CARETTRIM = R++; +src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'; +re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g'); +var caretTrimReplace = '$1^'; - // TODO: is an absolute `cwd` supposed to be resolved against `root`? - // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test') - self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd) - if (process.platform === "win32") - self.cwdAbs = self.cwdAbs.replace(/\\/g, "/") - self.nomount = !!options.nomount +var CARET = R++; +src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'; +var CARETLOOSE = R++; +src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'; - // disable comments and negation in Minimatch. - // Note that they are not supported in Glob itself anyway. - options.nonegate = true - options.nocomment = true +// A simple gt/lt/eq thing, or just "" to indicate "any version" +var COMPARATORLOOSE = R++; +src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'; +var COMPARATOR = R++; +src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'; - self.minimatch = new Minimatch(pattern, options) - self.options = self.minimatch.options -} -function finish (self) { - var nou = self.nounique - var all = nou ? [] : Object.create(null) +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +var COMPARATORTRIM = R++; +src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + + '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'; - for (var i = 0, l = self.matches.length; i < l; i ++) { - var matches = self.matches[i] - if (!matches || Object.keys(matches).length === 0) { - if (self.nonull) { - // do like the shell, and spit out the literal glob - var literal = self.minimatch.globSet[i] - if (nou) - all.push(literal) - else - all[literal] = true - } - } else { - // had matches - var m = Object.keys(matches) - if (nou) - all.push.apply(all, m) - else - m.forEach(function (m) { - all[m] = true - }) - } - } +// this one has to use the /g flag +re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g'); +var comparatorTrimReplace = '$1$2$3'; - if (!nou) - all = Object.keys(all) - if (!self.nosort) - all = all.sort(self.nocase ? alphasorti : alphasort) +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +var HYPHENRANGE = R++; +src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + + '\\s+-\\s+' + + '(' + src[XRANGEPLAIN] + ')' + + '\\s*$'; - // at *some* point we statted all of these - if (self.mark) { - for (var i = 0; i < all.length; i++) { - all[i] = self._mark(all[i]) - } - if (self.nodir) { - all = all.filter(function (e) { - var notDir = !(/\/$/.test(e)) - var c = self.cache[e] || self.cache[makeAbs(self, e)] - if (notDir && c) - notDir = c !== 'DIR' && !Array.isArray(c) - return notDir - }) - } - } +var HYPHENRANGELOOSE = R++; +src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + + '\\s+-\\s+' + + '(' + src[XRANGEPLAINLOOSE] + ')' + + '\\s*$'; - if (self.ignore.length) - all = all.filter(function(m) { - return !isIgnored(self, m) - }) +// Star ranges basically just allow anything at all. +var STAR = R++; +src[STAR] = '(<|>)?=?\\s*\\*'; - self.found = all +// Compile to actual regexp objects. +// All are flag-free, unless they were created above with a flag. +for (var i = 0; i < R; i++) { + debug(i, src[i]); + if (!re[i]) + re[i] = new RegExp(src[i]); } -function mark (self, p) { - var abs = makeAbs(self, p) - var c = self.cache[abs] - var m = p - if (c) { - var isDir = c === 'DIR' || Array.isArray(c) - var slash = p.slice(-1) === '/' +exports.parse = parse; +function parse(version, loose) { + if (version instanceof SemVer) + return version; - if (isDir && !slash) - m += '/' - else if (!isDir && slash) - m = m.slice(0, -1) + if (typeof version !== 'string') + return null; - if (m !== p) { - var mabs = makeAbs(self, m) - self.statCache[mabs] = self.statCache[abs] - self.cache[mabs] = self.cache[abs] - } - } + if (version.length > MAX_LENGTH) + return null; - return m -} + var r = loose ? re[LOOSE] : re[FULL]; + if (!r.test(version)) + return null; -// lotta situps... -function makeAbs (self, f) { - var abs = f - if (f.charAt(0) === '/') { - abs = path.join(self.root, f) - } else if (isAbsolute(f) || f === '') { - abs = f - } else if (self.changedCwd) { - abs = path.resolve(self.cwd, f) - } else { - abs = path.resolve(f) + try { + return new SemVer(version, loose); + } catch (er) { + return null; } - - if (process.platform === 'win32') - abs = abs.replace(/\\/g, '/') - - return abs } - -// Return true, if pattern ends with globstar '**', for the accompanying parent directory. -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) - }) +exports.valid = valid; +function valid(version, loose) { + var v = parse(version, loose); + return v ? v.version : null; } -function childrenIgnored (self, path) { - if (!self.ignore.length) - return false - return self.ignore.some(function(item) { - return !!(item.gmatcher && item.gmatcher.match(path)) - }) +exports.clean = clean; +function clean(version, loose) { + var s = parse(version.trim().replace(/^[=v]+/, ''), loose); + return s ? s.version : null; } +exports.SemVer = SemVer; -/***/ }), -/* 120 */ -/***/ (function(module, exports) { - -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) +function SemVer(version, loose) { + if (version instanceof SemVer) { + if (version.loose === loose) + return version; + else + version = version.version; + } else if (typeof version !== 'string') { + throw new TypeError('Invalid Version: ' + version); + } - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') + if (version.length > MAX_LENGTH) + throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) + if (!(this instanceof SemVer)) + return new SemVer(version, loose); - return wrapper + debug('SemVer', version, loose); + this.loose = loose; + var m = version.trim().match(loose ? re[LOOSE] : re[FULL]); - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -} + if (!m) + throw new TypeError('Invalid Version: ' + version); + this.raw = version; -/***/ }), -/* 121 */ -/***/ (function(module, exports, __webpack_require__) { + // these are actually numbers + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; -"use strict"; + if (this.major > MAX_SAFE_INTEGER || this.major < 0) + throw new TypeError('Invalid major version') + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) + throw new TypeError('Invalid minor version') -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.Project = undefined; + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) + throw new TypeError('Invalid patch version') -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ + // numberify any prerelease numeric ids + if (!m[4]) + this.prerelease = []; + else + this.prerelease = m[4].split('.').map(function(id) { + if (/^[0-9]+$/.test(id)) { + var num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) + return num; + } + return id; + }); + this.build = m[5] ? m[5].split('.') : []; + this.format(); +} -var _chalk = __webpack_require__(26); +SemVer.prototype.format = function() { + this.version = this.major + '.' + this.minor + '.' + this.patch; + if (this.prerelease.length) + this.version += '-' + this.prerelease.join('.'); + return this.version; +}; -var _chalk2 = _interopRequireDefault(_chalk); +SemVer.prototype.toString = function() { + return this.version; +}; -var _path = __webpack_require__(5); +SemVer.prototype.compare = function(other) { + debug('SemVer.compare', this.version, this.loose, other); + if (!(other instanceof SemVer)) + other = new SemVer(other, this.loose); -var _util = __webpack_require__(14); + return this.compareMain(other) || this.comparePre(other); +}; -var _errors = __webpack_require__(101); +SemVer.prototype.compareMain = function(other) { + if (!(other instanceof SemVer)) + other = new SemVer(other, this.loose); -var _log = __webpack_require__(40); + return compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch); +}; -var _package_json = __webpack_require__(72); +SemVer.prototype.comparePre = function(other) { + if (!(other instanceof SemVer)) + other = new SemVer(other, this.loose); -var _scripts = __webpack_require__(221); + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) + return -1; + else if (!this.prerelease.length && other.prerelease.length) + return 1; + else if (!this.prerelease.length && !other.prerelease.length) + return 0; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var i = 0; + do { + var a = this.prerelease[i]; + var b = other.prerelease[i]; + debug('prerelease compare', i, a, b); + if (a === undefined && b === undefined) + return 0; + else if (b === undefined) + return 1; + else if (a === undefined) + return -1; + else if (a === b) + continue; + else + return compareIdentifiers(a, b); + } while (++i); +}; -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } +// preminor will bump the version up to the next minor release, and immediately +// down to pre-release. premajor and prepatch work the same way. +SemVer.prototype.inc = function(release, identifier) { + switch (release) { + case 'premajor': + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc('pre', identifier); + break; + case 'preminor': + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc('pre', identifier); + break; + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0; + this.inc('patch', identifier); + this.inc('pre', identifier); + break; + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) + this.inc('patch', identifier); + this.inc('pre', identifier); + break; -class Project { - constructor(packageJson, projectPath) { - this.isWorkspaceRoot = false; - this.isWorkspaceProject = false; - this.json = Object.freeze(packageJson); - this.path = projectPath; - this.packageJsonLocation = (0, _path.resolve)(this.path, 'package.json'); - this.nodeModulesLocation = (0, _path.resolve)(this.path, 'node_modules'); - this.targetLocation = (0, _path.resolve)(this.path, 'target'); - this.productionDependencies = this.json.dependencies || {}; - this.devDependencies = this.json.devDependencies || {}; - this.allDependencies = _extends({}, this.devDependencies, this.productionDependencies); - this.isWorkspaceRoot = this.json.hasOwnProperty('workspaces'); - this.scripts = this.json.scripts || {}; - } - static fromPath(path) { - return _asyncToGenerator(function* () { - const pkgJson = yield (0, _package_json.readPackageJson)(path); - return new Project(pkgJson, path); - })(); - } - get name() { - return this.json.name; - } - ensureValidProjectDependency(project, dependentProjectIsInWorkspace) { - const versionInPackageJson = this.allDependencies[project.name]; - let expectedVersionInPackageJson; - if (dependentProjectIsInWorkspace) { - expectedVersionInPackageJson = project.json.version; - } else { - const relativePathToProject = normalizePath((0, _path.relative)(this.path, project.path)); - expectedVersionInPackageJson = `link:${relativePathToProject}`; - } - // No issues! - if (versionInPackageJson === expectedVersionInPackageJson) { - return; - } - let problemMsg; - if ((0, _package_json.isLinkDependency)(versionInPackageJson) && dependentProjectIsInWorkspace) { - problemMsg = `but should be using a workspace`; - } else if ((0, _package_json.isLinkDependency)(versionInPackageJson)) { - problemMsg = `using 'link:', but the path is wrong`; - } else { - problemMsg = `but it's not using the local package`; - } - throw new _errors.CliError(`[${this.name}] depends on [${project.name}] ${problemMsg}. Update its package.json to the expected value below.`, { - actual: `"${project.name}": "${versionInPackageJson}"`, - expected: `"${project.name}": "${expectedVersionInPackageJson}"`, - package: `${this.name} (${this.packageJsonLocation})` - }); - } - getBuildConfig() { - return this.json.kibana && this.json.kibana.build || {}; - } - /** - * Returns the directory that should be copied into the Kibana build artifact. - * This config can be specified to only include the project's build artifacts - * instead of everything located in the project directory. - */ - getIntermediateBuildDirectory() { - return (0, _path.resolve)(this.path, this.getBuildConfig().intermediateBuildDirectory || '.'); - } - getCleanConfig() { - return this.json.kibana && this.json.kibana.clean || {}; - } - hasScript(name) { - return name in this.scripts; - } - getExecutables() { - const raw = this.json.bin; - if (!raw) { - return {}; - } - if (typeof raw === 'string') { - return { - [this.name]: (0, _path.resolve)(this.path, raw) - }; - } - if (typeof raw === 'object') { - const binsConfig = {}; - for (const binName of Object.keys(raw)) { - binsConfig[binName] = (0, _path.resolve)(this.path, raw[binName]); - } - return binsConfig; + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) + this.major++; + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) + this.minor++; + this.patch = 0; + this.prerelease = []; + break; + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) + this.patch++; + this.prerelease = []; + break; + // This probably shouldn't be used publicly. + // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. + case 'pre': + if (this.prerelease.length === 0) + this.prerelease = [0]; + else { + var i = this.prerelease.length; + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++; + i = -2; + } } - throw new _errors.CliError(`[${this.name}] has an invalid "bin" field in its package.json, ` + `expected an object or a string`, { - binConfig: (0, _util.inspect)(raw), - package: `${this.name} (${this.packageJsonLocation})` - }); - } - runScript(scriptName, args = []) { - var _this = this; + if (i === -1) // didn't increment anything + this.prerelease.push(0); + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + if (this.prerelease[0] === identifier) { + if (isNaN(this.prerelease[1])) + this.prerelease = [identifier, 0]; + } else + this.prerelease = [identifier, 0]; + } + break; - return _asyncToGenerator(function* () { - _log.log.write(_chalk2.default.bold(`\n\nRunning script [${_chalk2.default.green(scriptName)}] in [${_chalk2.default.green(_this.name)}]:\n`)); - return (0, _scripts.runScriptInPackage)(scriptName, args, _this); - })(); - } - runScriptStreaming(scriptName, args = []) { - return (0, _scripts.runScriptInPackageStreaming)(scriptName, args, this); - } - hasDependencies() { - return Object.keys(this.allDependencies).length > 0; - } - installDependencies({ extraArgs }) { - var _this2 = this; + default: + throw new Error('invalid increment argument: ' + release); + } + this.format(); + this.raw = this.version; + return this; +}; - return _asyncToGenerator(function* () { - _log.log.write(_chalk2.default.bold(`\n\nInstalling dependencies in [${_chalk2.default.green(_this2.name)}]:\n`)); - return (0, _scripts.installInDir)(_this2.path, extraArgs); - })(); - } -} -exports.Project = Project; // We normalize all path separators to `/` in generated files +exports.inc = inc; +function inc(version, release, loose, identifier) { + if (typeof(loose) === 'string') { + identifier = loose; + loose = undefined; + } -function normalizePath(path) { - return path.replace(/[\\\/]+/g, '/'); + try { + return new SemVer(version, loose).inc(release, identifier).version; + } catch (er) { + return null; + } } -/***/ }), -/* 122 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +exports.diff = diff; +function diff(version1, version2) { + if (eq(version1, version2)) { + return null; + } else { + var v1 = parse(version1); + var v2 = parse(version2); + if (v1.prerelease.length || v2.prerelease.length) { + for (var key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key] !== v2[key]) { + return 'pre'+key; + } + } + } + return 'prerelease'; + } + for (var key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key] !== v2[key]) { + return key; + } + } + } + } +} -const fs = __webpack_require__(13); -const pify = __webpack_require__(196); +exports.compareIdentifiers = compareIdentifiers; -function type(fn, fn2, fp) { - if (typeof fp !== 'string') { - return Promise.reject(new TypeError(`Expected a string, got ${typeof fp}`)); - } +var numeric = /^[0-9]+$/; +function compareIdentifiers(a, b) { + var anum = numeric.test(a); + var bnum = numeric.test(b); - return pify(fs[fn])(fp) - .then(stats => stats[fn2]()) - .catch(err => { - if (err.code === 'ENOENT') { - return false; - } + if (anum && bnum) { + a = +a; + b = +b; + } - throw err; - }); + return (anum && !bnum) ? -1 : + (bnum && !anum) ? 1 : + a < b ? -1 : + a > b ? 1 : + 0; } -function typeSync(fn, fn2, fp) { - if (typeof fp !== 'string') { - throw new TypeError(`Expected a string, got ${typeof fp}`); - } - - try { - return fs[fn](fp)[fn2](); - } catch (err) { - if (err.code === 'ENOENT') { - return false; - } - - throw err; - } +exports.rcompareIdentifiers = rcompareIdentifiers; +function rcompareIdentifiers(a, b) { + return compareIdentifiers(b, a); } -exports.file = type.bind(null, 'stat', 'isFile'); -exports.dir = type.bind(null, 'stat', 'isDirectory'); -exports.symlink = type.bind(null, 'lstat', 'isSymbolicLink'); -exports.fileSync = typeSync.bind(null, 'statSync', 'isFile'); -exports.dirSync = typeSync.bind(null, 'statSync', 'isDirectory'); -exports.symlinkSync = typeSync.bind(null, 'lstatSync', 'isSymbolicLink'); - - -/***/ }), -/* 123 */ -/***/ (function(module, exports, __webpack_require__) { +exports.major = major; +function major(a, loose) { + return new SemVer(a, loose).major; +} -module.exports = normalize +exports.minor = minor; +function minor(a, loose) { + return new SemVer(a, loose).minor; +} -var fixer = __webpack_require__(197) -normalize.fixer = fixer +exports.patch = patch; +function patch(a, loose) { + return new SemVer(a, loose).patch; +} -var makeWarning = __webpack_require__(210) +exports.compare = compare; +function compare(a, b, loose) { + return new SemVer(a, loose).compare(new SemVer(b, loose)); +} -var fieldsToFix = ['name','version','description','repository','modules','scripts' - ,'files','bin','man','bugs','keywords','readme','homepage','license'] -var otherThingsToFix = ['dependencies','people', 'typos'] +exports.compareLoose = compareLoose; +function compareLoose(a, b) { + return compare(a, b, true); +} -var thingsToFix = fieldsToFix.map(function(fieldName) { - return ucFirst(fieldName) + "Field" -}) -// two ways to do this in CoffeeScript on only one line, sub-70 chars: -// thingsToFix = fieldsToFix.map (name) -> ucFirst(name) + "Field" -// thingsToFix = (ucFirst(name) + "Field" for name in fieldsToFix) -thingsToFix = thingsToFix.concat(otherThingsToFix) +exports.rcompare = rcompare; +function rcompare(a, b, loose) { + return compare(b, a, loose); +} -function normalize (data, warn, strict) { - if(warn === true) warn = null, strict = true - if(!strict) strict = false - if(!warn || data.private) warn = function(msg) { /* noop */ } +exports.sort = sort; +function sort(list, loose) { + return list.sort(function(a, b) { + return exports.compare(a, b, loose); + }); +} - if (data.scripts && - data.scripts.install === "node-gyp rebuild" && - !data.scripts.preinstall) { - data.gypfile = true - } - fixer.warn = function() { warn(makeWarning.apply(null, arguments)) } - thingsToFix.forEach(function(thingName) { - fixer["fix" + ucFirst(thingName)](data, strict) - }) - data._id = data.name + "@" + data.version +exports.rsort = rsort; +function rsort(list, loose) { + return list.sort(function(a, b) { + return exports.rcompare(a, b, loose); + }); } -function ucFirst (string) { - return string.charAt(0).toUpperCase() + string.slice(1); +exports.gt = gt; +function gt(a, b, loose) { + return compare(a, b, loose) > 0; } +exports.lt = lt; +function lt(a, b, loose) { + return compare(a, b, loose) < 0; +} -/***/ }), -/* 124 */ -/***/ (function(module, exports, __webpack_require__) { +exports.eq = eq; +function eq(a, b, loose) { + return compare(a, b, loose) === 0; +} -"use strict"; +exports.neq = neq; +function neq(a, b, loose) { + return compare(a, b, loose) !== 0; +} +exports.gte = gte; +function gte(a, b, loose) { + return compare(a, b, loose) >= 0; +} -var gitHosts = module.exports = { - github: { - // First two are insecure and generally shouldn't be used any more, but - // they are still supported. - 'protocols': [ 'git', 'http', 'git+ssh', 'git+https', 'ssh', 'https' ], - 'domain': 'github.com', - 'treepath': 'tree', - 'filetemplate': 'https://{auth@}raw.githubusercontent.com/{user}/{project}/{committish}/{path}', - 'bugstemplate': 'https://{domain}/{user}/{project}/issues', - 'gittemplate': 'git://{auth@}{domain}/{user}/{project}.git{#committish}', - 'tarballtemplate': 'https://{domain}/{user}/{project}/archive/{committish}.tar.gz' - }, - bitbucket: { - 'protocols': [ 'git+ssh', 'git+https', 'ssh', 'https' ], - 'domain': 'bitbucket.org', - 'treepath': 'src', - 'tarballtemplate': 'https://{domain}/{user}/{project}/get/{committish}.tar.gz' - }, - gitlab: { - 'protocols': [ 'git+ssh', 'git+https', 'ssh', 'https' ], - 'domain': 'gitlab.com', - 'treepath': 'tree', - 'docstemplate': 'https://{domain}/{user}/{project}{/tree/committish}#README', - 'bugstemplate': 'https://{domain}/{user}/{project}/issues', - 'tarballtemplate': 'https://{domain}/{user}/{project}/repository/archive.tar.gz?ref={committish}' - }, - gist: { - 'protocols': [ 'git', 'git+ssh', 'git+https', 'ssh', 'https' ], - 'domain': 'gist.github.com', - 'pathmatch': /^[/](?:([^/]+)[/])?([a-z0-9]+)(?:[.]git)?$/, - 'filetemplate': 'https://gist.githubusercontent.com/{user}/{project}/raw{/committish}/{path}', - 'bugstemplate': 'https://{domain}/{project}', - 'gittemplate': 'git://{domain}/{project}.git{#committish}', - 'sshtemplate': 'git@{domain}:/{project}.git{#committish}', - 'sshurltemplate': 'git+ssh://git@{domain}/{project}.git{#committish}', - 'browsetemplate': 'https://{domain}/{project}{/committish}', - 'docstemplate': 'https://{domain}/{project}{/committish}', - 'httpstemplate': 'git+https://{domain}/{project}.git{#committish}', - 'shortcuttemplate': '{type}:{project}{#committish}', - 'pathtemplate': '{project}{#committish}', - 'tarballtemplate': 'https://{domain}/{user}/{project}/archive/{committish}.tar.gz' - } +exports.lte = lte; +function lte(a, b, loose) { + return compare(a, b, loose) <= 0; } -var gitHostDefaults = { - 'sshtemplate': 'git@{domain}:{user}/{project}.git{#committish}', - 'sshurltemplate': 'git+ssh://git@{domain}/{user}/{project}.git{#committish}', - 'browsetemplate': 'https://{domain}/{user}/{project}{/tree/committish}', - 'docstemplate': 'https://{domain}/{user}/{project}{/tree/committish}#readme', - 'httpstemplate': 'git+https://{auth@}{domain}/{user}/{project}.git{#committish}', - 'filetemplate': 'https://{domain}/{user}/{project}/raw/{committish}/{path}', - 'shortcuttemplate': '{type}:{user}/{project}{#committish}', - 'pathtemplate': '{user}/{project}{#committish}', - 'pathmatch': /^[/]([^/]+)[/]([^/]+?)(?:[.]git|[/])?$/ +exports.cmp = cmp; +function cmp(a, op, b, loose) { + var ret; + switch (op) { + case '===': + if (typeof a === 'object') a = a.version; + if (typeof b === 'object') b = b.version; + ret = a === b; + break; + case '!==': + if (typeof a === 'object') a = a.version; + if (typeof b === 'object') b = b.version; + ret = a !== b; + break; + case '': case '=': case '==': ret = eq(a, b, loose); break; + case '!=': ret = neq(a, b, loose); break; + case '>': ret = gt(a, b, loose); break; + case '>=': ret = gte(a, b, loose); break; + case '<': ret = lt(a, b, loose); break; + case '<=': ret = lte(a, b, loose); break; + default: throw new TypeError('Invalid operator: ' + op); + } + return ret; } -Object.keys(gitHosts).forEach(function (name) { - Object.keys(gitHostDefaults).forEach(function (key) { - if (gitHosts[name][key]) return - gitHosts[name][key] = gitHostDefaults[key] - }) - gitHosts[name].protocols_re = RegExp('^(' + - gitHosts[name].protocols.map(function (protocol) { - return protocol.replace(/([\\+*{}()[\]$^|])/g, '\\$1') - }).join('|') + '):$') -}) +exports.Comparator = Comparator; +function Comparator(comp, loose) { + if (comp instanceof Comparator) { + if (comp.loose === loose) + return comp; + else + comp = comp.value; + } + if (!(this instanceof Comparator)) + return new Comparator(comp, loose); -/***/ }), -/* 125 */ -/***/ (function(module, exports, __webpack_require__) { + debug('comparator', comp, loose); + this.loose = loose; + this.parse(comp); -"use strict"; + if (this.semver === ANY) + this.value = ''; + else + this.value = this.operator + this.semver.version; -const isPlainObj = __webpack_require__(217); + debug('comp', this); +} -module.exports = (obj, opts) => { - if (!isPlainObj(obj)) { - throw new TypeError('Expected a plain object'); - } +var ANY = {}; +Comparator.prototype.parse = function(comp) { + var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; + var m = comp.match(r); - opts = opts || {}; + if (!m) + throw new TypeError('Invalid comparator: ' + comp); - // DEPRECATED - if (typeof opts === 'function') { - throw new TypeError('Specify the compare function as an option instead'); - } + this.operator = m[1]; + if (this.operator === '=') + this.operator = ''; - const deep = opts.deep; - const seenInput = []; - const seenOutput = []; + // if it literally is just '>' or '' then allow anything. + if (!m[2]) + this.semver = ANY; + else + this.semver = new SemVer(m[2], this.loose); +}; - const sortKeys = x => { - const seenIndex = seenInput.indexOf(x); +Comparator.prototype.toString = function() { + return this.value; +}; - if (seenIndex !== -1) { - return seenOutput[seenIndex]; - } +Comparator.prototype.test = function(version) { + debug('Comparator.test', version, this.loose); - const ret = {}; - const keys = Object.keys(x).sort(opts.compare); + if (this.semver === ANY) + return true; - seenInput.push(x); - seenOutput.push(ret); + if (typeof version === 'string') + version = new SemVer(version, this.loose); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const val = x[key]; + return cmp(version, this.operator, this.semver, this.loose); +}; - if (deep && Array.isArray(val)) { - const retArr = []; +Comparator.prototype.intersects = function(comp, loose) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required'); + } - for (let j = 0; j < val.length; j++) { - retArr[j] = isPlainObj(val[j]) ? sortKeys(val[j]) : val[j]; - } + var rangeTmp; - ret[key] = retArr; - continue; - } + if (this.operator === '') { + rangeTmp = new Range(comp.value, loose); + return satisfies(this.value, rangeTmp, loose); + } else if (comp.operator === '') { + rangeTmp = new Range(this.value, loose); + return satisfies(comp.semver, rangeTmp, loose); + } - ret[key] = deep && isPlainObj(val) ? sortKeys(val) : val; - } - - return ret; - }; + var sameDirectionIncreasing = + (this.operator === '>=' || this.operator === '>') && + (comp.operator === '>=' || comp.operator === '>'); + var sameDirectionDecreasing = + (this.operator === '<=' || this.operator === '<') && + (comp.operator === '<=' || comp.operator === '<'); + var sameSemVer = this.semver.version === comp.semver.version; + var differentDirectionsInclusive = + (this.operator === '>=' || this.operator === '<=') && + (comp.operator === '>=' || comp.operator === '<='); + var oppositeDirectionsLessThan = + cmp(this.semver, '<', comp.semver, loose) && + ((this.operator === '>=' || this.operator === '>') && + (comp.operator === '<=' || comp.operator === '<')); + var oppositeDirectionsGreaterThan = + cmp(this.semver, '>', comp.semver, loose) && + ((this.operator === '<=' || this.operator === '<') && + (comp.operator === '>=' || comp.operator === '>')); - return sortKeys(obj); + return sameDirectionIncreasing || sameDirectionDecreasing || + (sameSemVer && differentDirectionsInclusive) || + oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; }; -/***/ }), -/* 126 */ -/***/ (function(module, exports, __webpack_require__) { +exports.Range = Range; +function Range(range, loose) { + if (range instanceof Range) { + if (range.loose === loose) { + return range; + } else { + return new Range(range.raw, loose); + } + } -"use strict"; + if (range instanceof Comparator) { + return new Range(range.value, loose); + } -const fs = __webpack_require__(13); -const path = __webpack_require__(5); -const pify = __webpack_require__(218); + if (!(this instanceof Range)) + return new Range(range, loose); -const defaults = { - mode: 0o777 & (~process.umask()), - fs -}; + this.loose = loose; -// https://github.com/nodejs/node/issues/8987 -// https://github.com/libuv/libuv/pull/1088 -const checkPath = pth => { - if (process.platform === 'win32') { - const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path.parse(pth).root, '')); + // First, split based on boolean or || + this.raw = range; + this.set = range.split(/\s*\|\|\s*/).map(function(range) { + return this.parseRange(range.trim()); + }, this).filter(function(c) { + // throw out any that are not relevant for whatever reason + return c.length; + }); - if (pathHasInvalidWinCharacters) { - const err = new Error(`Path contains invalid characters: ${pth}`); - err.code = 'EINVAL'; - throw err; - } - } -}; + if (!this.set.length) { + throw new TypeError('Invalid SemVer Range: ' + range); + } -module.exports = (input, opts) => Promise.resolve().then(() => { - checkPath(input); - opts = Object.assign({}, defaults, opts); + this.format(); +} - const mkdir = pify(opts.fs.mkdir); - const stat = pify(opts.fs.stat); +Range.prototype.format = function() { + this.range = this.set.map(function(comps) { + return comps.join(' ').trim(); + }).join('||').trim(); + return this.range; +}; - const make = pth => { - return mkdir(pth, opts.mode) - .then(() => pth) - .catch(err => { - if (err.code === 'ENOENT') { - if (err.message.includes('null bytes') || path.dirname(pth) === pth) { - throw err; - } +Range.prototype.toString = function() { + return this.range; +}; - return make(path.dirname(pth)).then(() => make(pth)); - } +Range.prototype.parseRange = function(range) { + var loose = this.loose; + range = range.trim(); + debug('range', range, loose); + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]; + range = range.replace(hr, hyphenReplace); + debug('hyphen replace', range); + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace); + debug('comparator trim', range, re[COMPARATORTRIM]); - return stat(pth) - .then(stats => stats.isDirectory() ? pth : Promise.reject()) - .catch(() => { - throw err; - }); - }); - }; + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[TILDETRIM], tildeTrimReplace); - return make(path.resolve(input)); -}); + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[CARETTRIM], caretTrimReplace); -module.exports.sync = (input, opts) => { - checkPath(input); - opts = Object.assign({}, defaults, opts); + // normalize spaces + range = range.split(/\s+/).join(' '); - const make = pth => { - try { - opts.fs.mkdirSync(pth, opts.mode); - } catch (err) { - if (err.code === 'ENOENT') { - if (err.message.includes('null bytes') || path.dirname(pth) === pth) { - throw err; - } + // At this point, the range is completely trimmed and + // ready to be split into comparators. - make(path.dirname(pth)); - return make(pth); - } + var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; + var set = range.split(' ').map(function(comp) { + return parseComparator(comp, loose); + }).join(' ').split(/\s+/); + if (this.loose) { + // in loose mode, throw out any that are not valid comparators + set = set.filter(function(comp) { + return !!comp.match(compRe); + }); + } + set = set.map(function(comp) { + return new Comparator(comp, loose); + }); - try { - if (!opts.fs.statSync(pth).isDirectory()) { - throw new Error('The path is not a directory'); - } - } catch (_) { - throw err; - } - } + return set; +}; - return pth; - }; +Range.prototype.intersects = function(range, loose) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required'); + } - return make(path.resolve(input)); + return this.set.some(function(thisComparators) { + return thisComparators.every(function(thisComparator) { + return range.set.some(function(rangeComparators) { + return rangeComparators.every(function(rangeComparator) { + return thisComparator.intersects(rangeComparator, loose); + }); + }); + }); + }); }; +// Mostly just for testing and legacy API reasons +exports.toComparators = toComparators; +function toComparators(range, loose) { + return new Range(range, loose).set.map(function(comp) { + return comp.map(function(c) { + return c.value; + }).join(' ').trim().split(' '); + }); +} -/***/ }), -/* 127 */ -/***/ (function(module, exports) { +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +function parseComparator(comp, loose) { + debug('comp', comp); + comp = replaceCarets(comp, loose); + debug('caret', comp); + comp = replaceTildes(comp, loose); + debug('tildes', comp); + comp = replaceXRanges(comp, loose); + debug('xrange', comp); + comp = replaceStars(comp, loose); + debug('stars', comp); + return comp; +} -module.exports = require("child_process"); +function isX(id) { + return !id || id.toLowerCase() === 'x' || id === '*'; +} -/***/ }), -/* 128 */ -/***/ (function(module, exports, __webpack_require__) { +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 +function replaceTildes(comp, loose) { + return comp.trim().split(/\s+/).map(function(comp) { + return replaceTilde(comp, loose); + }).join(' '); +} -"use strict"; +function replaceTilde(comp, loose) { + var r = loose ? re[TILDELOOSE] : re[TILDE]; + return comp.replace(r, function(_, M, m, p, pr) { + debug('tilde', comp, _, M, m, p, pr); + var ret; -const chalk = __webpack_require__(26); + if (isX(M)) + ret = ''; + else if (isX(m)) + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; + else if (isX(p)) + // ~1.2 == >=1.2.0 <1.3.0 + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; + else if (pr) { + debug('replaceTilde pr', pr); + if (pr.charAt(0) !== '-') + pr = '-' + pr; + ret = '>=' + M + '.' + m + '.' + p + pr + + ' <' + M + '.' + (+m + 1) + '.0'; + } else + // ~1.2.3 == >=1.2.3 <1.3.0 + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0'; -const isSupported = process.platform !== 'win32' || process.env.CI || process.env.TERM === 'xterm-256color'; + debug('tilde return', ret); + return ret; + }); +} -const main = { - info: chalk.blue('ℹ'), - success: chalk.green('✔'), - warning: chalk.yellow('⚠'), - error: chalk.red('✖') -}; +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 +// ^1.2.3 --> >=1.2.3 <2.0.0 +// ^1.2.0 --> >=1.2.0 <2.0.0 +function replaceCarets(comp, loose) { + return comp.trim().split(/\s+/).map(function(comp) { + return replaceCaret(comp, loose); + }).join(' '); +} -const fallbacks = { - info: chalk.blue('i'), - success: chalk.green('√'), - warning: chalk.yellow('‼'), - error: chalk.red('×') -}; +function replaceCaret(comp, loose) { + debug('caret', comp, loose); + var r = loose ? re[CARETLOOSE] : re[CARET]; + return comp.replace(r, function(_, M, m, p, pr) { + debug('caret', comp, _, M, m, p, pr); + var ret; -module.exports = isSupported ? main : fallbacks; + if (isX(M)) + ret = ''; + else if (isX(m)) + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; + else if (isX(p)) { + if (M === '0') + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; + else + ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'; + } else if (pr) { + debug('replaceCaret pr', pr); + if (pr.charAt(0) !== '-') + pr = '-' + pr; + if (M === '0') { + if (m === '0') + ret = '>=' + M + '.' + m + '.' + p + pr + + ' <' + M + '.' + m + '.' + (+p + 1); + else + ret = '>=' + M + '.' + m + '.' + p + pr + + ' <' + M + '.' + (+m + 1) + '.0'; + } else + ret = '>=' + M + '.' + m + '.' + p + pr + + ' <' + (+M + 1) + '.0.0'; + } else { + debug('no pr'); + if (M === '0') { + if (m === '0') + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + m + '.' + (+p + 1); + else + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0'; + } else + ret = '>=' + M + '.' + m + '.' + p + + ' <' + (+M + 1) + '.0.0'; + } + debug('caret return', ret); + return ret; + }); +} -/***/ }), -/* 129 */ -/***/ (function(module, exports, __webpack_require__) { +function replaceXRanges(comp, loose) { + debug('replaceXRanges', comp, loose); + return comp.split(/\s+/).map(function(comp) { + return replaceXRange(comp, loose); + }).join(' '); +} -"use strict"; -// Copyright IBM Corp. 2014,2018. All Rights Reserved. -// Node module: strong-log-transformer -// This file is licensed under the Apache License 2.0. -// License text available at https://opensource.org/licenses/Apache-2.0 +function replaceXRange(comp, loose) { + comp = comp.trim(); + var r = loose ? re[XRANGELOOSE] : re[XRANGE]; + return comp.replace(r, function(ret, gtlt, M, m, p, pr) { + debug('xRange', comp, ret, gtlt, M, m, p, pr); + var xM = isX(M); + var xm = xM || isX(m); + var xp = xm || isX(p); + var anyX = xp; + if (gtlt === '=' && anyX) + gtlt = ''; + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0'; + } else { + // nothing is forbidden + ret = '*'; + } + } else if (gtlt && anyX) { + // replace X with 0 + if (xm) + m = 0; + if (xp) + p = 0; -var stream = __webpack_require__(39); -var util = __webpack_require__(14); -var fs = __webpack_require__(13); + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + // >1.2.3 => >= 1.2.4 + gtlt = '>='; + if (xm) { + M = +M + 1; + m = 0; + p = 0; + } else if (xp) { + m = +m + 1; + p = 0; + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<'; + if (xm) + M = +M + 1; + else + m = +m + 1; + } -var byline = __webpack_require__(251); -var through = __webpack_require__(253); -var duplexer = __webpack_require__(254); + ret = gtlt + M + '.' + m + '.' + p; + } else if (xm) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; + } else if (xp) { + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; + } -module.exports = Logger; + debug('xRange return', ret); -Logger.DEFAULTS = { - format: 'text', - tag: '', - mergeMultiline: false, - timeStamp: false, -}; + return ret; + }); +} -var formatters = { - text: textFormatter, - json: jsonFormatter, +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +function replaceStars(comp, loose) { + debug('replaceStars', comp, loose); + // Looseness is ignored here. star is always as loose as it gets! + return comp.trim().replace(re[STAR], ''); } -function Logger(options) { - var defaults = JSON.parse(JSON.stringify(Logger.DEFAULTS)); - options = util._extend(defaults, options || {}); - var catcher = new byline.LineStream; - var emitter = catcher; - var transforms = [ - objectifier(), - ]; +// This function is passed to string.replace(re[HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0 +function hyphenReplace($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr, tb) { - if (options.tag) { - transforms.push(staticTagger(options.tag)); - } + if (isX(fM)) + from = ''; + else if (isX(fm)) + from = '>=' + fM + '.0.0'; + else if (isX(fp)) + from = '>=' + fM + '.' + fm + '.0'; + else + from = '>=' + from; - if (options.mergeMultiline) { - transforms.push(lineMerger()); - } + if (isX(tM)) + to = ''; + else if (isX(tm)) + to = '<' + (+tM + 1) + '.0.0'; + else if (isX(tp)) + to = '<' + tM + '.' + (+tm + 1) + '.0'; + else if (tpr) + to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr; + else + to = '<=' + to; - // TODO - // if (options.pidStamp) { - // transforms.push(pidStamper(options.pid)); - // } + return (from + ' ' + to).trim(); +} - // TODO - // if (options.workerStamp) { - // transforms.push(workerStamper(options.worker)); - // } - transforms.push(formatters[options.format](options)); +// if ANY of the sets match ALL of its comparators, then pass +Range.prototype.test = function(version) { + if (!version) + return false; - // restore line endings that were removed by byline - transforms.push(reLiner()); + if (typeof version === 'string') + version = new SemVer(version, this.loose); - for (var t in transforms) { - emitter = emitter.pipe(transforms[t]); + for (var i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version)) + return true; } + return false; +}; - return duplexer(catcher, emitter); -} +function testSet(set, version) { + for (var i = 0; i < set.length; i++) { + if (!set[i].test(version)) + return false; + } -function reLiner() { - return through(appendNewline); + if (version.prerelease.length) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (var i = 0; i < set.length; i++) { + debug(set[i].semver); + if (set[i].semver === ANY) + continue; - function appendNewline(line) { - this.emit('data', line + '\n'); + if (set[i].semver.prerelease.length > 0) { + var allowed = set[i].semver; + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) + return true; + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false; } -} -function objectifier() { - return through(objectify, null, {autoDestroy: false}); + return true; +} - function objectify(line) { - this.emit('data', { - msg: line, - time: Date.now(), - }); +exports.satisfies = satisfies; +function satisfies(version, range, loose) { + try { + range = new Range(range, loose); + } catch (er) { + return false; } + return range.test(version); } -function staticTagger(tag) { - return through(tagger); - - function tagger(logEvent) { - logEvent.tag = tag; - this.emit('data', logEvent); +exports.maxSatisfying = maxSatisfying; +function maxSatisfying(versions, range, loose) { + var max = null; + var maxSV = null; + try { + var rangeObj = new Range(range, loose); + } catch (er) { + return null; } + versions.forEach(function (v) { + if (rangeObj.test(v)) { // satisfies(v, range, loose) + if (!max || maxSV.compare(v) === -1) { // compare(max, v, true) + max = v; + maxSV = new SemVer(max, loose); + } + } + }) + return max; } -function textFormatter(options) { - return through(textify); - - function textify(logEvent) { - var line = util.format('%s%s', textifyTags(logEvent.tag), - logEvent.msg.toString()); - if (options.timeStamp) { - line = util.format('%s %s', new Date(logEvent.time).toISOString(), line); - } - this.emit('data', line.replace(/\n/g, '\\n')); +exports.minSatisfying = minSatisfying; +function minSatisfying(versions, range, loose) { + var min = null; + var minSV = null; + try { + var rangeObj = new Range(range, loose); + } catch (er) { + return null; } - - function textifyTags(tags) { - var str = ''; - if (typeof tags === 'string') { - str = tags + ' '; - } else if (typeof tags === 'object') { - for (var t in tags) { - str += t + ':' + tags[t] + ' '; + versions.forEach(function (v) { + if (rangeObj.test(v)) { // satisfies(v, range, loose) + if (!min || minSV.compare(v) === 1) { // compare(min, v, true) + min = v; + minSV = new SemVer(min, loose); } } - return str; - } + }) + return min; } -function jsonFormatter(options) { - return through(jsonify); - - function jsonify(logEvent) { - if (options.timeStamp) { - logEvent.time = new Date(logEvent.time).toISOString(); - } else { - delete logEvent.time; - } - logEvent.msg = logEvent.msg.toString(); - this.emit('data', JSON.stringify(logEvent)); +exports.validRange = validRange; +function validRange(range, loose) { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, loose).range || '*'; + } catch (er) { + return null; } } -function lineMerger(host) { - var previousLine = null; - var flushTimer = null; - var stream = through(lineMergerWrite, lineMergerEnd); - var flush = _flush.bind(stream); +// Determine if version is less than all the versions possible in the range +exports.ltr = ltr; +function ltr(version, range, loose) { + return outside(version, range, '<', loose); +} - return stream; +// Determine if version is greater than all the versions possible in the range. +exports.gtr = gtr; +function gtr(version, range, loose) { + return outside(version, range, '>', loose); +} - function lineMergerWrite(line) { - if (/^\s+/.test(line.msg)) { - if (previousLine) { - previousLine.msg += '\n' + line.msg; - } else { - previousLine = line; - } - } else { - flush(); - previousLine = line; - } - // rolling timeout - clearTimeout(flushTimer); - flushTimer = setTimeout(flush.bind(this), 10); - } +exports.outside = outside; +function outside(version, range, hilo, loose) { + version = new SemVer(version, loose); + range = new Range(range, loose); - function _flush() { - if (previousLine) { - this.emit('data', previousLine); - previousLine = null; - } + var gtfn, ltefn, ltfn, comp, ecomp; + switch (hilo) { + case '>': + gtfn = gt; + ltefn = lte; + ltfn = lt; + comp = '>'; + ecomp = '>='; + break; + case '<': + gtfn = lt; + ltefn = gte; + ltfn = gt; + comp = '<'; + ecomp = '<='; + break; + default: + throw new TypeError('Must provide a hilo val of "<" or ">"'); } - function lineMergerEnd() { - flush.call(this); - this.emit('end'); + // If it satisifes the range it is not outside + if (satisfies(version, range, loose)) { + return false; } -} - - -/***/ }), -/* 130 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.copyWorkspacePackages = exports.workspacePackagePaths = undefined; - -let workspacePackagePaths = exports.workspacePackagePaths = (() => { - var _ref = _asyncToGenerator(function* (rootPath) { - const rootPkgJson = yield (0, _package_json.readPackageJson)(_path2.default.join(rootPath, 'package.json')); - if (!rootPkgJson.workspaces) { - return []; - } - const workspacesPathsPatterns = rootPkgJson.workspaces.packages; - let workspaceProjectsPaths = []; - for (const pattern of workspacesPathsPatterns) { - workspaceProjectsPaths = workspaceProjectsPaths.concat((yield packagesFromGlobPattern({ pattern, rootPath }))); - } - // Filter out exclude glob patterns - for (const pattern of workspacesPathsPatterns) { - if (pattern.startsWith('!')) { - const pathToRemove = _path2.default.join(rootPath, pattern.slice(1), 'package.json'); - workspaceProjectsPaths = workspaceProjectsPaths.filter(function (p) { - return p !== pathToRemove; - }); - } - } - return workspaceProjectsPaths; - }); - return function workspacePackagePaths(_x) { - return _ref.apply(this, arguments); - }; -})(); + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. -let copyWorkspacePackages = exports.copyWorkspacePackages = (() => { - var _ref2 = _asyncToGenerator(function* (rootPath) { - const workspaceProjects = yield getWorkspaceProjects(rootPath); - for (const project of workspaceProjects.values()) { - const dest = _path2.default.resolve(rootPath, 'node_modules', project.name); - // Remove the symlink - yield (0, _fs.unlink)(dest); - // Copy in the package - yield (0, _fs.copyDirectory)(project.path, dest); - } - }); + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i]; - return function copyWorkspacePackages(_x2) { - return _ref2.apply(this, arguments); - }; -})(); + var high = null; + var low = null; -let getWorkspaceProjects = (() => { - var _ref3 = _asyncToGenerator(function* (rootPath) { - const projectPaths = (0, _config.getProjectPaths)(rootPath, {}); - const projects = yield (0, _projects.getProjects)(rootPath, projectPaths); - for (const [key, project] of projects.entries()) { - if (!project.isWorkspaceProject) { - projects.delete(key); - } - } - return projects; + comparators.forEach(function(comparator) { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator; + low = low || comparator; + if (gtfn(comparator.semver, high.semver, loose)) { + high = comparator; + } else if (ltfn(comparator.semver, low.semver, loose)) { + low = comparator; + } }); - return function getWorkspaceProjects(_x3) { - return _ref3.apply(this, arguments); - }; -})(); - -var _glob = __webpack_require__(48); - -var _glob2 = _interopRequireDefault(_glob); - -var _path = __webpack_require__(5); - -var _path2 = _interopRequireDefault(_path); - -var _util = __webpack_require__(14); - -var _config = __webpack_require__(104); - -var _fs = __webpack_require__(70); - -var _package_json = __webpack_require__(72); - -var _projects = __webpack_require__(47); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false; + } + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false; + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false; + } + } + return true; +} -const glob = (0, _util.promisify)(_glob2.default); +exports.prerelease = prerelease; +function prerelease(version, loose) { + var parsed = parse(version, loose); + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null; +} -function packagesFromGlobPattern({ pattern, rootPath }) { - const globOptions = { - cwd: rootPath, - // Should throw in case of unusual errors when reading the file system - strict: true, - // Always returns absolute paths for matched files - absolute: true, - // Do not match ** against multiple filenames - // (This is only specified because we currently don't have a need for it.) - noglobstar: true - }; - return glob(_path2.default.join(pattern, 'package.json'), globOptions); +exports.intersects = intersects; +function intersects(r1, r2, loose) { + r1 = new Range(r1, loose) + r2 = new Range(r2, loose) + return r1.intersects(r2) } + /***/ }), -/* 131 */ +/* 68 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; - -const path = __webpack_require__(5); -const globby = __webpack_require__(259); -const isPathCwd = __webpack_require__(265); -const isPathInCwd = __webpack_require__(266); -const pify = __webpack_require__(269); -const rimraf = __webpack_require__(270); -const pMap = __webpack_require__(271); +var parse = __webpack_require__(69); +var correct = __webpack_require__(71); -const rimrafP = pify(rimraf); +var genericWarning = ( + 'license should be ' + + 'a valid SPDX license expression (without "LicenseRef"), ' + + '"UNLICENSED", or ' + + '"SEE LICENSE IN "' +); -function safeCheck(file) { - if (isPathCwd(file)) { - throw new Error('Cannot delete the current working directory. Can be overriden with the `force` option.'); - } +var fileReferenceRE = /^SEE LICEN[CS]E IN (.+)$/; - if (!isPathInCwd(file)) { - throw new Error('Cannot delete files/folders outside the current working directory. Can be overriden with the `force` option.'); - } +function startsWith(prefix, string) { + return string.slice(0, prefix.length) === prefix; } -module.exports = (patterns, opts) => { - opts = Object.assign({}, opts); - - const force = opts.force; - delete opts.force; - - const dryRun = opts.dryRun; - delete opts.dryRun; - - const mapper = file => { - if (!force) { - safeCheck(file); - } - - file = path.resolve(opts.cwd || '', file); - - if (dryRun) { - return file; - } - - return rimrafP(file, {glob: false}).then(() => file); - }; - - return globby(patterns, opts).then(files => pMap(files, mapper, opts)); -}; - -module.exports.sync = (patterns, opts) => { - opts = Object.assign({}, opts); - - const force = opts.force; - delete opts.force; - - const dryRun = opts.dryRun; - delete opts.dryRun; - - return globby.sync(patterns, opts).map(file => { - if (!force) { - safeCheck(file); - } +function usesLicenseRef(ast) { + if (ast.hasOwnProperty('license')) { + var license = ast.license; + return ( + startsWith('LicenseRef', license) || + startsWith('DocumentRef', license) + ); + } else { + return ( + usesLicenseRef(ast.left) || + usesLicenseRef(ast.right) + ); + } +} - file = path.resolve(opts.cwd || '', file); +module.exports = function(argument) { + var ast; - if (!dryRun) { - rimraf.sync(file, {glob: false}); - } + try { + ast = parse(argument); + } catch (e) { + var match + if ( + argument === 'UNLICENSED' || + argument === 'UNLICENCED' + ) { + return { + validForOldPackages: true, + validForNewPackages: true, + unlicensed: true + }; + } else if (match = fileReferenceRE.exec(argument)) { + return { + validForOldPackages: true, + validForNewPackages: true, + inFile: match[1] + }; + } else { + var result = { + validForOldPackages: false, + validForNewPackages: false, + warnings: [genericWarning] + }; + var corrected = correct(argument); + if (corrected) { + result.warnings.push( + 'license is similar to the valid expression "' + corrected + '"' + ); + } + return result; + } + } - return file; - }); + if (usesLicenseRef(ast)) { + return { + validForNewPackages: false, + validForOldPackages: false, + spdx: true, + warnings: [genericWarning] + }; + } else { + return { + validForNewPackages: true, + validForOldPackages: true, + spdx: true + }; + } }; /***/ }), -/* 132 */ +/* 69 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; - -var arrayUniq = __webpack_require__(262); +var parser = __webpack_require__(70).parser -module.exports = function () { - return arrayUniq([].concat.apply([], arguments)); -}; +module.exports = function (argument) { + return parser.parse(argument) +} /***/ }), -/* 133 */ +/* 70 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; +/* WEBPACK VAR INJECTION */(function(module) {/* parser generated by jison 0.4.17 */ +/* + Returns a Parser object of the following structure: -module.exports = function (val) { - if (val === null || val === undefined) { - return []; - } + Parser: { + yy: {} + } - return Array.isArray(val) ? val : [val]; -}; + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), -/***/ }), -/* 134 */ -/***/ (function(module, exports, __webpack_require__) { + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, -const pkg = __webpack_require__(296); + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } -module.exports = pkg.async; -module.exports.default = pkg.async; -module.exports.async = pkg.async; -module.exports.sync = pkg.sync; -module.exports.stream = pkg.stream; - - -/***/ }), -/* 135 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } -var utils = __webpack_require__(75); + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +var spdxparse = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,5],$V1=[1,6],$V2=[1,7],$V3=[1,4],$V4=[1,9],$V5=[1,10],$V6=[5,14,15,17],$V7=[5,12,14,15,17]; +var parser = {trace: function trace() { }, +yy: {}, +symbols_: {"error":2,"start":3,"expression":4,"EOS":5,"simpleExpression":6,"LICENSE":7,"PLUS":8,"LICENSEREF":9,"DOCUMENTREF":10,"COLON":11,"WITH":12,"EXCEPTION":13,"AND":14,"OR":15,"OPEN":16,"CLOSE":17,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOS",7:"LICENSE",8:"PLUS",9:"LICENSEREF",10:"DOCUMENTREF",11:"COLON",12:"WITH",13:"EXCEPTION",14:"AND",15:"OR",16:"OPEN",17:"CLOSE"}, +productions_: [0,[3,2],[6,1],[6,2],[6,1],[6,3],[4,1],[4,3],[4,3],[4,3],[4,3]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ -module.exports = function(braces, options) { - braces.compiler +var $0 = $$.length - 1; +switch (yystate) { +case 1: +return this.$ = $$[$0-1] +break; +case 2: case 4: case 5: +this.$ = {license: yytext} +break; +case 3: +this.$ = {license: $$[$0-1], plus: true} +break; +case 6: +this.$ = $$[$0] +break; +case 7: +this.$ = {exception: $$[$0]} +this.$.license = $$[$0-2].license +if ($$[$0-2].hasOwnProperty('plus')) { + this.$.plus = $$[$0-2].plus +} +break; +case 8: +this.$ = {conjunction: 'and', left: $$[$0-2], right: $$[$0]} +break; +case 9: +this.$ = {conjunction: 'or', left: $$[$0-2], right: $$[$0]} +break; +case 10: +this.$ = $$[$0-1] +break; +} +}, +table: [{3:1,4:2,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{1:[3]},{5:[1,8],14:$V4,15:$V5},o($V6,[2,6],{12:[1,11]}),{4:12,6:3,7:$V0,9:$V1,10:$V2,16:$V3},o($V7,[2,2],{8:[1,13]}),o($V7,[2,4]),{11:[1,14]},{1:[2,1]},{4:15,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{4:16,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{13:[1,17]},{14:$V4,15:$V5,17:[1,18]},o($V7,[2,3]),{9:[1,19]},o($V6,[2,8]),o([5,15,17],[2,9],{14:$V4}),o($V6,[2,7]),o($V6,[2,10]),o($V7,[2,5])], +defaultActions: {8:[2,1]}, +parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + function _parseError (msg, hash) { + this.message = msg; + this.hash = hash; + } + _parseError.prototype = Error; - /** - * bos - */ + throw new _parseError(str, hash); + } +}, +parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + var ranges = lexer.options && lexer.options.ranges; + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + _token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + }; + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === 'undefined' || !action.length || !action[0]) { + var errStr = ''; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push('\'' + this.terminals_[p] + '\''); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; + } else { + errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: yyloc, + expected: expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== 'undefined') { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; +}}; +/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ - .set('bos', function() { - if (this.output) return; - this.ast.queue = isEscaped(this.ast) ? [this.ast.val] : []; - this.ast.count = 1; - }) +EOF:1, - /** - * Square brackets - */ +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, - .set('bracket', function(node) { - var close = node.close; - var open = !node.escaped ? '[' : '\\['; - var negated = node.negated; - var inner = node.inner; +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, - inner = inner.replace(/\\(?=[\\\w]|$)/g, '\\\\'); - if (inner === ']-') { - inner = '\\]\\-'; - } +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } - if (negated && inner.indexOf('.') === -1) { - inner += '.'; - } - if (negated && inner.indexOf('/') === -1) { - inner += '/'; - } + this._input = this._input.slice(1); + return ch; + }, - var val = open + negated + inner + close; - var queue = node.parent.queue; - var last = utils.arrayify(queue.pop()); +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); - queue.push(utils.join(last, val)); - queue.push.apply(queue, []); - }) + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); - /** - * Brace - */ + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; - .set('brace', function(node) { - node.queue = isEscaped(node) ? [node.val] : []; - node.count = 1; - return this.mapVisit(node.nodes); - }) + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; - /** - * Open - */ + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, - .set('brace.open', function(node) { - node.parent.open = node.val; - }) +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, - /** - * Inner - */ +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); - .set('text', function(node) { - var queue = node.parent.queue; - var escaped = node.escaped; - var segs = [node.val]; + } + return this; + }, - if (node.optimize === false) { - options = utils.extend({}, options, {optimize: false}); - } +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, - if (node.multiplier > 1) { - node.parent.count *= node.multiplier; - } +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, - if (options.quantifiers === true && utils.isQuantifier(node.val)) { - escaped = true; +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, - } else if (node.val.length > 1) { - if (isType(node.parent, 'brace') && !isEscaped(node)) { - var expanded = utils.expand(node.val, options); - segs = expanded.segs; +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, - if (expanded.isOptimized) { - node.parent.isOptimized = true; - } +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function (match, indexed_rule) { + var token, + lines, + backup; - // if nothing was expanded, we probably have a literal brace - if (!segs.length) { - var val = (expanded.val || node.val); - if (options.unescape !== false) { - // unescape unexpanded brace sequence/set separators - val = val.replace(/\\([,.])/g, '$1'); - // strip quotes - val = val.replace(/["'`]/g, ''); + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); } - - segs = [val]; - escaped = true; - } } - } else if (node.val === ',') { - if (options.expand) { - node.parent.queue.push(['']); - segs = ['']; - } else { - segs = ['|']; + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; } - } else { - escaped = true; - } - - if (escaped && isType(node.parent, 'brace')) { - if (node.parent.nodes.length <= 4 && node.parent.count === 1) { - node.parent.escaped = true; - } else if (node.parent.length <= 3) { - node.parent.escaped = true; + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; } - } - - if (!hasQueue(node.parent)) { - node.parent.queue = segs; - return; - } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; + } + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, - var last = utils.arrayify(queue.pop()); - if (node.parent.count > 1 && options.expand) { - last = multiply(last, node.parent.count); - node.parent.count = 1; - } - - queue.push(utils.join(utils.flatten(last), segs.shift())); - queue.push.apply(queue, segs); - }) - - /** - * Close - */ - - .set('brace.close', function(node) { - var queue = node.parent.queue; - var prev = node.parent.parent; - var last = prev.queue.pop(); - var open = node.parent.open; - var close = node.val; - - if (open && close && isOptimized(node, options)) { - open = '('; - close = ')'; - } - - // if a close brace exists, and the previous segment is one character - // don't wrap the result in braces or parens - var ele = utils.last(queue); - if (node.parent.count > 1 && options.expand) { - ele = multiply(queue.pop(), node.parent.count); - node.parent.count = 1; - queue.push(ele); - } - - if (close && typeof ele === 'string' && ele.length === 1) { - open = ''; - close = ''; - } - - if ((isLiteralBrace(node, options) || noInner(node)) && !node.parent.hasEmpty) { - queue.push(utils.join(open, queue.pop() || '')); - queue = utils.flatten(utils.join(queue, close)); - } - - if (typeof last === 'undefined') { - prev.queue = [queue]; - } else { - prev.queue.push(utils.flatten(utils.join(last, queue))); - } - }) - - /** - * eos - */ - - .set('eos', function(node) { - if (this.input) return; - - if (options.optimize !== false) { - this.output = utils.last(utils.flatten(this.ast.queue)); - } else if (Array.isArray(utils.last(this.ast.queue))) { - this.output = utils.flatten(this.ast.queue.pop()); - } else { - this.output = utils.flatten(this.ast.queue); - } - - if (node.parent.count > 1 && options.expand) { - this.output = multiply(this.output, node.parent.count); - } - - this.output = utils.arrayify(this.output); - this.ast.queue = []; - }); - -}; - -/** - * Multiply the segments in the current brace level - */ - -function multiply(queue, n, options) { - return utils.flatten(utils.repeat(utils.arrayify(queue), n)); -} - -/** - * Return true if `node` is escaped - */ - -function isEscaped(node) { - return node.escaped === true; -} - -/** - * Returns true if regex parens should be used for sets. If the parent `type` - * is not `brace`, then we're on a root node, which means we should never - * expand segments and open/close braces should be `{}` (since this indicates - * a brace is missing from the set) - */ - -function isOptimized(node, options) { - if (node.parent.isOptimized) return true; - return isType(node.parent, 'brace') - && !isEscaped(node.parent) - && options.expand !== true; -} - -/** - * Returns true if the value in `node` should be wrapped in a literal brace. - * @return {Boolean} - */ - -function isLiteralBrace(node, options) { - return isEscaped(node.parent) || options.optimize !== false; -} - -/** - * Returns true if the given `node` does not have an inner value. - * @return {Boolean} - */ - -function noInner(node, type) { - if (node.parent.queue.length === 1) { - return true; - } - var nodes = node.parent.nodes; - return nodes.length === 3 - && isType(nodes[0], 'brace.open') - && !isType(nodes[1], 'text') - && isType(nodes[2], 'brace.close'); -} - -/** - * Returns true if the given `node` is the given `type` - * @return {Boolean} - */ - -function isType(node, type) { - return typeof node !== 'undefined' && node.type === type; -} - -/** - * Returns true if the given `node` has a non-empty queue. - * @return {Boolean} - */ - -function hasQueue(node) { - return Array.isArray(node.queue) && node.queue.length; -} - - -/***/ }), -/* 136 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * split-string - * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. - */ - - - -var extend = __webpack_require__(320); - -module.exports = function(str, options, fn) { - if (typeof str !== 'string') { - throw new TypeError('expected a string'); - } - - if (typeof options === 'function') { - fn = options; - options = null; - } - - // allow separator to be defined as a string - if (typeof options === 'string') { - options = { sep: options }; - } - - var opts = extend({sep: '.'}, options); - var quotes = opts.quotes || ['"', "'", '`']; - var brackets; - - if (opts.brackets === true) { - brackets = { - '<': '>', - '(': ')', - '[': ']', - '{': '}' - }; - } else if (opts.brackets) { - brackets = opts.brackets; - } - - var tokens = []; - var stack = []; - var arr = ['']; - var sep = opts.sep; - var len = str.length; - var idx = -1; - var closeIdx; - - function expected() { - if (brackets && stack.length) { - return brackets[stack[stack.length - 1]]; - } - } - - while (++idx < len) { - var ch = str[idx]; - var next = str[idx + 1]; - var tok = { val: ch, idx: idx, arr: arr, str: str }; - tokens.push(tok); - - if (ch === '\\') { - tok.val = keepEscaping(opts, str, idx) === true ? (ch + next) : next; - tok.escaped = true; - if (typeof fn === 'function') { - fn(tok); - } - arr[arr.length - 1] += tok.val; - idx++; - continue; - } - - if (brackets && brackets[ch]) { - stack.push(ch); - var e = expected(); - var i = idx + 1; - - if (str.indexOf(e, i + 1) !== -1) { - while (stack.length && i < len) { - var s = str[++i]; - if (s === '\\') { - s++; - continue; - } - - if (quotes.indexOf(s) !== -1) { - i = getClosingQuote(str, s, i + 1); - continue; - } - - e = expected(); - if (stack.length && str.indexOf(e, i + 1) === -1) { - break; - } - - if (brackets[s]) { - stack.push(s); - continue; - } - - if (e === s) { - stack.pop(); - } +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; } - } - - closeIdx = i; - if (closeIdx === -1) { - arr[arr.length - 1] += ch; - continue; - } - - ch = str.slice(idx, closeIdx + 1); - tok.val = ch; - tok.idx = idx = closeIdx; - } - - if (quotes.indexOf(ch) !== -1) { - closeIdx = getClosingQuote(str, ch, idx + 1); - if (closeIdx === -1) { - arr[arr.length - 1] += ch; - continue; - } - - if (keepQuotes(ch, opts) === true) { - ch = str.slice(idx, closeIdx + 1); - } else { - ch = str.slice(idx + 1, closeIdx); - } - - tok.val = ch; - tok.idx = idx = closeIdx; - } - - if (typeof fn === 'function') { - fn(tok, tokens); - ch = tok.val; - idx = tok.idx; - } - - if (tok.val === sep && tok.split !== false) { - arr.push(''); - continue; - } - - arr[arr.length - 1] += tok.val; - } - - return arr; -}; - -function getClosingQuote(str, ch, i, brackets) { - var idx = str.indexOf(ch, i); - if (str.charAt(idx - 1) === '\\') { - return getClosingQuote(str, ch, idx + 1); - } - return idx; -} - -function keepQuotes(ch, opts) { - if (opts.keepDoubleQuotes === true && ch === '"') return true; - if (opts.keepSingleQuotes === true && ch === "'") return true; - return opts.keepQuotes; -} - -function keepEscaping(opts, str, idx) { - if (typeof opts.keepEscaping === 'function') { - return opts.keepEscaping(str, idx); - } - return opts.keepEscaping === true || str[idx + 1] === '\\'; -} - - -/***/ }), -/* 137 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * repeat-string - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - - - -/** - * Results cache - */ - -var res = ''; -var cache; - -/** - * Expose `repeat` - */ - -module.exports = repeat; - -/** - * Repeat the given `string` the specified `number` - * of times. - * - * **Example:** - * - * ```js - * var repeat = require('repeat-string'); - * repeat('A', 5); - * //=> AAAAA - * ``` - * - * @param {String} `string` The string to repeat - * @param {Number} `number` The number of times to repeat the string - * @return {String} Repeated string - * @api public - */ - -function repeat(str, num) { - if (typeof str !== 'string') { - throw new TypeError('expected a string'); - } - - // cover common, quick use cases - if (num === 1) return str; - if (num === 2) return str + str; - - var max = str.length * num; - if (cache !== str || typeof cache === 'undefined') { - cache = str; - res = ''; - } else if (res.length >= max) { - return res.substr(0, max); - } - - while (max > res.length && num > 1) { - if (num & 1) { - res += str; - } - - num >>= 1; - str += str; - } - res += str; - res = res.substr(0, max); - return res; -} + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. + } else { + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, +// return next match that has a token +lex:function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, -/***/ }), -/* 138 */ -/***/ (function(module, exports, __webpack_require__) { +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin(condition) { + this.conditionStack.push(condition); + }, -"use strict"; +// pop the previously active lexer condition state off the condition stack +popState:function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, -var Node = __webpack_require__(327); -var utils = __webpack_require__(75); +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, -/** - * Braces parsers - */ - -module.exports = function(braces, options) { - braces.parser - .set('bos', function() { - if (!this.parsed) { - this.ast = this.nodes[0] = new Node(this.ast); - } - }) - - /** - * Character parsers - */ - - .set('escape', function() { - var pos = this.position(); - var m = this.match(/^(?:\\(.)|\$\{)/); - if (!m) return; - - var prev = this.prev(); - var last = utils.last(prev.nodes); - - var node = pos(new Node({ - type: 'text', - multiplier: 1, - val: m[0] - })); - - if (node.val === '\\\\') { - return node; - } - - if (node.val === '${') { - var str = this.input; - var idx = -1; - var ch; - - while ((ch = str[++idx])) { - this.consume(1); - node.val += ch; - if (ch === '\\') { - node.val += str[++idx]; - continue; - } - if (ch === '}') { - break; - } - } - } - - if (this.options.unescape !== false) { - node.val = node.val.replace(/\\([{}])/g, '$1'); - } - - if (last.val === '"' && this.input.charAt(0) === '"') { - last.val = node.val; - this.consume(1); - return; - } - - return concatNodes.call(this, pos, node, prev, options); - }) - - /** - * Brackets: "[...]" (basic, this is overridden by - * other parsers in more advanced implementations) - */ - - .set('bracket', function() { - var isInside = this.isInside('brace'); - var pos = this.position(); - var m = this.match(/^(?:\[([!^]?)([^\]]{2,}|\]\-)(\]|[^*+?]+)|\[)/); - if (!m) return; - - var prev = this.prev(); - var val = m[0]; - var negated = m[1] ? '^' : ''; - var inner = m[2] || ''; - var close = m[3] || ''; - - if (isInside && prev.type === 'brace') { - prev.text = prev.text || ''; - prev.text += val; - } - - var esc = this.input.slice(0, 2); - if (inner === '' && esc === '\\]') { - inner += esc; - this.consume(2); - - var str = this.input; - var idx = -1; - var ch; - - while ((ch = str[++idx])) { - this.consume(1); - if (ch === ']') { - close = ch; - break; - } - inner += ch; - } - } - - return pos(new Node({ - type: 'bracket', - val: val, - escaped: close !== ']', - negated: negated, - inner: inner, - close: close - })); - }) - - /** - * Empty braces (we capture these early to - * speed up processing in the compiler) - */ - - .set('multiplier', function() { - var isInside = this.isInside('brace'); - var pos = this.position(); - var m = this.match(/^\{(,+(?:(\{,+\})*),*|,*(?:(\{,+\})*),+)\}/); - if (!m) return; - - this.multiplier = true; - var prev = this.prev(); - var val = m[0]; - - if (isInside && prev.type === 'brace') { - prev.text = prev.text || ''; - prev.text += val; - } - - var node = pos(new Node({ - type: 'text', - multiplier: 1, - match: m, - val: val - })); - - return concatNodes.call(this, pos, node, prev, options); - }) - - /** - * Open - */ - - .set('brace.open', function() { - var pos = this.position(); - var m = this.match(/^\{(?!(?:[^\\}]?|,+)\})/); - if (!m) return; - - var prev = this.prev(); - var last = utils.last(prev.nodes); - - // if the last parsed character was an extglob character - // we need to _not optimize_ the brace pattern because - // it might be mistaken for an extglob by a downstream parser - if (last && last.val && isExtglobChar(last.val.slice(-1))) { - last.optimize = false; - } - - var open = pos(new Node({ - type: 'brace.open', - val: m[0] - })); - - var node = pos(new Node({ - type: 'brace', - nodes: [] - })); - - node.push(open); - prev.push(node); - this.push('brace', node); - }) - - /** - * Close - */ - - .set('brace.close', function() { - var pos = this.position(); - var m = this.match(/^\}/); - if (!m || !m[0]) return; - - var brace = this.pop('brace'); - var node = pos(new Node({ - type: 'brace.close', - val: m[0] - })); - - if (!this.isType(brace, 'brace')) { - if (this.options.strict) { - throw new Error('missing opening "{"'); - } - node.type = 'text'; - node.multiplier = 0; - node.escaped = true; - return node; - } - - var prev = this.prev(); - var last = utils.last(prev.nodes); - if (last.text) { - var lastNode = utils.last(last.nodes); - if (lastNode.val === ')' && /[!@*?+]\(/.test(last.text)) { - var open = last.nodes[0]; - var text = last.nodes[1]; - if (open.type === 'brace.open' && text && text.type === 'text') { - text.optimize = false; - } - } - } - - if (brace.nodes.length > 2) { - var first = brace.nodes[1]; - if (first.type === 'text' && first.val === ',') { - brace.nodes.splice(1, 1); - brace.nodes.push(first); - } - } - - brace.push(node); - }) - - /** - * Capture boundary characters - */ - - .set('boundary', function() { - var pos = this.position(); - var m = this.match(/^[$^](?!\{)/); - if (!m) return; - return pos(new Node({ - type: 'text', - val: m[0] - })); - }) - - /** - * One or zero, non-comma characters wrapped in braces - */ - - .set('nobrace', function() { - var isInside = this.isInside('brace'); - var pos = this.position(); - var m = this.match(/^\{[^,]?\}/); - if (!m) return; - - var prev = this.prev(); - var val = m[0]; - - if (isInside && prev.type === 'brace') { - prev.text = prev.text || ''; - prev.text += val; - } - - return pos(new Node({ - type: 'text', - multiplier: 0, - val: val - })); - }) - - /** - * Text - */ - - .set('text', function() { - var isInside = this.isInside('brace'); - var pos = this.position(); - var m = this.match(/^((?!\\)[^${}\[\]])+/); - if (!m) return; - - var prev = this.prev(); - var val = m[0]; - - if (isInside && prev.type === 'brace') { - prev.text = prev.text || ''; - prev.text += val; - } - - var node = pos(new Node({ - type: 'text', - multiplier: 1, - val: val - })); - - return concatNodes.call(this, pos, node, prev, options); - }); -}; - -/** - * Returns true if the character is an extglob character. - */ - -function isExtglobChar(ch) { - return ch === '!' || ch === '@' || ch === '*' || ch === '?' || ch === '+'; -} - -/** - * Combine text nodes, and calculate empty sets (`{,,}`) - * @param {Function} `pos` Function to calculate node position - * @param {Object} `node` AST node - * @return {Object} - */ - -function concatNodes(pos, node, parent, options) { - node.orig = node.val; - var prev = this.prev(); - var last = utils.last(prev.nodes); - var isEscaped = false; - - if (node.val.length > 1) { - var a = node.val.charAt(0); - var b = node.val.slice(-1); - - isEscaped = (a === '"' && b === '"') - || (a === "'" && b === "'") - || (a === '`' && b === '`'); - } - - if (isEscaped && options.unescape !== false) { - node.val = node.val.slice(1, node.val.length - 1); - node.escaped = true; - } - - if (node.match) { - var match = node.match[1]; - if (!match || match.indexOf('}') === -1) { - match = node.match[0]; - } - - // replace each set with a single "," - var val = match.replace(/\{/g, ',').replace(/\}/g, ''); - node.multiplier *= val.length; - node.val = ''; - } - - var simpleText = last.type === 'text' - && last.multiplier === 1 - && node.multiplier === 1 - && node.val; - - if (simpleText) { - last.val += node.val; - return; - } - - prev.push(node); -} - - -/***/ }), -/* 139 */ -/***/ (function(module, exports, __webpack_require__) { - - -/** - * Expose `Emitter`. - */ - -if (true) { - module.exports = Emitter; -} - -/** - * Initialize a new `Emitter`. - * - * @api public - */ - -function Emitter(obj) { - if (obj) return mixin(obj); -}; - -/** - * Mixin the emitter properties. - * - * @param {Object} obj - * @return {Object} - * @api private - */ - -function mixin(obj) { - for (var key in Emitter.prototype) { - obj[key] = Emitter.prototype[key]; - } - return obj; -} - -/** - * Listen on the given `event` with `fn`. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.on = -Emitter.prototype.addEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - (this._callbacks['$' + event] = this._callbacks['$' + event] || []) - .push(fn); - return this; -}; - -/** - * Adds an `event` listener that will be invoked a single - * time then automatically removed. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.once = function(event, fn){ - function on() { - this.off(event, on); - fn.apply(this, arguments); - } - - on.fn = fn; - this.on(event, on); - return this; -}; - -/** - * Remove the given callback for `event` or all - * registered callbacks. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.off = -Emitter.prototype.removeListener = -Emitter.prototype.removeAllListeners = -Emitter.prototype.removeEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - - // all - if (0 == arguments.length) { - this._callbacks = {}; - return this; - } - - // specific event - var callbacks = this._callbacks['$' + event]; - if (!callbacks) return this; - - // remove all handlers - if (1 == arguments.length) { - delete this._callbacks['$' + event]; - return this; - } - - // remove specific handler - var cb; - for (var i = 0; i < callbacks.length; i++) { - cb = callbacks[i]; - if (cb === fn || cb.fn === fn) { - callbacks.splice(i, 1); - break; - } - } - return this; -}; - -/** - * Emit `event` with the given args. - * - * @param {String} event - * @param {Mixed} ... - * @return {Emitter} - */ - -Emitter.prototype.emit = function(event){ - this._callbacks = this._callbacks || {}; - var args = [].slice.call(arguments, 1) - , callbacks = this._callbacks['$' + event]; - - if (callbacks) { - callbacks = callbacks.slice(0); - for (var i = 0, len = callbacks.length; i < len; ++i) { - callbacks[i].apply(this, args); - } - } - - return this; -}; - -/** - * Return array of callbacks for `event`. - * - * @param {String} event - * @return {Array} - * @api public - */ - -Emitter.prototype.listeners = function(event){ - this._callbacks = this._callbacks || {}; - return this._callbacks['$' + event] || []; -}; - -/** - * Check if this emitter has `event` handlers. - * - * @param {String} event - * @return {Boolean} - * @api public - */ - -Emitter.prototype.hasListeners = function(event){ - return !! this.listeners(event).length; -}; - - -/***/ }), -/* 140 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * object-visit - * - * Copyright (c) 2015, 2017, Jon Schlinkert. - * Released under the MIT License. - */ - - - -var isObject = __webpack_require__(30); - -module.exports = function visit(thisArg, method, target, val) { - if (!isObject(thisArg) && typeof thisArg !== 'function') { - throw new Error('object-visit expects `thisArg` to be an object.'); - } - - if (typeof method !== 'string') { - throw new Error('object-visit expects `method` name to be a string'); - } - - if (typeof thisArg[method] !== 'function') { - return thisArg; - } - - var args = [].slice.call(arguments, 3); - target = target || {}; - - for (var key in target) { - var arr = [key, target[key]].concat(args); - thisArg[method].apply(thisArg, arr); - } - return thisArg; -}; - - -/***/ }), -/* 141 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * to-object-path - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - - - -var typeOf = __webpack_require__(49); - -module.exports = function toPath(args) { - if (typeOf(args) !== 'arguments') { - args = arguments; - } - return filter(args).join('.'); -}; - -function filter(arr) { - var len = arr.length; - var idx = -1; - var res = []; - - while (++idx < len) { - var ele = arr[idx]; - if (typeOf(ele) === 'arguments' || Array.isArray(ele)) { - res.push.apply(res, filter(ele)); - } else if (typeof ele === 'string') { - res.push(ele); - } - } - return res; -} - - -/***/ }), -/* 142 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = function union(init) { - if (!Array.isArray(init)) { - throw new TypeError('arr-union expects the first argument to be an array.'); - } - - var len = arguments.length; - var i = 0; - - while (++i < len) { - var arg = arguments[i]; - if (!arg) continue; - - if (!Array.isArray(arg)) { - arg = [arg]; - } - - for (var j = 0; j < arg.length; j++) { - var ele = arg[j]; - - if (init.indexOf(ele) >= 0) { - continue; - } - init.push(ele); - } - } - return init; -}; - - -/***/ }), -/* 143 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * use - * - * Copyright (c) 2015, 2017, Jon Schlinkert. - * Released under the MIT License. - */ - - - -var utils = __webpack_require__(380); - -module.exports = function base(app, opts) { - if (!utils.isObject(app) && typeof app !== 'function') { - throw new TypeError('use: expect `app` be an object or function'); - } - - if (!utils.isObject(opts)) { - opts = {}; - } - - var prop = utils.isString(opts.prop) ? opts.prop : 'fns'; - if (!Array.isArray(app[prop])) { - utils.define(app, prop, []); - } - - /** - * Define a plugin function to be passed to use. The only - * parameter exposed to the plugin is `app`, the object or function. - * passed to `use(app)`. `app` is also exposed as `this` in plugins. - * - * Additionally, **if a plugin returns a function, the function will - * be pushed onto the `fns` array**, allowing the plugin to be - * called at a later point by the `run` method. - * - * ```js - * var use = require('use'); - * - * // define a plugin - * function foo(app) { - * // do stuff - * } - * - * var app = function(){}; - * use(app); - * - * // register plugins - * app.use(foo); - * app.use(bar); - * app.use(baz); - * ``` - * @name .use - * @param {Function} `fn` plugin function to call - * @api public - */ - - utils.define(app, 'use', use); - - /** - * Run all plugins on `fns`. Any plugin that returns a function - * when called by `use` is pushed onto the `fns` array. - * - * ```js - * var config = {}; - * app.run(config); - * ``` - * @name .run - * @param {Object} `value` Object to be modified by plugins. - * @return {Object} Returns the object passed to `run` - * @api public - */ - - utils.define(app, 'run', function(val) { - if (!utils.isObject(val)) return; - decorate(val); - - var self = this || app; - var fns = self[prop]; - var len = fns.length; - var idx = -1; - - while (++idx < len) { - val.use(fns[idx]); - } - return val; - }); - - /** - * Call plugin `fn`. If a function is returned push it into the - * `fns` array to be called by the `run` method. - */ - - function use(fn, options) { - if (typeof fn !== 'function') { - throw new TypeError('.use expects `fn` be a function'); - } - - var self = this || app; - if (typeof opts.fn === 'function') { - opts.fn.call(self, self, options); - } - - var plugin = fn.call(self, self); - if (typeof plugin === 'function') { - var fns = self[prop]; - fns.push(plugin); - } - return self; - } - - /** - * Ensure the `.use` method exists on `val` - */ - - function decorate(val) { - if (!val.use || !val.run) { - base(val); - } - } - - return app; -}; - - -/***/ }), -/* 144 */ -/***/ (function(module, exports, __webpack_require__) { - - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = __webpack_require__(389); - -/** - * The currently active debug mode names, and names to skip. - */ - -exports.names = []; -exports.skips = []; - -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - -exports.formatters = {}; - -/** - * Previous log timestamp. - */ - -var prevTime; - -/** - * Select a color. - * @param {String} namespace - * @return {Number} - * @api private - */ - -function selectColor(namespace) { - var hash = 0, i; - - for (i in namespace) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return exports.colors[Math.abs(hash) % exports.colors.length]; -} - -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - -function createDebug(namespace) { - - function debug() { - // disabled? - if (!debug.enabled) return; - - var self = debug; - - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - // turn the `arguments` into a proper Array - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i]; - } - - args[0] = exports.coerce(args[0]); - - if ('string' !== typeof args[0]) { - // anything else let's inspect with %O - args.unshift('%O'); - } - - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); - - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - // apply env-specific formatting (colors, etc.) - exports.formatArgs.call(self, args); - - var logFn = debug.log || exports.log || console.log.bind(console); - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.enabled = exports.enabled(namespace); - debug.useColors = exports.useColors(); - debug.color = selectColor(namespace); - - // env-specific initialization logic for debug instances - if ('function' === typeof exports.init) { - exports.init(debug); - } - - return debug; -} - -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - -function enable(namespaces) { - exports.save(namespaces); - - exports.names = []; - exports.skips = []; - - var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - var len = split.length; - - for (var i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } - } -} - -/** - * Disable debug output. - * - * @api public - */ - -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -function enabled(name) { - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; - } - } - return false; -} - -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} - - -/***/ }), -/* 145 */ -/***/ (function(module, exports, __webpack_require__) { - -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - -var base64VLQ = __webpack_require__(146); -var util = __webpack_require__(68); -var ArraySet = __webpack_require__(147).ArraySet; -var MappingList = __webpack_require__(395).MappingList; - -/** - * An instance of the SourceMapGenerator represents a source map which is - * being built incrementally. You may pass an object with the following - * properties: - * - * - file: The filename of the generated source. - * - sourceRoot: A root for all relative URLs in this source map. - */ -function SourceMapGenerator(aArgs) { - if (!aArgs) { - aArgs = {}; - } - this._file = util.getArg(aArgs, 'file', null); - this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); - this._skipValidation = util.getArg(aArgs, 'skipValidation', false); - this._sources = new ArraySet(); - this._names = new ArraySet(); - this._mappings = new MappingList(); - this._sourcesContents = null; -} - -SourceMapGenerator.prototype._version = 3; - -/** - * Creates a new SourceMapGenerator based on a SourceMapConsumer - * - * @param aSourceMapConsumer The SourceMap. - */ -SourceMapGenerator.fromSourceMap = - function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { - var sourceRoot = aSourceMapConsumer.sourceRoot; - var generator = new SourceMapGenerator({ - file: aSourceMapConsumer.file, - sourceRoot: sourceRoot - }); - aSourceMapConsumer.eachMapping(function (mapping) { - var newMapping = { - generated: { - line: mapping.generatedLine, - column: mapping.generatedColumn - } - }; - - if (mapping.source != null) { - newMapping.source = mapping.source; - if (sourceRoot != null) { - newMapping.source = util.relative(sourceRoot, newMapping.source); - } - - newMapping.original = { - line: mapping.originalLine, - column: mapping.originalColumn - }; - - if (mapping.name != null) { - newMapping.name = mapping.name; - } - } - - generator.addMapping(newMapping); - }); - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - generator.setSourceContent(sourceFile, content); - } - }); - return generator; - }; - -/** - * Add a single mapping from original source line and column to the generated - * source's line and column for this source map being created. The mapping - * object should have the following properties: - * - * - generated: An object with the generated line and column positions. - * - original: An object with the original line and column positions. - * - source: The original source file (relative to the sourceRoot). - * - name: An optional original token name for this mapping. - */ -SourceMapGenerator.prototype.addMapping = - function SourceMapGenerator_addMapping(aArgs) { - var generated = util.getArg(aArgs, 'generated'); - var original = util.getArg(aArgs, 'original', null); - var source = util.getArg(aArgs, 'source', null); - var name = util.getArg(aArgs, 'name', null); - - if (!this._skipValidation) { - this._validateMapping(generated, original, source, name); - } - - if (source != null) { - source = String(source); - if (!this._sources.has(source)) { - this._sources.add(source); - } - } - - if (name != null) { - name = String(name); - if (!this._names.has(name)) { - this._names.add(name); - } - } - - this._mappings.add({ - generatedLine: generated.line, - generatedColumn: generated.column, - originalLine: original != null && original.line, - originalColumn: original != null && original.column, - source: source, - name: name - }); - }; - -/** - * Set the source content for a source file. - */ -SourceMapGenerator.prototype.setSourceContent = - function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { - var source = aSourceFile; - if (this._sourceRoot != null) { - source = util.relative(this._sourceRoot, source); - } - - if (aSourceContent != null) { - // Add the source content to the _sourcesContents map. - // Create a new _sourcesContents map if the property is null. - if (!this._sourcesContents) { - this._sourcesContents = Object.create(null); - } - this._sourcesContents[util.toSetString(source)] = aSourceContent; - } else if (this._sourcesContents) { - // Remove the source file from the _sourcesContents map. - // If the _sourcesContents map is empty, set the property to null. - delete this._sourcesContents[util.toSetString(source)]; - if (Object.keys(this._sourcesContents).length === 0) { - this._sourcesContents = null; - } - } - }; - -/** - * Applies the mappings of a sub-source-map for a specific source file to the - * source map being generated. Each mapping to the supplied source file is - * rewritten using the supplied source map. Note: The resolution for the - * resulting mappings is the minimium of this map and the supplied map. - * - * @param aSourceMapConsumer The source map to be applied. - * @param aSourceFile Optional. The filename of the source file. - * If omitted, SourceMapConsumer's file property will be used. - * @param aSourceMapPath Optional. The dirname of the path to the source map - * to be applied. If relative, it is relative to the SourceMapConsumer. - * This parameter is needed when the two source maps aren't in the same - * directory, and the source map to be applied contains relative source - * paths. If so, those relative source paths need to be rewritten - * relative to the SourceMapGenerator. - */ -SourceMapGenerator.prototype.applySourceMap = - function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { - var sourceFile = aSourceFile; - // If aSourceFile is omitted, we will use the file property of the SourceMap - if (aSourceFile == null) { - if (aSourceMapConsumer.file == null) { - throw new Error( - 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + - 'or the source map\'s "file" property. Both were omitted.' - ); - } - sourceFile = aSourceMapConsumer.file; - } - var sourceRoot = this._sourceRoot; - // Make "sourceFile" relative if an absolute Url is passed. - if (sourceRoot != null) { - sourceFile = util.relative(sourceRoot, sourceFile); - } - // Applying the SourceMap can add and remove items from the sources and - // the names array. - var newSources = new ArraySet(); - var newNames = new ArraySet(); - - // Find mappings for the "sourceFile" - this._mappings.unsortedForEach(function (mapping) { - if (mapping.source === sourceFile && mapping.originalLine != null) { - // Check if it can be mapped by the source map, then update the mapping. - var original = aSourceMapConsumer.originalPositionFor({ - line: mapping.originalLine, - column: mapping.originalColumn - }); - if (original.source != null) { - // Copy mapping - mapping.source = original.source; - if (aSourceMapPath != null) { - mapping.source = util.join(aSourceMapPath, mapping.source) - } - if (sourceRoot != null) { - mapping.source = util.relative(sourceRoot, mapping.source); - } - mapping.originalLine = original.line; - mapping.originalColumn = original.column; - if (original.name != null) { - mapping.name = original.name; - } - } - } - - var source = mapping.source; - if (source != null && !newSources.has(source)) { - newSources.add(source); - } - - var name = mapping.name; - if (name != null && !newNames.has(name)) { - newNames.add(name); - } - - }, this); - this._sources = newSources; - this._names = newNames; - - // Copy sourcesContents of applied map. - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - if (aSourceMapPath != null) { - sourceFile = util.join(aSourceMapPath, sourceFile); - } - if (sourceRoot != null) { - sourceFile = util.relative(sourceRoot, sourceFile); - } - this.setSourceContent(sourceFile, content); - } - }, this); - }; - -/** - * A mapping can have one of the three levels of data: - * - * 1. Just the generated position. - * 2. The Generated position, original position, and original source. - * 3. Generated and original position, original source, as well as a name - * token. - * - * To maintain consistency, we validate that any new mapping being added falls - * in to one of these categories. - */ -SourceMapGenerator.prototype._validateMapping = - function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, - aName) { - // When aOriginal is truthy but has empty values for .line and .column, - // it is most likely a programmer error. In this case we throw a very - // specific error message to try to guide them the right way. - // For example: https://github.com/Polymer/polymer-bundler/pull/519 - if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { - throw new Error( - 'original.line and original.column are not numbers -- you probably meant to omit ' + - 'the original mapping entirely and only map the generated position. If so, pass ' + - 'null for the original mapping instead of an object with empty or null values.' - ); - } - - if (aGenerated && 'line' in aGenerated && 'column' in aGenerated - && aGenerated.line > 0 && aGenerated.column >= 0 - && !aOriginal && !aSource && !aName) { - // Case 1. - return; - } - else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated - && aOriginal && 'line' in aOriginal && 'column' in aOriginal - && aGenerated.line > 0 && aGenerated.column >= 0 - && aOriginal.line > 0 && aOriginal.column >= 0 - && aSource) { - // Cases 2 and 3. - return; - } - else { - throw new Error('Invalid mapping: ' + JSON.stringify({ - generated: aGenerated, - source: aSource, - original: aOriginal, - name: aName - })); - } - }; - -/** - * Serialize the accumulated mappings in to the stream of base 64 VLQs - * specified by the source map format. - */ -SourceMapGenerator.prototype._serializeMappings = - function SourceMapGenerator_serializeMappings() { - var previousGeneratedColumn = 0; - var previousGeneratedLine = 1; - var previousOriginalColumn = 0; - var previousOriginalLine = 0; - var previousName = 0; - var previousSource = 0; - var result = ''; - var next; - var mapping; - var nameIdx; - var sourceIdx; - - var mappings = this._mappings.toArray(); - for (var i = 0, len = mappings.length; i < len; i++) { - mapping = mappings[i]; - next = '' - - if (mapping.generatedLine !== previousGeneratedLine) { - previousGeneratedColumn = 0; - while (mapping.generatedLine !== previousGeneratedLine) { - next += ';'; - previousGeneratedLine++; - } - } - else { - if (i > 0) { - if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { - continue; - } - next += ','; - } - } - - next += base64VLQ.encode(mapping.generatedColumn - - previousGeneratedColumn); - previousGeneratedColumn = mapping.generatedColumn; - - if (mapping.source != null) { - sourceIdx = this._sources.indexOf(mapping.source); - next += base64VLQ.encode(sourceIdx - previousSource); - previousSource = sourceIdx; - - // lines are stored 0-based in SourceMap spec version 3 - next += base64VLQ.encode(mapping.originalLine - 1 - - previousOriginalLine); - previousOriginalLine = mapping.originalLine - 1; - - next += base64VLQ.encode(mapping.originalColumn - - previousOriginalColumn); - previousOriginalColumn = mapping.originalColumn; - - if (mapping.name != null) { - nameIdx = this._names.indexOf(mapping.name); - next += base64VLQ.encode(nameIdx - previousName); - previousName = nameIdx; - } - } - - result += next; - } - - return result; - }; - -SourceMapGenerator.prototype._generateSourcesContent = - function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { - return aSources.map(function (source) { - if (!this._sourcesContents) { - return null; - } - if (aSourceRoot != null) { - source = util.relative(aSourceRoot, source); - } - var key = util.toSetString(source); - return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) - ? this._sourcesContents[key] - : null; - }, this); - }; - -/** - * Externalize the source map. - */ -SourceMapGenerator.prototype.toJSON = - function SourceMapGenerator_toJSON() { - var map = { - version: this._version, - sources: this._sources.toArray(), - names: this._names.toArray(), - mappings: this._serializeMappings() - }; - if (this._file != null) { - map.file = this._file; - } - if (this._sourceRoot != null) { - map.sourceRoot = this._sourceRoot; - } - if (this._sourcesContents) { - map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); - } - - return map; - }; - -/** - * Render the source map being generated to a string. - */ -SourceMapGenerator.prototype.toString = - function SourceMapGenerator_toString() { - return JSON.stringify(this.toJSON()); - }; - -exports.SourceMapGenerator = SourceMapGenerator; - - -/***/ }), -/* 146 */ -/***/ (function(module, exports, __webpack_require__) { - -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - * - * Based on the Base 64 VLQ implementation in Closure Compiler: - * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java - * - * Copyright 2011 The Closure Compiler Authors. All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -var base64 = __webpack_require__(394); - -// 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, -// the next four bits are the actual value, and the 6th bit is the -// continuation bit. The continuation bit tells us whether there are more -// digits in this value following this digit. -// -// Continuation -// | Sign -// | | -// V V -// 101011 - -var VLQ_BASE_SHIFT = 5; - -// binary: 100000 -var VLQ_BASE = 1 << VLQ_BASE_SHIFT; - -// binary: 011111 -var VLQ_BASE_MASK = VLQ_BASE - 1; - -// binary: 100000 -var VLQ_CONTINUATION_BIT = VLQ_BASE; - -/** - * Converts from a two-complement value to a value where the sign bit is - * placed in the least significant bit. For example, as decimals: - * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) - * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) - */ -function toVLQSigned(aValue) { - return aValue < 0 - ? ((-aValue) << 1) + 1 - : (aValue << 1) + 0; -} - -/** - * Converts to a two-complement value from a value where the sign bit is - * placed in the least significant bit. For example, as decimals: - * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 - * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 - */ -function fromVLQSigned(aValue) { - var isNegative = (aValue & 1) === 1; - var shifted = aValue >> 1; - return isNegative - ? -shifted - : shifted; -} - -/** - * Returns the base 64 VLQ encoded value. - */ -exports.encode = function base64VLQ_encode(aValue) { - var encoded = ""; - var digit; - - var vlq = toVLQSigned(aValue); - - do { - digit = vlq & VLQ_BASE_MASK; - vlq >>>= VLQ_BASE_SHIFT; - if (vlq > 0) { - // There are still more digits in this value, so we must make sure the - // continuation bit is marked. - digit |= VLQ_CONTINUATION_BIT; - } - encoded += base64.encode(digit); - } while (vlq > 0); - - return encoded; -}; - -/** - * Decodes the next base 64 VLQ value from the given string and returns the - * value and the rest of the string via the out parameter. - */ -exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { - var strLen = aStr.length; - var result = 0; - var shift = 0; - var continuation, digit; - - do { - if (aIndex >= strLen) { - throw new Error("Expected more digits in base 64 VLQ value."); - } - - digit = base64.decode(aStr.charCodeAt(aIndex++)); - if (digit === -1) { - throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); - } - - continuation = !!(digit & VLQ_CONTINUATION_BIT); - digit &= VLQ_BASE_MASK; - result = result + (digit << shift); - shift += VLQ_BASE_SHIFT; - } while (continuation); - - aOutParam.value = fromVLQSigned(result); - aOutParam.rest = aIndex; -}; - - -/***/ }), -/* 147 */ -/***/ (function(module, exports, __webpack_require__) { - -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - -var util = __webpack_require__(68); -var has = Object.prototype.hasOwnProperty; -var hasNativeMap = typeof Map !== "undefined"; - -/** - * A data structure which is a combination of an array and a set. Adding a new - * member is O(1), testing for membership is O(1), and finding the index of an - * element is O(1). Removing elements from the set is not supported. Only - * strings are supported for membership. - */ -function ArraySet() { - this._array = []; - this._set = hasNativeMap ? new Map() : Object.create(null); -} - -/** - * Static method for creating ArraySet instances from an existing array. - */ -ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { - var set = new ArraySet(); - for (var i = 0, len = aArray.length; i < len; i++) { - set.add(aArray[i], aAllowDuplicates); - } - return set; -}; - -/** - * Return how many unique items are in this ArraySet. If duplicates have been - * added, than those do not count towards the size. - * - * @returns Number - */ -ArraySet.prototype.size = function ArraySet_size() { - return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; -}; - -/** - * Add the given string to this set. - * - * @param String aStr - */ -ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { - var sStr = hasNativeMap ? aStr : util.toSetString(aStr); - var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); - var idx = this._array.length; - if (!isDuplicate || aAllowDuplicates) { - this._array.push(aStr); - } - if (!isDuplicate) { - if (hasNativeMap) { - this._set.set(aStr, idx); - } else { - this._set[sStr] = idx; - } - } -}; - -/** - * Is the given string a member of this set? - * - * @param String aStr - */ -ArraySet.prototype.has = function ArraySet_has(aStr) { - if (hasNativeMap) { - return this._set.has(aStr); - } else { - var sStr = util.toSetString(aStr); - return has.call(this._set, sStr); - } -}; - -/** - * What is the index of the given string in the array? - * - * @param String aStr - */ -ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { - if (hasNativeMap) { - var idx = this._set.get(aStr); - if (idx >= 0) { - return idx; - } - } else { - var sStr = util.toSetString(aStr); - if (has.call(this._set, sStr)) { - return this._set[sStr]; - } - } - - throw new Error('"' + aStr + '" is not in the set.'); -}; - -/** - * What is the element at the given index? - * - * @param Number aIdx - */ -ArraySet.prototype.at = function ArraySet_at(aIdx) { - if (aIdx >= 0 && aIdx < this._array.length) { - return this._array[aIdx]; - } - throw new Error('No element indexed by ' + aIdx); -}; - -/** - * Returns the array representation of this set (which has the proper indices - * indicated by indexOf). Note that this is a copy of the internal array used - * for storing the members so that no one can mess with internal state. - */ -ArraySet.prototype.toArray = function ArraySet_toArray() { - return this._array.slice(); -}; - -exports.ArraySet = ArraySet; - - -/***/ }), -/* 148 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * map-cache - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - - - -var hasOwn = Object.prototype.hasOwnProperty; - -/** - * Expose `MapCache` - */ - -module.exports = MapCache; - -/** - * Creates a cache object to store key/value pairs. - * - * ```js - * var cache = new MapCache(); - * ``` - * - * @api public - */ - -function MapCache(data) { - this.__data__ = data || {}; -} - -/** - * Adds `value` to `key` on the cache. - * - * ```js - * cache.set('foo', 'bar'); - * ``` - * - * @param {String} `key` The key of the value to cache. - * @param {*} `value` The value to cache. - * @returns {Object} Returns the `Cache` object for chaining. - * @api public - */ - -MapCache.prototype.set = function mapSet(key, value) { - if (key !== '__proto__') { - this.__data__[key] = value; - } - return this; -}; - -/** - * Gets the cached value for `key`. - * - * ```js - * cache.get('foo'); - * //=> 'bar' - * ``` - * - * @param {String} `key` The key of the value to get. - * @returns {*} Returns the cached value. - * @api public - */ - -MapCache.prototype.get = function mapGet(key) { - return key === '__proto__' ? undefined : this.__data__[key]; -}; - -/** - * Checks if a cached value for `key` exists. - * - * ```js - * cache.has('foo'); - * //=> true - * ``` - * - * @param {String} `key` The key of the entry to check. - * @returns {Boolean} Returns `true` if an entry for `key` exists, else `false`. - * @api public - */ - -MapCache.prototype.has = function mapHas(key) { - return key !== '__proto__' && hasOwn.call(this.__data__, key); -}; - -/** - * Removes `key` and its value from the cache. - * - * ```js - * cache.del('foo'); - * ``` - * @title .del - * @param {String} `key` The key of the value to remove. - * @returns {Boolean} Returns `true` if the entry was removed successfully, else `false`. - * @api public - */ - -MapCache.prototype.del = function mapDelete(key) { - return this.has(key) && delete this.__data__[key]; -}; - - -/***/ }), -/* 149 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/** - * Module dependencies - */ - -var util = __webpack_require__(14); -var toRegex = __webpack_require__(43); -var extend = __webpack_require__(20); - -/** - * Local dependencies - */ - -var compilers = __webpack_require__(411); -var parsers = __webpack_require__(412); -var cache = __webpack_require__(414); -var utils = __webpack_require__(415); -var MAX_LENGTH = 1024 * 64; - -/** - * The main function takes a list of strings and one or more - * glob patterns to use for matching. - * - * ```js - * var nm = require('nanomatch'); - * nm(list, patterns[, options]); - * - * console.log(nm(['a.js', 'a.txt'], ['*.js'])); - * //=> [ 'a.js' ] - * ``` - * @param {Array} `list` A list of strings to match - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Array} Returns an array of matches - * @summary false - * @api public - */ - -function nanomatch(list, patterns, options) { - patterns = utils.arrayify(patterns); - list = utils.arrayify(list); - - var len = patterns.length; - if (list.length === 0 || len === 0) { - return []; - } - - if (len === 1) { - return nanomatch.match(list, patterns[0], options); - } - - var negated = false; - var omit = []; - var keep = []; - var idx = -1; - - while (++idx < len) { - var pattern = patterns[idx]; - - if (typeof pattern === 'string' && pattern.charCodeAt(0) === 33 /* ! */) { - omit.push.apply(omit, nanomatch.match(list, pattern.slice(1), options)); - negated = true; - } else { - keep.push.apply(keep, nanomatch.match(list, pattern, options)); - } - } - - // minimatch.match parity - if (negated && keep.length === 0) { - if (options && options.unixify === false) { - keep = list.slice(); - } else { - var unixify = utils.unixify(options); - for (var i = 0; i < list.length; i++) { - keep.push(unixify(list[i])); - } - } - } - - var matches = utils.diff(keep, omit); - if (!options || options.nodupes !== false) { - return utils.unique(matches); - } - - return matches; -} - -/** - * Similar to the main function, but `pattern` must be a string. - * - * ```js - * var nm = require('nanomatch'); - * nm.match(list, pattern[, options]); - * - * console.log(nm.match(['a.a', 'a.aa', 'a.b', 'a.c'], '*.a')); - * //=> ['a.a', 'a.aa'] - * ``` - * @param {Array} `list` Array of strings to match - * @param {String} `pattern` Glob pattern to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Array} Returns an array of matches - * @api public - */ - -nanomatch.match = function(list, pattern, options) { - if (Array.isArray(pattern)) { - throw new TypeError('expected pattern to be a string'); - } - - var unixify = utils.unixify(options); - var isMatch = memoize('match', pattern, options, nanomatch.matcher); - var matches = []; - - list = utils.arrayify(list); - var len = list.length; - var idx = -1; - - while (++idx < len) { - var ele = list[idx]; - if (ele === pattern || isMatch(ele)) { - matches.push(utils.value(ele, unixify, options)); - } - } - - // if no options were passed, uniquify results and return - if (typeof options === 'undefined') { - return utils.unique(matches); - } - - if (matches.length === 0) { - if (options.failglob === true) { - throw new Error('no matches found for "' + pattern + '"'); - } - if (options.nonull === true || options.nullglob === true) { - return [options.unescape ? utils.unescape(pattern) : pattern]; - } - } - - // if `opts.ignore` was defined, diff ignored list - if (options.ignore) { - matches = nanomatch.not(matches, options.ignore, options); - } - - return options.nodupes !== false ? utils.unique(matches) : matches; -}; - -/** - * Returns true if the specified `string` matches the given glob `pattern`. - * - * ```js - * var nm = require('nanomatch'); - * nm.isMatch(string, pattern[, options]); - * - * console.log(nm.isMatch('a.a', '*.a')); - * //=> true - * console.log(nm.isMatch('a.b', '*.a')); - * //=> false - * ``` - * @param {String} `string` String to match - * @param {String} `pattern` Glob pattern to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if the string matches the glob pattern. - * @api public - */ - -nanomatch.isMatch = function(str, pattern, options) { - if (typeof str !== 'string') { - throw new TypeError('expected a string: "' + util.inspect(str) + '"'); - } - - if (utils.isEmptyString(str) || utils.isEmptyString(pattern)) { - return false; - } - - var equals = utils.equalsPattern(options); - if (equals(str)) { - return true; - } - - var isMatch = memoize('isMatch', pattern, options, nanomatch.matcher); - return isMatch(str); -}; - -/** - * Returns true if some of the elements in the given `list` match any of the - * given glob `patterns`. - * - * ```js - * var nm = require('nanomatch'); - * nm.some(list, patterns[, options]); - * - * console.log(nm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); - * // true - * console.log(nm.some(['foo.js'], ['*.js', '!foo.js'])); - * // false - * ``` - * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ - -nanomatch.some = function(list, patterns, options) { - if (typeof list === 'string') { - list = [list]; - } - - for (var i = 0; i < list.length; i++) { - if (nanomatch(list[i], patterns, options).length === 1) { - return true; - } - } - - return false; -}; - -/** - * Returns true if every element in the given `list` matches - * at least one of the given glob `patterns`. - * - * ```js - * var nm = require('nanomatch'); - * nm.every(list, patterns[, options]); - * - * console.log(nm.every('foo.js', ['foo.js'])); - * // true - * console.log(nm.every(['foo.js', 'bar.js'], ['*.js'])); - * // true - * console.log(nm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); - * // false - * console.log(nm.every(['foo.js'], ['*.js', '!foo.js'])); - * // false - * ``` - * @param {String|Array} `list` The string or array of strings to test. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ - -nanomatch.every = function(list, patterns, options) { - if (typeof list === 'string') { - list = [list]; - } - - for (var i = 0; i < list.length; i++) { - if (nanomatch(list[i], patterns, options).length !== 1) { - return false; - } - } - - return true; -}; - -/** - * Returns true if **any** of the given glob `patterns` - * match the specified `string`. - * - * ```js - * var nm = require('nanomatch'); - * nm.any(string, patterns[, options]); - * - * console.log(nm.any('a.a', ['b.*', '*.a'])); - * //=> true - * console.log(nm.any('a.a', 'b.*')); - * //=> false - * ``` - * @param {String|Array} `str` The string to test. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ - -nanomatch.any = function(str, patterns, options) { - if (typeof str !== 'string') { - throw new TypeError('expected a string: "' + util.inspect(str) + '"'); - } - - if (utils.isEmptyString(str) || utils.isEmptyString(patterns)) { - return false; - } - - if (typeof patterns === 'string') { - patterns = [patterns]; - } - - for (var i = 0; i < patterns.length; i++) { - if (nanomatch.isMatch(str, patterns[i], options)) { - return true; - } - } - return false; -}; - -/** - * Returns true if **all** of the given `patterns` - * match the specified string. - * - * ```js - * var nm = require('nanomatch'); - * nm.all(string, patterns[, options]); - * - * console.log(nm.all('foo.js', ['foo.js'])); - * // true - * - * console.log(nm.all('foo.js', ['*.js', '!foo.js'])); - * // false - * - * console.log(nm.all('foo.js', ['*.js', 'foo.js'])); - * // true - * - * console.log(nm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js'])); - * // true - * ``` - * @param {String|Array} `str` The string to test. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ - -nanomatch.all = function(str, patterns, options) { - if (typeof str !== 'string') { - throw new TypeError('expected a string: "' + util.inspect(str) + '"'); - } - - if (typeof patterns === 'string') { - patterns = [patterns]; - } - - for (var i = 0; i < patterns.length; i++) { - if (!nanomatch.isMatch(str, patterns[i], options)) { - return false; - } - } - return true; -}; - -/** - * Returns a list of strings that _**do not match any**_ of the given `patterns`. - * - * ```js - * var nm = require('nanomatch'); - * nm.not(list, patterns[, options]); - * - * console.log(nm.not(['a.a', 'b.b', 'c.c'], '*.a')); - * //=> ['b.b', 'c.c'] - * ``` - * @param {Array} `list` Array of strings to match. - * @param {String|Array} `patterns` One or more glob pattern to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Array} Returns an array of strings that **do not match** the given patterns. - * @api public - */ - -nanomatch.not = function(list, patterns, options) { - var opts = extend({}, options); - var ignore = opts.ignore; - delete opts.ignore; - - list = utils.arrayify(list); - - var matches = utils.diff(list, nanomatch(list, patterns, opts)); - if (ignore) { - matches = utils.diff(matches, nanomatch(list, ignore)); - } - - return opts.nodupes !== false ? utils.unique(matches) : matches; -}; - -/** - * Returns true if the given `string` contains the given pattern. Similar - * to [.isMatch](#isMatch) but the pattern can match any part of the string. - * - * ```js - * var nm = require('nanomatch'); - * nm.contains(string, pattern[, options]); - * - * console.log(nm.contains('aa/bb/cc', '*b')); - * //=> true - * console.log(nm.contains('aa/bb/cc', '*d')); - * //=> false - * ``` - * @param {String} `str` The string to match. - * @param {String|Array} `patterns` Glob pattern to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if the patter matches any part of `str`. - * @api public - */ - -nanomatch.contains = function(str, patterns, options) { - if (typeof str !== 'string') { - throw new TypeError('expected a string: "' + util.inspect(str) + '"'); - } - - if (typeof patterns === 'string') { - if (utils.isEmptyString(str) || utils.isEmptyString(patterns)) { - return false; - } - - var equals = utils.equalsPattern(patterns, options); - if (equals(str)) { - return true; - } - var contains = utils.containsPattern(patterns, options); - if (contains(str)) { - return true; - } - } - - var opts = extend({}, options, {contains: true}); - return nanomatch.any(str, patterns, opts); -}; - -/** - * Returns true if the given pattern and options should enable - * the `matchBase` option. - * @return {Boolean} - * @api private - */ - -nanomatch.matchBase = function(pattern, options) { - if (pattern && pattern.indexOf('/') !== -1 || !options) return false; - return options.basename === true || options.matchBase === true; -}; - -/** - * Filter the keys of the given object with the given `glob` pattern - * and `options`. Does not attempt to match nested keys. If you need this feature, - * use [glob-object][] instead. - * - * ```js - * var nm = require('nanomatch'); - * nm.matchKeys(object, patterns[, options]); - * - * var obj = { aa: 'a', ab: 'b', ac: 'c' }; - * console.log(nm.matchKeys(obj, '*b')); - * //=> { ab: 'b' } - * ``` - * @param {Object} `object` The object with keys to filter. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Object} Returns an object with only keys that match the given patterns. - * @api public - */ - -nanomatch.matchKeys = function(obj, patterns, options) { - if (!utils.isObject(obj)) { - throw new TypeError('expected the first argument to be an object'); - } - var keys = nanomatch(Object.keys(obj), patterns, options); - return utils.pick(obj, keys); -}; - -/** - * Returns a memoized matcher function from the given glob `pattern` and `options`. - * The returned function takes a string to match as its only argument and returns - * true if the string is a match. - * - * ```js - * var nm = require('nanomatch'); - * nm.matcher(pattern[, options]); - * - * var isMatch = nm.matcher('*.!(*a)'); - * console.log(isMatch('a.a')); - * //=> false - * console.log(isMatch('a.b')); - * //=> true - * ``` - * @param {String} `pattern` Glob pattern - * @param {Object} `options` See available [options](#options) for changing how matches are performed. - * @return {Function} Returns a matcher function. - * @api public - */ - -nanomatch.matcher = function matcher(pattern, options) { - if (utils.isEmptyString(pattern)) { - return function() { - return false; - }; - } - - if (Array.isArray(pattern)) { - return compose(pattern, options, matcher); - } - - // if pattern is a regex - if (pattern instanceof RegExp) { - return test(pattern); - } - - // if pattern is invalid - if (!utils.isString(pattern)) { - throw new TypeError('expected pattern to be an array, string or regex'); - } - - // if pattern is a non-glob string - if (!utils.hasSpecialChars(pattern)) { - if (options && options.nocase === true) { - pattern = pattern.toLowerCase(); - } - return utils.matchPath(pattern, options); - } - - // if pattern is a glob string - var re = nanomatch.makeRe(pattern, options); - - // if `options.matchBase` or `options.basename` is defined - if (nanomatch.matchBase(pattern, options)) { - return utils.matchBasename(re, options); - } - - function test(regex) { - var equals = utils.equalsPattern(options); - var unixify = utils.unixify(options); - - return function(str) { - if (equals(str)) { - return true; - } - - if (regex.test(unixify(str))) { - return true; - } - return false; - }; - } - - var fn = test(re); - Object.defineProperty(fn, 'result', { - configurable: true, - enumerable: false, - value: re.result - }); - return fn; -}; - -/** - * Returns an array of matches captured by `pattern` in `string, or - * `null` if the pattern did not match. - * - * ```js - * var nm = require('nanomatch'); - * nm.capture(pattern, string[, options]); - * - * console.log(nm.capture('test/*.js', 'test/foo.js')); - * //=> ['foo'] - * console.log(nm.capture('test/*.js', 'foo/bar.css')); - * //=> null - * ``` - * @param {String} `pattern` Glob pattern to use for matching. - * @param {String} `string` String to match - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns an array of captures if the string matches the glob pattern, otherwise `null`. - * @api public - */ - -nanomatch.capture = function(pattern, str, options) { - var re = nanomatch.makeRe(pattern, extend({capture: true}, options)); - var unixify = utils.unixify(options); - - function match() { - return function(string) { - var match = re.exec(unixify(string)); - if (!match) { - return null; - } - - return match.slice(1); - }; - } - - var capture = memoize('capture', pattern, options, match); - return capture(str); -}; - -/** - * Create a regular expression from the given glob `pattern`. - * - * ```js - * var nm = require('nanomatch'); - * nm.makeRe(pattern[, options]); - * - * console.log(nm.makeRe('*.js')); - * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/ - * ``` - * @param {String} `pattern` A glob pattern to convert to regex. - * @param {Object} `options` See available [options](#options) for changing how matches are performed. - * @return {RegExp} Returns a regex created from the given pattern. - * @api public - */ - -nanomatch.makeRe = function(pattern, options) { - if (pattern instanceof RegExp) { - return pattern; - } - - if (typeof pattern !== 'string') { - throw new TypeError('expected pattern to be a string'); - } - - if (pattern.length > MAX_LENGTH) { - throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters'); - } - - function makeRe() { - var opts = utils.extend({wrap: false}, options); - var res = nanomatch.create(pattern, opts); - var regex = toRegex(res.output, opts); - Object.defineProperty(regex, 'result', { - configurable: true, - enumerable: false, - value: res - }); - return regex; - } - - return memoize('makeRe', pattern, options, makeRe); -}; - -/** - * Parses the given glob `pattern` and returns an object with the compiled `output` - * and optional source `map`. - * - * ```js - * var nm = require('nanomatch'); - * nm.create(pattern[, options]); - * - * console.log(nm.create('abc/*.js')); - * // { options: { source: 'string', sourcemap: true }, - * // state: {}, - * // compilers: - * // { ... }, - * // output: '(\\.[\\\\\\/])?abc\\/(?!\\.)(?=.)[^\\/]*?\\.js', - * // ast: - * // { type: 'root', - * // errors: [], - * // nodes: - * // [ ... ], - * // dot: false, - * // input: 'abc/*.js' }, - * // parsingErrors: [], - * // map: - * // { version: 3, - * // sources: [ 'string' ], - * // names: [], - * // mappings: 'AAAA,GAAG,EAAC,kBAAC,EAAC,EAAE', - * // sourcesContent: [ 'abc/*.js' ] }, - * // position: { line: 1, column: 28 }, - * // content: {}, - * // files: {}, - * // idx: 6 } - * ``` - * @param {String} `pattern` Glob pattern to parse and compile. - * @param {Object} `options` Any [options](#options) to change how parsing and compiling is performed. - * @return {Object} Returns an object with the parsed AST, compiled string and optional source map. - * @api public - */ - -nanomatch.create = function(pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('expected a string'); - } - function create() { - return nanomatch.compile(nanomatch.parse(pattern, options), options); - } - return memoize('create', pattern, options, create); -}; - -/** - * Parse the given `str` with the given `options`. - * - * ```js - * var nm = require('nanomatch'); - * nm.parse(pattern[, options]); - * - * var ast = nm.parse('a/{b,c}/d'); - * console.log(ast); - * // { type: 'root', - * // errors: [], - * // input: 'a/{b,c}/d', - * // nodes: - * // [ { type: 'bos', val: '' }, - * // { type: 'text', val: 'a/' }, - * // { type: 'brace', - * // nodes: - * // [ { type: 'brace.open', val: '{' }, - * // { type: 'text', val: 'b,c' }, - * // { type: 'brace.close', val: '}' } ] }, - * // { type: 'text', val: '/d' }, - * // { type: 'eos', val: '' } ] } - * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {Object} Returns an AST - * @api public - */ - -nanomatch.parse = function(pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('expected a string'); - } - - function parse() { - var snapdragon = utils.instantiate(null, options); - parsers(snapdragon, options); - - var ast = snapdragon.parse(pattern, options); - utils.define(ast, 'snapdragon', snapdragon); - ast.input = pattern; - return ast; - } - - return memoize('parse', pattern, options, parse); -}; - -/** - * Compile the given `ast` or string with the given `options`. - * - * ```js - * var nm = require('nanomatch'); - * nm.compile(ast[, options]); - * - * var ast = nm.parse('a/{b,c}/d'); - * console.log(nm.compile(ast)); - * // { options: { source: 'string' }, - * // state: {}, - * // compilers: - * // { eos: [Function], - * // noop: [Function], - * // bos: [Function], - * // brace: [Function], - * // 'brace.open': [Function], - * // text: [Function], - * // 'brace.close': [Function] }, - * // output: [ 'a/(b|c)/d' ], - * // ast: - * // { ... }, - * // parsingErrors: [] } - * ``` - * @param {Object|String} `ast` - * @param {Object} `options` - * @return {Object} Returns an object that has an `output` property with the compiled string. - * @api public - */ - -nanomatch.compile = function(ast, options) { - if (typeof ast === 'string') { - ast = nanomatch.parse(ast, options); - } - - function compile() { - var snapdragon = utils.instantiate(ast, options); - compilers(snapdragon, options); - return snapdragon.compile(ast, options); - } - - return memoize('compile', ast.input, options, compile); -}; - -/** - * Clear the regex cache. - * - * ```js - * nm.clearCache(); - * ``` - * @api public - */ - -nanomatch.clearCache = function() { - nanomatch.cache.__data__ = {}; -}; - -/** - * Compose a matcher function with the given patterns. - * This allows matcher functions to be compiled once and - * called multiple times. - */ - -function compose(patterns, options, matcher) { - var matchers; - - return memoize('compose', String(patterns), options, function() { - return function(file) { - // delay composition until it's invoked the first time, - // after that it won't be called again - if (!matchers) { - matchers = []; - for (var i = 0; i < patterns.length; i++) { - matchers.push(matcher(patterns[i], options)); - } - } - - var len = matchers.length; - while (len--) { - if (matchers[len](file) === true) { - return true; - } - } - return false; - }; - }); -} - -/** - * Memoize a generated regex or function. A unique key is generated - * from the `type` (usually method name), the `pattern`, and - * user-defined options. - */ - -function memoize(type, pattern, options, fn) { - var key = utils.createKey(type + '=' + pattern, options); - - if (options && options.cache === false) { - return fn(pattern, options); - } - - if (cache.has(type, key)) { - return cache.get(type, key); - } - - var val = fn(pattern, options); - cache.set(type, key, val); - return val; -} - -/** - * Expose compiler, parser and cache on `nanomatch` - */ - -nanomatch.compilers = compilers; -nanomatch.parsers = parsers; -nanomatch.cache = cache; - -/** - * Expose `nanomatch` - * @type {Function} - */ - -module.exports = nanomatch; - - -/***/ }), -/* 150 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * arr-diff - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - - - -module.exports = function diff(arr/*, arrays*/) { - var len = arguments.length; - var idx = 0; - while (++idx < len) { - arr = diffArray(arr, arguments[idx]); - } - return arr; -}; - -function diffArray(one, two) { - if (!Array.isArray(two)) { - return one.slice(); - } - - var tlen = two.length - var olen = one.length; - var idx = -1; - var arr = []; - - while (++idx < olen) { - var ele = one[idx]; - - var hasEle = false; - for (var i = 0; i < tlen; i++) { - var val = two[i]; - - if (ele === val) { - hasEle = true; - break; - } - } - - if (hasEle === false) { - arr.push(ele); - } - } - return arr; -} - - -/***/ }), -/* 151 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * object.pick - * - * Copyright (c) 2014-2015 Jon Schlinkert, contributors. - * Licensed under the MIT License - */ - - - -var isObject = __webpack_require__(30); - -module.exports = function pick(obj, keys) { - if (!isObject(obj) && typeof obj !== 'function') { - return {}; - } - - var res = {}; - if (typeof keys === 'string') { - if (keys in obj) { - res[keys] = obj[keys]; - } - return res; - } - - var len = keys.length; - var idx = -1; - - while (++idx < len) { - var key = keys[idx]; - if (key in obj) { - res[key] = obj[key]; - } - } - return res; -}; - - -/***/ }), -/* 152 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/** - * Module dependencies - */ - -var extend = __webpack_require__(20); -var unique = __webpack_require__(65); -var toRegex = __webpack_require__(43); - -/** - * Local dependencies - */ - -var compilers = __webpack_require__(153); -var parsers = __webpack_require__(155); -var Extglob = __webpack_require__(428); -var utils = __webpack_require__(156); -var MAX_LENGTH = 1024 * 64; - -/** - * Convert the given `extglob` pattern into a regex-compatible string. Returns - * an object with the compiled result and the parsed AST. - * - * ```js - * var extglob = require('extglob'); - * console.log(extglob('*.!(*a)')); - * //=> '(?!\\.)[^/]*?\\.(?!(?!\\.)[^/]*?a\\b).*?' - * ``` - * @param {String} `pattern` - * @param {Object} `options` - * @return {String} - * @api public - */ - -function extglob(pattern, options) { - return extglob.create(pattern, options).output; -} - -/** - * Takes an array of strings and an extglob pattern and returns a new - * array that contains only the strings that match the pattern. - * - * ```js - * var extglob = require('extglob'); - * console.log(extglob.match(['a.a', 'a.b', 'a.c'], '*.!(*a)')); - * //=> ['a.b', 'a.c'] - * ``` - * @param {Array} `list` Array of strings to match - * @param {String} `pattern` Extglob pattern - * @param {Object} `options` - * @return {Array} Returns an array of matches - * @api public - */ - -extglob.match = function(list, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('expected pattern to be a string'); - } - - list = utils.arrayify(list); - var isMatch = extglob.matcher(pattern, options); - var len = list.length; - var idx = -1; - var matches = []; - - while (++idx < len) { - var ele = list[idx]; - - if (isMatch(ele)) { - matches.push(ele); - } - } - - // if no options were passed, uniquify results and return - if (typeof options === 'undefined') { - return unique(matches); - } - - if (matches.length === 0) { - if (options.failglob === true) { - throw new Error('no matches found for "' + pattern + '"'); - } - if (options.nonull === true || options.nullglob === true) { - return [pattern.split('\\').join('')]; - } - } - - return options.nodupes !== false ? unique(matches) : matches; -}; - -/** - * Returns true if the specified `string` matches the given - * extglob `pattern`. - * - * ```js - * var extglob = require('extglob'); - * - * console.log(extglob.isMatch('a.a', '*.!(*a)')); - * //=> false - * console.log(extglob.isMatch('a.b', '*.!(*a)')); - * //=> true - * ``` - * @param {String} `string` String to match - * @param {String} `pattern` Extglob pattern - * @param {String} `options` - * @return {Boolean} - * @api public - */ - -extglob.isMatch = function(str, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('expected pattern to be a string'); - } - - if (typeof str !== 'string') { - throw new TypeError('expected a string'); - } - - if (pattern === str) { - return true; - } - - if (pattern === '' || pattern === ' ' || pattern === '.') { - return pattern === str; - } - - var isMatch = utils.memoize('isMatch', pattern, options, extglob.matcher); - return isMatch(str); -}; - -/** - * Returns true if the given `string` contains the given pattern. Similar to `.isMatch` but - * the pattern can match any part of the string. - * - * ```js - * var extglob = require('extglob'); - * console.log(extglob.contains('aa/bb/cc', '*b')); - * //=> true - * console.log(extglob.contains('aa/bb/cc', '*d')); - * //=> false - * ``` - * @param {String} `str` The string to match. - * @param {String} `pattern` Glob pattern to use for matching. - * @param {Object} `options` - * @return {Boolean} Returns true if the patter matches any part of `str`. - * @api public - */ - -extglob.contains = function(str, pattern, options) { - if (typeof str !== 'string') { - throw new TypeError('expected a string'); - } - - if (pattern === '' || pattern === ' ' || pattern === '.') { - return pattern === str; - } - - var opts = extend({}, options, {contains: true}); - opts.strictClose = false; - opts.strictOpen = false; - return extglob.isMatch(str, pattern, opts); -}; - -/** - * Takes an extglob pattern and returns a matcher function. The returned - * function takes the string to match as its only argument. - * - * ```js - * var extglob = require('extglob'); - * var isMatch = extglob.matcher('*.!(*a)'); - * - * console.log(isMatch('a.a')); - * //=> false - * console.log(isMatch('a.b')); - * //=> true - * ``` - * @param {String} `pattern` Extglob pattern - * @param {String} `options` - * @return {Boolean} - * @api public - */ - -extglob.matcher = function(pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('expected pattern to be a string'); - } - - function matcher() { - var re = extglob.makeRe(pattern, options); - return function(str) { - return re.test(str); - }; - } - - return utils.memoize('matcher', pattern, options, matcher); -}; - -/** - * Convert the given `extglob` pattern into a regex-compatible string. Returns - * an object with the compiled result and the parsed AST. - * - * ```js - * var extglob = require('extglob'); - * console.log(extglob.create('*.!(*a)').output); - * //=> '(?!\\.)[^/]*?\\.(?!(?!\\.)[^/]*?a\\b).*?' - * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {String} - * @api public - */ - -extglob.create = function(pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('expected pattern to be a string'); - } - - function create() { - var ext = new Extglob(options); - var ast = ext.parse(pattern, options); - return ext.compile(ast, options); - } - - return utils.memoize('create', pattern, options, create); -}; - -/** - * Returns an array of matches captured by `pattern` in `string`, or `null` - * if the pattern did not match. - * - * ```js - * var extglob = require('extglob'); - * extglob.capture(pattern, string[, options]); - * - * console.log(extglob.capture('test/*.js', 'test/foo.js')); - * //=> ['foo'] - * console.log(extglob.capture('test/*.js', 'foo/bar.css')); - * //=> null - * ``` - * @param {String} `pattern` Glob pattern to use for matching. - * @param {String} `string` String to match - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns an array of captures if the string matches the glob pattern, otherwise `null`. - * @api public - */ - -extglob.capture = function(pattern, str, options) { - var re = extglob.makeRe(pattern, extend({capture: true}, options)); - - function match() { - return function(string) { - var match = re.exec(string); - if (!match) { - return null; - } - - return match.slice(1); - }; - } - - var capture = utils.memoize('capture', pattern, options, match); - return capture(str); -}; - -/** - * Create a regular expression from the given `pattern` and `options`. - * - * ```js - * var extglob = require('extglob'); - * var re = extglob.makeRe('*.!(*a)'); - * console.log(re); - * //=> /^[^\/]*?\.(?![^\/]*?a)[^\/]*?$/ - * ``` - * @param {String} `pattern` The pattern to convert to regex. - * @param {Object} `options` - * @return {RegExp} - * @api public - */ - -extglob.makeRe = function(pattern, options) { - if (pattern instanceof RegExp) { - return pattern; - } - - if (typeof pattern !== 'string') { - throw new TypeError('expected pattern to be a string'); - } - - if (pattern.length > MAX_LENGTH) { - throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters'); - } - - function makeRe() { - var opts = extend({strictErrors: false}, options); - if (opts.strictErrors === true) opts.strict = true; - var res = extglob.create(pattern, opts); - return toRegex(res.output, opts); - } - - var regex = utils.memoize('makeRe', pattern, options, makeRe); - if (regex.source.length > MAX_LENGTH) { - throw new SyntaxError('potentially malicious regex detected'); - } - - return regex; -}; - -/** - * Cache - */ - -extglob.cache = utils.cache; -extglob.clearCache = function() { - extglob.cache.__data__ = {}; -}; - -/** - * Expose `Extglob` constructor, parsers and compilers - */ - -extglob.Extglob = Extglob; -extglob.compilers = compilers; -extglob.parsers = parsers; - -/** - * Expose `extglob` - * @type {Function} - */ - -module.exports = extglob; - - -/***/ }), -/* 153 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var brackets = __webpack_require__(154); - -/** - * Extglob compilers - */ - -module.exports = function(extglob) { - function star() { - if (typeof extglob.options.star === 'function') { - return extglob.options.star.apply(this, arguments); - } - if (typeof extglob.options.star === 'string') { - return extglob.options.star; - } - return '.*?'; - } - - /** - * Use `expand-brackets` compilers - */ - - extglob.use(brackets.compilers); - extglob.compiler - - /** - * Escaped: "\\*" - */ - - .set('escape', function(node) { - return this.emit(node.val, node); - }) - - /** - * Dot: "." - */ - - .set('dot', function(node) { - return this.emit('\\' + node.val, node); - }) - - /** - * Question mark: "?" - */ - - .set('qmark', function(node) { - var val = '[^\\\\/.]'; - var prev = this.prev(); - - if (node.parsed.slice(-1) === '(') { - var ch = node.rest.charAt(0); - if (ch !== '!' && ch !== '=' && ch !== ':') { - return this.emit(val, node); - } - return this.emit(node.val, node); - } - - if (prev.type === 'text' && prev.val) { - return this.emit(val, node); - } - - if (node.val.length > 1) { - val += '{' + node.val.length + '}'; - } - return this.emit(val, node); - }) - - /** - * Plus: "+" - */ - - .set('plus', function(node) { - var prev = node.parsed.slice(-1); - if (prev === ']' || prev === ')') { - return this.emit(node.val, node); - } - var ch = this.output.slice(-1); - if (!this.output || (/[?*+]/.test(ch) && node.parent.type !== 'bracket')) { - return this.emit('\\+', node); - } - if (/\w/.test(ch) && !node.inside) { - return this.emit('+\\+?', node); - } - return this.emit('+', node); - }) - - /** - * Star: "*" - */ - - .set('star', function(node) { - var prev = this.prev(); - var prefix = prev.type !== 'text' && prev.type !== 'escape' - ? '(?!\\.)' - : ''; - - return this.emit(prefix + star.call(this, node), node); - }) - - /** - * Parens - */ - - .set('paren', function(node) { - return this.mapVisit(node.nodes); - }) - .set('paren.open', function(node) { - var capture = this.options.capture ? '(' : ''; - - switch (node.parent.prefix) { - case '!': - case '^': - return this.emit(capture + '(?:(?!(?:', node); - case '*': - case '+': - case '?': - case '@': - return this.emit(capture + '(?:', node); - default: { - var val = node.val; - if (this.options.bash === true) { - val = '\\' + val; - } else if (!this.options.capture && val === '(' && node.parent.rest[0] !== '?') { - val += '?:'; - } - - return this.emit(val, node); - } - } - }) - .set('paren.close', function(node) { - var capture = this.options.capture ? ')' : ''; - - switch (node.prefix) { - case '!': - case '^': - var prefix = /^(\)|$)/.test(node.rest) ? '$' : ''; - var str = star.call(this, node); - - // if the extglob has a slash explicitly defined, we know the user wants - // to match slashes, so we need to ensure the "star" regex allows for it - if (node.parent.hasSlash && !this.options.star && this.options.slash !== false) { - str = '.*?'; - } - - return this.emit(prefix + ('))' + str + ')') + capture, node); - case '*': - case '+': - case '?': - return this.emit(')' + node.prefix + capture, node); - case '@': - return this.emit(')' + capture, node); - default: { - var val = (this.options.bash === true ? '\\' : '') + ')'; - return this.emit(val, node); - } - } - }) - - /** - * Text - */ - - .set('text', function(node) { - var val = node.val.replace(/[\[\]]/g, '\\$&'); - return this.emit(val, node); - }); -}; - - -/***/ }), -/* 154 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/** - * Local dependencies - */ - -var compilers = __webpack_require__(417); -var parsers = __webpack_require__(419); - -/** - * Module dependencies - */ - -var debug = __webpack_require__(106)('expand-brackets'); -var extend = __webpack_require__(20); -var Snapdragon = __webpack_require__(66); -var toRegex = __webpack_require__(43); - -/** - * Parses the given POSIX character class `pattern` and returns a - * string that can be used for creating regular expressions for matching. - * - * @param {String} `pattern` - * @param {Object} `options` - * @return {Object} - * @api public - */ - -function brackets(pattern, options) { - debug('initializing from <%s>', __filename); - var res = brackets.create(pattern, options); - return res.output; -} - -/** - * Takes an array of strings and a POSIX character class pattern, and returns a new - * array with only the strings that matched the pattern. - * - * ```js - * var brackets = require('expand-brackets'); - * console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]')); - * //=> ['a'] - * - * console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]+')); - * //=> ['a', 'ab'] - * ``` - * @param {Array} `arr` Array of strings to match - * @param {String} `pattern` POSIX character class pattern(s) - * @param {Object} `options` - * @return {Array} - * @api public - */ - -brackets.match = function(arr, pattern, options) { - arr = [].concat(arr); - var opts = extend({}, options); - var isMatch = brackets.matcher(pattern, opts); - var len = arr.length; - var idx = -1; - var res = []; - - while (++idx < len) { - var ele = arr[idx]; - if (isMatch(ele)) { - res.push(ele); - } - } - - if (res.length === 0) { - if (opts.failglob === true) { - throw new Error('no matches found for "' + pattern + '"'); - } - - if (opts.nonull === true || opts.nullglob === true) { - return [pattern.split('\\').join('')]; - } - } - return res; -}; - -/** - * Returns true if the specified `string` matches the given - * brackets `pattern`. - * - * ```js - * var brackets = require('expand-brackets'); - * - * console.log(brackets.isMatch('a.a', '[[:alpha:]].[[:alpha:]]')); - * //=> true - * console.log(brackets.isMatch('1.2', '[[:alpha:]].[[:alpha:]]')); - * //=> false - * ``` - * @param {String} `string` String to match - * @param {String} `pattern` Poxis pattern - * @param {String} `options` - * @return {Boolean} - * @api public - */ - -brackets.isMatch = function(str, pattern, options) { - return brackets.matcher(pattern, options)(str); -}; - -/** - * Takes a POSIX character class pattern and returns a matcher function. The returned - * function takes the string to match as its only argument. - * - * ```js - * var brackets = require('expand-brackets'); - * var isMatch = brackets.matcher('[[:lower:]].[[:upper:]]'); - * - * console.log(isMatch('a.a')); - * //=> false - * console.log(isMatch('a.A')); - * //=> true - * ``` - * @param {String} `pattern` Poxis pattern - * @param {String} `options` - * @return {Boolean} - * @api public - */ - -brackets.matcher = function(pattern, options) { - var re = brackets.makeRe(pattern, options); - return function(str) { - return re.test(str); - }; -}; - -/** - * Create a regular expression from the given `pattern`. - * - * ```js - * var brackets = require('expand-brackets'); - * var re = brackets.makeRe('[[:alpha:]]'); - * console.log(re); - * //=> /^(?:[a-zA-Z])$/ - * ``` - * @param {String} `pattern` The pattern to convert to regex. - * @param {Object} `options` - * @return {RegExp} - * @api public - */ - -brackets.makeRe = function(pattern, options) { - var res = brackets.create(pattern, options); - var opts = extend({strictErrors: false}, options); - return toRegex(res.output, opts); -}; - -/** - * Parses the given POSIX character class `pattern` and returns an object - * with the compiled `output` and optional source `map`. - * - * ```js - * var brackets = require('expand-brackets'); - * console.log(brackets('[[:alpha:]]')); - * // { options: { source: 'string' }, - * // input: '[[:alpha:]]', - * // state: {}, - * // compilers: - * // { eos: [Function], - * // noop: [Function], - * // bos: [Function], - * // not: [Function], - * // escape: [Function], - * // text: [Function], - * // posix: [Function], - * // bracket: [Function], - * // 'bracket.open': [Function], - * // 'bracket.inner': [Function], - * // 'bracket.literal': [Function], - * // 'bracket.close': [Function] }, - * // output: '[a-zA-Z]', - * // ast: - * // { type: 'root', - * // errors: [], - * // nodes: [ [Object], [Object], [Object] ] }, - * // parsingErrors: [] } - * ``` - * @param {String} `pattern` - * @param {Object} `options` - * @return {Object} - * @api public - */ - -brackets.create = function(pattern, options) { - var snapdragon = (options && options.snapdragon) || new Snapdragon(options); - compilers(snapdragon); - parsers(snapdragon); - - var ast = snapdragon.parse(pattern, options); - ast.input = pattern; - var res = snapdragon.compile(ast, options); - res.input = pattern; - return res; -}; - -/** - * Expose `brackets` constructor, parsers and compilers - */ - -brackets.compilers = compilers; -brackets.parsers = parsers; - -/** - * Expose `brackets` - * @type {Function} - */ - -module.exports = brackets; - - -/***/ }), -/* 155 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var brackets = __webpack_require__(154); -var define = __webpack_require__(44); -var utils = __webpack_require__(156); - -/** - * Characters to use in text regex (we want to "not" match - * characters that are matched by other parsers) - */ - -var TEXT_REGEX = '([!@*?+]?\\(|\\)|[*?.+\\\\]|\\[:?(?=.*\\])|:?\\])+'; -var not = utils.createRegex(TEXT_REGEX); - -/** - * Extglob parsers - */ - -function parsers(extglob) { - extglob.state = extglob.state || {}; - - /** - * Use `expand-brackets` parsers - */ - - extglob.use(brackets.parsers); - extglob.parser.sets.paren = extglob.parser.sets.paren || []; - extglob.parser - - /** - * Extglob open: "*(" - */ - - .capture('paren.open', function() { - var parsed = this.parsed; - var pos = this.position(); - var m = this.match(/^([!@*?+])?\(/); - if (!m) return; - - var prev = this.prev(); - var prefix = m[1]; - var val = m[0]; - - var open = pos({ - type: 'paren.open', - parsed: parsed, - val: val - }); - - var node = pos({ - type: 'paren', - prefix: prefix, - nodes: [open] - }); - - // if nested negation extglobs, just cancel them out to simplify - if (prefix === '!' && prev.type === 'paren' && prev.prefix === '!') { - prev.prefix = '@'; - node.prefix = '@'; - } - - define(node, 'rest', this.input); - define(node, 'parsed', parsed); - define(node, 'parent', prev); - define(open, 'parent', node); - - this.push('paren', node); - prev.nodes.push(node); - }) - - /** - * Extglob close: ")" - */ - - .capture('paren.close', function() { - var parsed = this.parsed; - var pos = this.position(); - var m = this.match(/^\)/); - if (!m) return; - - var parent = this.pop('paren'); - var node = pos({ - type: 'paren.close', - rest: this.input, - parsed: parsed, - val: m[0] - }); - - if (!this.isType(parent, 'paren')) { - if (this.options.strict) { - throw new Error('missing opening paren: "("'); - } - node.escaped = true; - return node; - } - - node.prefix = parent.prefix; - parent.nodes.push(node); - define(node, 'parent', parent); - }) - - /** - * Escape: "\\." - */ - - .capture('escape', function() { - var pos = this.position(); - var m = this.match(/^\\(.)/); - if (!m) return; - - return pos({ - type: 'escape', - val: m[0], - ch: m[1] - }); - }) - - /** - * Question marks: "?" - */ - - .capture('qmark', function() { - var parsed = this.parsed; - var pos = this.position(); - var m = this.match(/^\?+(?!\()/); - if (!m) return; - extglob.state.metachar = true; - return pos({ - type: 'qmark', - rest: this.input, - parsed: parsed, - val: m[0] - }); - }) - - /** - * Character parsers - */ - - .capture('star', /^\*(?!\()/) - .capture('plus', /^\+(?!\()/) - .capture('dot', /^\./) - .capture('text', not); -}; - -/** - * Expose text regex string - */ - -module.exports.TEXT_REGEX = TEXT_REGEX; - -/** - * Extglob parsers - */ - -module.exports = parsers; - - -/***/ }), -/* 156 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var regex = __webpack_require__(64); -var Cache = __webpack_require__(107); - -/** - * Utils - */ - -var utils = module.exports; -var cache = utils.cache = new Cache(); - -/** - * Cast `val` to an array - * @return {Array} - */ - -utils.arrayify = function(val) { - if (!Array.isArray(val)) { - return [val]; - } - return val; -}; - -/** - * Memoize a generated regex or function - */ - -utils.memoize = function(type, pattern, options, fn) { - var key = utils.createKey(type + pattern, options); - - if (cache.has(type, key)) { - return cache.get(type, key); - } - - var val = fn(pattern, options); - if (options && options.cache === false) { - return val; - } - - cache.set(type, key, val); - return val; -}; - -/** - * Create the key to use for memoization. The key is generated - * by iterating over the options and concatenating key-value pairs - * to the pattern string. - */ - -utils.createKey = function(pattern, options) { - var key = pattern; - if (typeof options === 'undefined') { - return key; - } - for (var prop in options) { - key += ';' + prop + '=' + String(options[prop]); - } - return key; -}; - -/** - * Create the regex to use for matching text - */ - -utils.createRegex = function(str) { - var opts = {contains: true, strictClose: false}; - return regex(str, opts); -}; - - -/***/ }), -/* 157 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = asyncForEach; - -/** - * Simultaneously processes all items in the given array. - * - * @param {array} array - The array to iterate over - * @param {function} iterator - The function to call for each item in the array - * @param {function} done - The function to call when all iterators have completed - */ -function asyncForEach (array, iterator, done) { - if (array.length === 0) { - // NOTE: Normally a bad idea to mix sync and async, but it's safe here because - // of the way that this method is currently used by DirectoryReader. - done(); - return; - } - - // Simultaneously process all items in the array. - let pending = array.length; - array.forEach(item => { - iterator(item, () => { - if (--pending === 0) { - done(); - } - }); - }); -} - - -/***/ }), -/* 158 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -/** - * Flatten nested arrays (max depth is 2) into a non-nested array of non-array items. - */ -function flatten(items) { - return items.reduce(function (collection, item) { return [].concat(collection, item); }, []); -} -exports.flatten = flatten; -/** - * Returns max number from array. - */ -function max(items) { - return Math.max.apply(null, items); -} -exports.max = max; - - -/***/ }), -/* 159 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -const NestedError = __webpack_require__(160); - -class CpFileError extends NestedError { - constructor(message, nested) { - super(message, nested); - Object.assign(this, nested); - this.name = 'CpFileError'; - } -} - -module.exports = CpFileError; - - -/***/ }), -/* 160 */ -/***/ (function(module, exports, __webpack_require__) { - -var inherits = __webpack_require__(118); - -var NestedError = function (message, nested) { - this.nested = nested; - - if (typeof message !== 'undefined') { - Object.defineProperty(this, 'message', { - value: message, - writable: true, - enumerable: false, - configurable: true - }); - } - - Error.captureStackTrace(this, this.constructor); - var oldStackDescriptor = Object.getOwnPropertyDescriptor(this, 'stack'); - var stackDescriptor = buildStackDescriptor(oldStackDescriptor, nested); - Object.defineProperty(this, 'stack', stackDescriptor); -}; - -function buildStackDescriptor(oldStackDescriptor, nested) { - if (oldStackDescriptor.get) { - return { - get: function () { - var stack = oldStackDescriptor.get.call(this); - return buildCombinedStacks(stack, this.nested); - } - }; - } else { - var stack = oldStackDescriptor.value; - return { - value: buildCombinedStacks(stack, nested) - }; - } -} - -function buildCombinedStacks(stack, nested) { - if (nested) { - stack += '\nCaused By: ' + nested.stack; - } - return stack; -} - -inherits(NestedError, Error); -NestedError.prototype.name = 'NestedError'; - - -module.exports = NestedError; - - -/***/ }), -/* 161 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _cli = __webpack_require__(162); - -Object.defineProperty(exports, 'run', { - enumerable: true, - get: function () { - return _cli.run; - } -}); - -var _production = __webpack_require__(292); - -Object.defineProperty(exports, 'buildProductionProjects', { - enumerable: true, - get: function () { - return _production.buildProductionProjects; - } -}); -Object.defineProperty(exports, 'prepareExternalProjectDependencies', { - enumerable: true, - get: function () { - return _production.prepareExternalProjectDependencies; - } -}); - -var _workspaces = __webpack_require__(130); - -Object.defineProperty(exports, 'copyWorkspacePackages', { - enumerable: true, - get: function () { - return _workspaces.copyWorkspacePackages; - } -}); - -/***/ }), -/* 162 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.run = undefined; - -let run = exports.run = (() => { - var _ref = _asyncToGenerator(function* (argv) { - // We can simplify this setup (and remove this extra handling) once Yarn - // starts forwarding the `--` directly to this script, see - // https://github.com/yarnpkg/yarn/blob/b2d3e1a8fe45ef376b716d597cc79b38702a9320/src/cli/index.js#L174-L182 - if (argv.includes('--')) { - _log.log.write(_chalk2.default.red(`Using "--" is not allowed, as it doesn't work with 'yarn kbn'.`)); - process.exit(1); - } - const options = (0, _getopts2.default)(argv, { - alias: { - e: 'exclude', - h: 'help', - i: 'include' - }, - boolean: ['prefer-offline', 'frozen-lockfile'] - }); - const args = options._; - if (options.help || args.length === 0) { - help(); - return; - } - // This `rootPath` is relative to `./dist/` as that's the location of the - // built version of this tool. - const rootPath = (0, _path.resolve)(__dirname, '../../../'); - const commandName = args[0]; - const extraArgs = args.slice(1); - const commandOptions = { options, extraArgs, rootPath }; - const command = _commands.commands[commandName]; - if (command === undefined) { - _log.log.write(_chalk2.default.red(`[${commandName}] is not a valid command, see 'kbn --help'`)); - process.exit(1); - } - yield (0, _run.runCommand)(command, commandOptions); - }); - - return function run(_x) { - return _ref.apply(this, arguments); - }; -})(); - -var _chalk = __webpack_require__(26); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _dedent = __webpack_require__(171); - -var _dedent2 = _interopRequireDefault(_dedent); - -var _getopts = __webpack_require__(172); - -var _getopts2 = _interopRequireDefault(_getopts); - -var _path = __webpack_require__(5); - -var _commands = __webpack_require__(173); - -var _run = __webpack_require__(282); - -var _log = __webpack_require__(40); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - - -function help() { - const availableCommands = Object.keys(_commands.commands).map(commandName => _commands.commands[commandName]).map(command => `${command.name} - ${command.description}`); - _log.log.write(_dedent2.default` - usage: kbn [] - - By default commands are run for Kibana itself, all packages in the 'packages/' - folder and for all plugins in '../kibana-extra'. - - Available commands: - - ${availableCommands.join('\n ')} - - Global options: - - -e, --exclude Exclude specified project. Can be specified multiple times to exclude multiple projects, e.g. '-e kibana -e @kbn/pm'. - -i, --include Include only specified projects. If left unspecified, it defaults to including all projects. - --oss Do not include the x-pack when running command. - --skip-kibana-extra Filter all plugins in ../kibana-extra when running command. - `); -} - -/***/ }), -/* 163 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; - -module.exports = function (str) { - if (typeof str !== 'string') { - throw new TypeError('Expected a string'); - } - - return str.replace(matchOperatorsRe, '\\$&'); -}; - - -/***/ }), -/* 164 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(module) { -const colorConvert = __webpack_require__(165); - -const wrapAnsi16 = (fn, offset) => function () { - const code = fn.apply(colorConvert, arguments); - return `\u001B[${code + offset}m`; -}; - -const wrapAnsi256 = (fn, offset) => function () { - const code = fn.apply(colorConvert, arguments); - return `\u001B[${38 + offset};5;${code}m`; -}; - -const wrapAnsi16m = (fn, offset) => function () { - const rgb = fn.apply(colorConvert, arguments); - return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; -}; - -function assembleStyles() { - const codes = new Map(); - const styles = { - modifier: { - reset: [0, 0], - // 21 isn't widely supported and 22 does the same thing - bold: [1, 22], - dim: [2, 22], - italic: [3, 23], - underline: [4, 24], - inverse: [7, 27], - hidden: [8, 28], - strikethrough: [9, 29] - }, - color: { - black: [30, 39], - red: [31, 39], - green: [32, 39], - yellow: [33, 39], - blue: [34, 39], - magenta: [35, 39], - cyan: [36, 39], - white: [37, 39], - gray: [90, 39], - - // Bright color - redBright: [91, 39], - greenBright: [92, 39], - yellowBright: [93, 39], - blueBright: [94, 39], - magentaBright: [95, 39], - cyanBright: [96, 39], - whiteBright: [97, 39] - }, - bgColor: { - bgBlack: [40, 49], - bgRed: [41, 49], - bgGreen: [42, 49], - bgYellow: [43, 49], - bgBlue: [44, 49], - bgMagenta: [45, 49], - bgCyan: [46, 49], - bgWhite: [47, 49], - - // Bright color - bgBlackBright: [100, 49], - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] - } - }; - - // Fix humans - styles.color.grey = styles.color.gray; - - for (const groupName of Object.keys(styles)) { - const group = styles[groupName]; - - for (const styleName of Object.keys(group)) { - const style = group[styleName]; - - styles[styleName] = { - open: `\u001B[${style[0]}m`, - close: `\u001B[${style[1]}m` - }; - - group[styleName] = styles[styleName]; - - codes.set(style[0], style[1]); - } - - Object.defineProperty(styles, groupName, { - value: group, - enumerable: false - }); - - Object.defineProperty(styles, 'codes', { - value: codes, - enumerable: false - }); - } - - const ansi2ansi = n => n; - const rgb2rgb = (r, g, b) => [r, g, b]; - - styles.color.close = '\u001B[39m'; - styles.bgColor.close = '\u001B[49m'; - - styles.color.ansi = { - ansi: wrapAnsi16(ansi2ansi, 0) - }; - styles.color.ansi256 = { - ansi256: wrapAnsi256(ansi2ansi, 0) - }; - styles.color.ansi16m = { - rgb: wrapAnsi16m(rgb2rgb, 0) - }; - - styles.bgColor.ansi = { - ansi: wrapAnsi16(ansi2ansi, 10) - }; - styles.bgColor.ansi256 = { - ansi256: wrapAnsi256(ansi2ansi, 10) - }; - styles.bgColor.ansi16m = { - rgb: wrapAnsi16m(rgb2rgb, 10) - }; - - for (let key of Object.keys(colorConvert)) { - if (typeof colorConvert[key] !== 'object') { - continue; - } - - const suite = colorConvert[key]; - - if (key === 'ansi16') { - key = 'ansi'; - } - - if ('ansi16' in suite) { - styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0); - styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10); - } - - if ('ansi256' in suite) { - styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0); - styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10); - } - - if ('rgb' in suite) { - styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0); - styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10); - } - } - - return styles; -} - -// Make the export immutable -Object.defineProperty(module, 'exports', { - enumerable: true, - get: assembleStyles -}); - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(112)(module))) - -/***/ }), -/* 165 */ -/***/ (function(module, exports, __webpack_require__) { - -var conversions = __webpack_require__(113); -var route = __webpack_require__(167); - -var convert = {}; - -var models = Object.keys(conversions); - -function wrapRaw(fn) { - var wrappedFn = function (args) { - if (args === undefined || args === null) { - return args; - } - - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - - return fn(args); - }; - - // preserve .conversion property if there is one - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; - } - - return wrappedFn; -} - -function wrapRounded(fn) { - var wrappedFn = function (args) { - if (args === undefined || args === null) { - return args; - } - - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - - var result = fn(args); - - // we're assuming the result is an array here. - // see notice in conversions.js; don't use box types - // in conversion functions. - if (typeof result === 'object') { - for (var len = result.length, i = 0; i < len; i++) { - result[i] = Math.round(result[i]); - } - } - - return result; - }; - - // preserve .conversion property if there is one - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; - } - - return wrappedFn; -} - -models.forEach(function (fromModel) { - convert[fromModel] = {}; - - Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); - Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); - - var routes = route(fromModel); - var routeModels = Object.keys(routes); - - routeModels.forEach(function (toModel) { - var fn = routes[toModel]; - - convert[fromModel][toModel] = wrapRounded(fn); - convert[fromModel][toModel].raw = wrapRaw(fn); - }); -}); - -module.exports = convert; - - -/***/ }), -/* 166 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = { - "aliceblue": [240, 248, 255], - "antiquewhite": [250, 235, 215], - "aqua": [0, 255, 255], - "aquamarine": [127, 255, 212], - "azure": [240, 255, 255], - "beige": [245, 245, 220], - "bisque": [255, 228, 196], - "black": [0, 0, 0], - "blanchedalmond": [255, 235, 205], - "blue": [0, 0, 255], - "blueviolet": [138, 43, 226], - "brown": [165, 42, 42], - "burlywood": [222, 184, 135], - "cadetblue": [95, 158, 160], - "chartreuse": [127, 255, 0], - "chocolate": [210, 105, 30], - "coral": [255, 127, 80], - "cornflowerblue": [100, 149, 237], - "cornsilk": [255, 248, 220], - "crimson": [220, 20, 60], - "cyan": [0, 255, 255], - "darkblue": [0, 0, 139], - "darkcyan": [0, 139, 139], - "darkgoldenrod": [184, 134, 11], - "darkgray": [169, 169, 169], - "darkgreen": [0, 100, 0], - "darkgrey": [169, 169, 169], - "darkkhaki": [189, 183, 107], - "darkmagenta": [139, 0, 139], - "darkolivegreen": [85, 107, 47], - "darkorange": [255, 140, 0], - "darkorchid": [153, 50, 204], - "darkred": [139, 0, 0], - "darksalmon": [233, 150, 122], - "darkseagreen": [143, 188, 143], - "darkslateblue": [72, 61, 139], - "darkslategray": [47, 79, 79], - "darkslategrey": [47, 79, 79], - "darkturquoise": [0, 206, 209], - "darkviolet": [148, 0, 211], - "deeppink": [255, 20, 147], - "deepskyblue": [0, 191, 255], - "dimgray": [105, 105, 105], - "dimgrey": [105, 105, 105], - "dodgerblue": [30, 144, 255], - "firebrick": [178, 34, 34], - "floralwhite": [255, 250, 240], - "forestgreen": [34, 139, 34], - "fuchsia": [255, 0, 255], - "gainsboro": [220, 220, 220], - "ghostwhite": [248, 248, 255], - "gold": [255, 215, 0], - "goldenrod": [218, 165, 32], - "gray": [128, 128, 128], - "green": [0, 128, 0], - "greenyellow": [173, 255, 47], - "grey": [128, 128, 128], - "honeydew": [240, 255, 240], - "hotpink": [255, 105, 180], - "indianred": [205, 92, 92], - "indigo": [75, 0, 130], - "ivory": [255, 255, 240], - "khaki": [240, 230, 140], - "lavender": [230, 230, 250], - "lavenderblush": [255, 240, 245], - "lawngreen": [124, 252, 0], - "lemonchiffon": [255, 250, 205], - "lightblue": [173, 216, 230], - "lightcoral": [240, 128, 128], - "lightcyan": [224, 255, 255], - "lightgoldenrodyellow": [250, 250, 210], - "lightgray": [211, 211, 211], - "lightgreen": [144, 238, 144], - "lightgrey": [211, 211, 211], - "lightpink": [255, 182, 193], - "lightsalmon": [255, 160, 122], - "lightseagreen": [32, 178, 170], - "lightskyblue": [135, 206, 250], - "lightslategray": [119, 136, 153], - "lightslategrey": [119, 136, 153], - "lightsteelblue": [176, 196, 222], - "lightyellow": [255, 255, 224], - "lime": [0, 255, 0], - "limegreen": [50, 205, 50], - "linen": [250, 240, 230], - "magenta": [255, 0, 255], - "maroon": [128, 0, 0], - "mediumaquamarine": [102, 205, 170], - "mediumblue": [0, 0, 205], - "mediumorchid": [186, 85, 211], - "mediumpurple": [147, 112, 219], - "mediumseagreen": [60, 179, 113], - "mediumslateblue": [123, 104, 238], - "mediumspringgreen": [0, 250, 154], - "mediumturquoise": [72, 209, 204], - "mediumvioletred": [199, 21, 133], - "midnightblue": [25, 25, 112], - "mintcream": [245, 255, 250], - "mistyrose": [255, 228, 225], - "moccasin": [255, 228, 181], - "navajowhite": [255, 222, 173], - "navy": [0, 0, 128], - "oldlace": [253, 245, 230], - "olive": [128, 128, 0], - "olivedrab": [107, 142, 35], - "orange": [255, 165, 0], - "orangered": [255, 69, 0], - "orchid": [218, 112, 214], - "palegoldenrod": [238, 232, 170], - "palegreen": [152, 251, 152], - "paleturquoise": [175, 238, 238], - "palevioletred": [219, 112, 147], - "papayawhip": [255, 239, 213], - "peachpuff": [255, 218, 185], - "peru": [205, 133, 63], - "pink": [255, 192, 203], - "plum": [221, 160, 221], - "powderblue": [176, 224, 230], - "purple": [128, 0, 128], - "rebeccapurple": [102, 51, 153], - "red": [255, 0, 0], - "rosybrown": [188, 143, 143], - "royalblue": [65, 105, 225], - "saddlebrown": [139, 69, 19], - "salmon": [250, 128, 114], - "sandybrown": [244, 164, 96], - "seagreen": [46, 139, 87], - "seashell": [255, 245, 238], - "sienna": [160, 82, 45], - "silver": [192, 192, 192], - "skyblue": [135, 206, 235], - "slateblue": [106, 90, 205], - "slategray": [112, 128, 144], - "slategrey": [112, 128, 144], - "snow": [255, 250, 250], - "springgreen": [0, 255, 127], - "steelblue": [70, 130, 180], - "tan": [210, 180, 140], - "teal": [0, 128, 128], - "thistle": [216, 191, 216], - "tomato": [255, 99, 71], - "turquoise": [64, 224, 208], - "violet": [238, 130, 238], - "wheat": [245, 222, 179], - "white": [255, 255, 255], - "whitesmoke": [245, 245, 245], - "yellow": [255, 255, 0], - "yellowgreen": [154, 205, 50] -}; - - -/***/ }), -/* 167 */ -/***/ (function(module, exports, __webpack_require__) { - -var conversions = __webpack_require__(113); - -/* - this function routes a model to all other models. - - all functions that are routed have a property `.conversion` attached - to the returned synthetic function. This property is an array - of strings, each with the steps in between the 'from' and 'to' - color models (inclusive). - - conversions that are not possible simply are not included. -*/ - -function buildGraph() { - var graph = {}; - // https://jsperf.com/object-keys-vs-for-in-with-closure/3 - var models = Object.keys(conversions); - - for (var len = models.length, i = 0; i < len; i++) { - graph[models[i]] = { - // http://jsperf.com/1-vs-infinity - // micro-opt, but this is simple. - distance: -1, - parent: null - }; - } - - return graph; -} - -// https://en.wikipedia.org/wiki/Breadth-first_search -function deriveBFS(fromModel) { - var graph = buildGraph(); - var queue = [fromModel]; // unshift -> queue -> pop - - graph[fromModel].distance = 0; - - while (queue.length) { - var current = queue.pop(); - var adjacents = Object.keys(conversions[current]); - - for (var len = adjacents.length, i = 0; i < len; i++) { - var adjacent = adjacents[i]; - var node = graph[adjacent]; - - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } - } - } - - return graph; -} - -function link(from, to) { - return function (args) { - return to(from(args)); - }; -} - -function wrapConversion(toModel, graph) { - var path = [graph[toModel].parent, toModel]; - var fn = conversions[graph[toModel].parent][toModel]; - - var cur = graph[toModel].parent; - while (graph[cur].parent) { - path.unshift(graph[cur].parent); - fn = link(conversions[graph[cur].parent][cur], fn); - cur = graph[cur].parent; - } - - fn.conversion = path; - return fn; -} - -module.exports = function (fromModel) { - var graph = deriveBFS(fromModel); - var conversion = {}; - - var models = Object.keys(graph); - for (var len = models.length, i = 0; i < len; i++) { - var toModel = models[i]; - var node = graph[toModel]; - - if (node.parent === null) { - // no possible conversion, or this node is the source model. - continue; - } - - conversion[toModel] = wrapConversion(toModel, graph); - } - - return conversion; -}; - - - -/***/ }), -/* 168 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -const os = __webpack_require__(114); -const hasFlag = __webpack_require__(169); - -const env = process.env; - -let forceColor; -if (hasFlag('no-color') || - hasFlag('no-colors') || - hasFlag('color=false')) { - forceColor = false; -} else if (hasFlag('color') || - hasFlag('colors') || - hasFlag('color=true') || - hasFlag('color=always')) { - forceColor = true; -} -if ('FORCE_COLOR' in env) { - forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; -} - -function translateLevel(level) { - if (level === 0) { - return false; - } - - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; -} - -function supportsColor(stream) { - if (forceColor === false) { - return 0; - } - - if (hasFlag('color=16m') || - hasFlag('color=full') || - hasFlag('color=truecolor')) { - return 3; - } - - if (hasFlag('color=256')) { - return 2; - } - - if (stream && !stream.isTTY && forceColor !== true) { - // VS code debugger doesn't have isTTY set - if (env.VSCODE_PID) { - return 1; - } - return 0; - } - - const min = forceColor ? 1 : 0; - - if (process.platform === 'win32') { - // Node.js 7.5.0 is the first version of Node.js to include a patch to - // libuv that enables 256 color output on Windows. Anything earlier and it - // won't work. However, here we target Node.js 8 at minimum as it is an LTS - // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows - // release that supports 256 colors. Windows 10 build 14931 is the first release - // that supports 16m/TrueColor. - const osRelease = os.release().split('.'); - if ( - Number(process.versions.node.split('.')[0]) >= 8 && - Number(osRelease[0]) >= 10 && - Number(osRelease[2]) >= 10586 - ) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } - - return 1; - } - - if ('CI' in env) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { - return 1; - } - - return min; - } - - if ('TEAMCITY_VERSION' in env) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; - } - - if (env.COLORTERM === 'truecolor') { - return 3; - } - - if ('TERM_PROGRAM' in env) { - const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); - - switch (env.TERM_PROGRAM) { - case 'iTerm.app': - return version >= 3 ? 3 : 2; - case 'Apple_Terminal': - return 2; - // No default - } - } - - if (/-256(color)?$/i.test(env.TERM)) { - return 2; - } - - if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { - return 1; - } - - if ('COLORTERM' in env) { - return 1; - } - - if (env.TERM === 'dumb') { - return min; - } - - return min; -} - -function getSupportLevel(stream) { - const level = supportsColor(stream); - return translateLevel(level); -} - -module.exports = { - supportsColor: getSupportLevel, - stdout: getSupportLevel(process.stdout), - stderr: getSupportLevel(process.stderr) -}; - - -/***/ }), -/* 169 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -module.exports = (flag, argv) => { - argv = argv || process.argv; - const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); - const pos = argv.indexOf(prefix + flag); - const terminatorPos = argv.indexOf('--'); - return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); -}; - - -/***/ }), -/* 170 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -const TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; -const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; -const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; -const ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; - -const ESCAPES = new Map([ - ['n', '\n'], - ['r', '\r'], - ['t', '\t'], - ['b', '\b'], - ['f', '\f'], - ['v', '\v'], - ['0', '\0'], - ['\\', '\\'], - ['e', '\u001B'], - ['a', '\u0007'] -]); - -function unescape(c) { - if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) { - return String.fromCharCode(parseInt(c.slice(1), 16)); - } - - return ESCAPES.get(c) || c; -} - -function parseArguments(name, args) { - const results = []; - const chunks = args.trim().split(/\s*,\s*/g); - let matches; - - for (const chunk of chunks) { - if (!isNaN(chunk)) { - results.push(Number(chunk)); - } else if ((matches = chunk.match(STRING_REGEX))) { - results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr)); - } else { - throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); - } - } - - return results; -} - -function parseStyle(style) { - STYLE_REGEX.lastIndex = 0; - - const results = []; - let matches; - - while ((matches = STYLE_REGEX.exec(style)) !== null) { - const name = matches[1]; - - if (matches[2]) { - const args = parseArguments(name, matches[2]); - results.push([name].concat(args)); - } else { - results.push([name]); - } - } - - return results; -} - -function buildStyle(chalk, styles) { - const enabled = {}; - - for (const layer of styles) { - for (const style of layer.styles) { - enabled[style[0]] = layer.inverse ? null : style.slice(1); - } - } - - let current = chalk; - for (const styleName of Object.keys(enabled)) { - if (Array.isArray(enabled[styleName])) { - if (!(styleName in current)) { - throw new Error(`Unknown Chalk style: ${styleName}`); - } - - if (enabled[styleName].length > 0) { - current = current[styleName].apply(current, enabled[styleName]); - } else { - current = current[styleName]; - } - } - } - - return current; -} - -module.exports = (chalk, tmp) => { - const styles = []; - const chunks = []; - let chunk = []; - - // eslint-disable-next-line max-params - tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => { - if (escapeChar) { - chunk.push(unescape(escapeChar)); - } else if (style) { - const str = chunk.join(''); - chunk = []; - chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str)); - styles.push({inverse, styles: parseStyle(style)}); - } else if (close) { - if (styles.length === 0) { - throw new Error('Found extraneous } in Chalk template literal'); - } - - chunks.push(buildStyle(chalk, styles)(chunk.join(''))); - chunk = []; - styles.pop(); - } else { - chunk.push(chr); - } - }); - - chunks.push(chunk.join('')); - - if (styles.length > 0) { - const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`; - throw new Error(errMsg); - } - - return chunks.join(''); -}; - - -/***/ }), -/* 171 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -function dedent(strings) { - - var raw = void 0; - if (typeof strings === "string") { - // dedent can be used as a plain function - raw = [strings]; - } else { - raw = strings.raw; - } - - // first, perform interpolation - var result = ""; - for (var i = 0; i < raw.length; i++) { - result += raw[i]. - // join lines when there is a suppressed newline - replace(/\\\n[ \t]*/g, ""). - - // handle escaped backticks - replace(/\\`/g, "`"); - - if (i < (arguments.length <= 1 ? 0 : arguments.length - 1)) { - result += arguments.length <= i + 1 ? undefined : arguments[i + 1]; - } - } - - // now strip indentation - var lines = result.split("\n"); - var mindent = null; - lines.forEach(function (l) { - var m = l.match(/^(\s+)\S+/); - if (m) { - var indent = m[1].length; - if (!mindent) { - // this is the first indented line - mindent = indent; - } else { - mindent = Math.min(mindent, indent); - } - } - }); - - if (mindent !== null) { - result = lines.map(function (l) { - return l[0] === " " ? l.slice(mindent) : l; - }).join("\n"); - } - - // dedent eats leading and trailing whitespace too - result = result.trim(); - - // handle escaped newlines at the end to ensure they don't get stripped too - return result.replace(/\\n/g, "\n"); -} - -if (true) { - module.exports = dedent; -} - - -/***/ }), -/* 172 */ -/***/ (function(module, exports) { - -const SHORTSPLIT = /$|[!-@\[-`{-~].*/g -const EMPTY = [] - -function array(any) { - return Array.isArray(any) ? any : [any] -} - -function aliases(aliases) { - var out = {} - - for (var key in aliases) { - var alias = (out[key] = array(aliases[key])) - - for (var i = 0, len = alias.length; i < len; i++) { - var curr = (out[alias[i]] = [key]) - - for (var j = 0; j < len; j++) { - if (i !== j) { - curr.push(alias[j]) - } - } - } - } - - return out -} - -function booleans(aliases, booleans) { - var out = {} - - if (booleans !== undefined) { - for (var i = 0, len = booleans.length; i < len; i++) { - var key = booleans[i] - var alias = aliases[key] - - out[key] = true - - if (alias === undefined) { - aliases[key] = EMPTY - } else { - for (var j = 0, end = alias.length; j < end; j++) { - out[alias[j]] = true - } - } - } - } - - return out -} - -function defaults(aliases, defaults) { - var out = {} - - for (var key in defaults) { - var value = defaults[key] - var alias = aliases[key] - - if (out[key] === undefined) { - out[key] = value - - if (alias === undefined) { - aliases[key] = EMPTY - } else { - for (var i = 0, len = alias.length; i < len; i++) { - out[alias[i]] = value - } - } - } - } - - return out -} - -function set(out, key, value, aliases, unknown) { - var curr = out[key] - var alias = aliases[key] - var known = alias !== undefined - - if (known || unknown === undefined || false !== unknown(key)) { - if (curr === undefined) { - out[key] = value - } else { - if (Array.isArray(curr)) { - curr.push(value) - } else { - out[key] = [curr, value] - } - } - - if (known) { - for (var i = 0, len = alias.length; i < len; ) { - out[alias[i++]] = out[key] - } - } - } -} - -module.exports = function(argv, opts) { - var unknown = (opts = opts || {}).unknown - var alias = aliases(opts.alias) - var values = defaults(alias, opts.default) - var bools = booleans(alias, opts.boolean) - var out = { _: [] } - - for (var i = 0, j = 0, len = argv.length, _ = out._; i < len; i++) { - var arg = argv[i] - - if (arg === "--") { - while (++i < len) { - _.push(argv[i]) - } - } else if (arg === "-" || arg[0] !== "-") { - _.push(arg) - } else { - if (arg[1] === "-") { - var end = arg.indexOf("=", 2) - - if (0 <= end) { - set(out, arg.slice(2, end), arg.slice(end + 1), alias, unknown) - } else { - if ("n" === arg[2] && "o" === arg[3] && "-" === arg[4]) { - set(out, arg.slice(5), false, alias, unknown) - } else { - var key = arg.slice(2) - set( - out, - key, - len === (j = i + 1) || - argv[j][0] === "-" || - bools[key] !== undefined || - argv[(i = j)], - alias, - unknown - ) - } - } - } else { - SHORTSPLIT.lastIndex = 2 - var match = SHORTSPLIT.exec(arg) - var end = match.index - var value = - match[0] || - len === (j = i + 1) || - argv[j][0] === "-" || - bools[arg[end - 1]] !== undefined || - argv[(i = j)] - - for (j = 1; j < end; ) { - set(out, arg[j], ++j !== end || value, alias, unknown) - } - } - } - } - - for (var key in values) { - if (out[key] === undefined) { - out[key] = values[key] - } - } - - return out -} - - -/***/ }), -/* 173 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.commands = undefined; - -var _bootstrap = __webpack_require__(174); - -var _clean = __webpack_require__(258); - -var _run = __webpack_require__(279); - -var _watch = __webpack_require__(280); - -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -const commands = exports.commands = { - bootstrap: _bootstrap.BootstrapCommand, - clean: _clean.CleanCommand, - run: _run.RunCommand, - watch: _watch.WatchCommand -}; - -/***/ }), -/* 174 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.BootstrapCommand = undefined; - -var _chalk = __webpack_require__(26); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _link_project_executables = __webpack_require__(175); - -var _log = __webpack_require__(40); - -var _parallelize = __webpack_require__(98); - -var _projects = __webpack_require__(47); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - - -const BootstrapCommand = exports.BootstrapCommand = { - description: 'Install dependencies and crosslink projects', - name: 'bootstrap', - run(projects, projectGraph, { options }) { - return _asyncToGenerator(function* () { - const batchedProjectsByWorkspace = (0, _projects.topologicallyBatchProjects)(projects, projectGraph, { - batchByWorkspace: true - }); - const batchedProjects = (0, _projects.topologicallyBatchProjects)(projects, projectGraph); - const extraArgs = [...(options['frozen-lockfile'] === true ? ['--frozen-lockfile'] : []), ...(options['prefer-offline'] === true ? ['--prefer-offline'] : [])]; - _log.log.write(_chalk2.default.bold('\nRunning installs in topological order:')); - for (const batch of batchedProjectsByWorkspace) { - for (const project of batch) { - if (project.isWorkspaceProject) { - _log.log.write(`Skipping workspace project: ${project.name}`); - continue; - } - if (project.hasDependencies()) { - yield project.installDependencies({ extraArgs }); - } - } - } - _log.log.write(_chalk2.default.bold('\nInstalls completed, linking package executables:\n')); - yield (0, _link_project_executables.linkProjectExecutables)(projects, projectGraph); - /** - * At the end of the bootstrapping process we call all `kbn:bootstrap` scripts - * in the list of projects. We do this because some projects need to be - * transpiled before they can be used. Ideally we shouldn't do this unless we - * have to, as it will slow down the bootstrapping process. - */ - _log.log.write(_chalk2.default.bold('\nLinking executables completed, running `kbn:bootstrap` scripts\n')); - yield (0, _parallelize.parallelizeBatches)(batchedProjects, (() => { - var _ref = _asyncToGenerator(function* (pkg) { - if (pkg.hasScript('kbn:bootstrap')) { - yield pkg.runScriptStreaming('kbn:bootstrap'); - } - }); - - return function (_x) { - return _ref.apply(this, arguments); - }; - })()); - _log.log.write(_chalk2.default.green.bold('\nBootstrapping completed!\n')); - })(); - } -}; - -/***/ }), -/* 175 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.linkProjectExecutables = undefined; - -/** - * Yarn does not link the executables from dependencies that are installed - * using `link:` https://github.com/yarnpkg/yarn/pull/5046 - * - * We simulate this functionality by walking through each project's project - * dependencies, and manually linking their executables if defined. The logic - * for linking was mostly adapted from lerna: https://github.com/lerna/lerna/blob/1d7eb9eeff65d5a7de64dea73613b1bf6bfa8d57/src/PackageUtilities.js#L348 - */ -let linkProjectExecutables = exports.linkProjectExecutables = (() => { - var _ref = _asyncToGenerator(function* (projectsByName, projectGraph) { - for (const [projectName, projectDeps] of projectGraph) { - const project = projectsByName.get(projectName); - const binsDir = (0, _path.resolve)(project.nodeModulesLocation, '.bin'); - for (const projectDep of projectDeps) { - const executables = projectDep.getExecutables(); - for (const name of Object.keys(executables)) { - const srcPath = executables[name]; - // existing logic from lerna -- ensure that the bin we are going to - // point to exists or ignore it - if (!(yield (0, _fs.isFile)(srcPath))) { - continue; - } - const dest = (0, _path.resolve)(binsDir, name); - // Get relative project path with normalized path separators. - const projectRelativePath = (0, _path.relative)(project.path, srcPath).split(_path.sep).join('/'); - _log.log.write(_chalk2.default`{dim [${project.name}]} ${name} -> {dim ${projectRelativePath}}`); - yield (0, _fs.mkdirp)((0, _path.dirname)(dest)); - yield (0, _fs.createSymlink)(srcPath, dest, 'exec'); - yield (0, _fs.chmod)(dest, '755'); - } - } - } - }); - - return function linkProjectExecutables(_x, _x2) { - return _ref.apply(this, arguments); - }; -})(); - -var _path = __webpack_require__(5); - -var _chalk = __webpack_require__(26); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _fs = __webpack_require__(70); - -var _log = __webpack_require__(40); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/***/ }), -/* 176 */ -/***/ (function(module, exports, __webpack_require__) { - -// On windows, create a .cmd file. -// Read the #! in the file to see what it uses. The vast majority -// of the time, this will be either: -// "#!/usr/bin/env " -// or: -// "#! " -// -// Write a binroot/pkg.bin + ".cmd" file that has this line in it: -// @ %~dp0 %* - -module.exports = cmdShim -cmdShim.ifExists = cmdShimIfExists - -var fs = __webpack_require__(61) - -var mkdir = __webpack_require__(116) - , path = __webpack_require__(5) - , shebangExpr = /^#\!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/ - -function cmdShimIfExists (from, to, cb) { - fs.stat(from, function (er) { - if (er) return cb() - cmdShim(from, to, cb) - }) -} - -// Try to unlink, but ignore errors. -// Any problems will surface later. -function rm (path, cb) { - fs.unlink(path, function(er) { - cb() - }) -} - -function cmdShim (from, to, cb) { - fs.stat(from, function (er, stat) { - if (er) - return cb(er) - - cmdShim_(from, to, cb) - }) -} - -function cmdShim_ (from, to, cb) { - var then = times(2, next, cb) - rm(to, then) - rm(to + ".cmd", then) - - function next(er) { - writeShim(from, to, cb) - } -} - -function writeShim (from, to, cb) { - // make a cmd file and a sh script - // First, check if the bin is a #! of some sort. - // If not, then assume it's something that'll be compiled, or some other - // sort of script, and just call it directly. - mkdir(path.dirname(to), function (er) { - if (er) - return cb(er) - fs.readFile(from, "utf8", function (er, data) { - if (er) return writeShim_(from, to, null, null, cb) - var firstLine = data.trim().split(/\r*\n/)[0] - , shebang = firstLine.match(shebangExpr) - if (!shebang) return writeShim_(from, to, null, null, cb) - var prog = shebang[1] - , args = shebang[2] || "" - return writeShim_(from, to, prog, args, cb) - }) - }) -} - -function writeShim_ (from, to, prog, args, cb) { - var shTarget = path.relative(path.dirname(to), from) - , target = shTarget.split("/").join("\\") - , longProg - , shProg = prog && prog.split("\\").join("/") - , shLongProg - shTarget = shTarget.split("\\").join("/") - args = args || "" - if (!prog) { - prog = "\"%~dp0\\" + target + "\"" - shProg = "\"$basedir/" + shTarget + "\"" - args = "" - target = "" - shTarget = "" - } else { - longProg = "\"%~dp0\\" + prog + ".exe\"" - shLongProg = "\"$basedir/" + prog + "\"" - target = "\"%~dp0\\" + target + "\"" - shTarget = "\"$basedir/" + shTarget + "\"" - } - - // @IF EXIST "%~dp0\node.exe" ( - // "%~dp0\node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %* - // ) ELSE ( - // SETLOCAL - // SET PATHEXT=%PATHEXT:;.JS;=;% - // node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %* - // ) - var cmd - if (longProg) { - cmd = "@IF EXIST " + longProg + " (\r\n" - + " " + longProg + " " + args + " " + target + " %*\r\n" - + ") ELSE (\r\n" - + " @SETLOCAL\r\n" - + " @SET PATHEXT=%PATHEXT:;.JS;=;%\r\n" - + " " + prog + " " + args + " " + target + " %*\r\n" - + ")" - } else { - cmd = "@" + prog + " " + args + " " + target + " %*\r\n" - } - - // #!/bin/sh - // basedir=`dirname "$0"` - // - // case `uname` in - // *CYGWIN*) basedir=`cygpath -w "$basedir"`;; - // esac - // - // if [ -x "$basedir/node.exe" ]; then - // "$basedir/node.exe" "$basedir/node_modules/npm/bin/npm-cli.js" "$@" - // ret=$? - // else - // node "$basedir/node_modules/npm/bin/npm-cli.js" "$@" - // ret=$? - // fi - // exit $ret - - var sh = "#!/bin/sh\n" - - if (shLongProg) { - sh = sh - + "basedir=$(dirname \"$(echo \"$0\" | sed -e 's,\\\\,/,g')\")\n" - + "\n" - + "case `uname` in\n" - + " *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;\n" - + "esac\n" - + "\n" - - sh = sh - + "if [ -x "+shLongProg+" ]; then\n" - + " " + shLongProg + " " + args + " " + shTarget + " \"$@\"\n" - + " ret=$?\n" - + "else \n" - + " " + shProg + " " + args + " " + shTarget + " \"$@\"\n" - + " ret=$?\n" - + "fi\n" - + "exit $ret\n" - } else { - sh = shProg + " " + args + " " + shTarget + " \"$@\"\n" - + "exit $?\n" - } - - var then = times(2, next, cb) - fs.writeFile(to + ".cmd", cmd, "utf8", then) - fs.writeFile(to, sh, "utf8", then) - function next () { - chmodShim(to, cb) - } -} - -function chmodShim (to, cb) { - var then = times(2, cb, cb) - fs.chmod(to, 0755, then) - fs.chmod(to + ".cmd", 0755, then) -} - -function times(n, ok, cb) { - var errState = null - return function(er) { - if (!errState) { - if (er) - cb(errState = er) - else if (--n === 0) - ok() - } - } -} - - -/***/ }), -/* 177 */ -/***/ (function(module, exports, __webpack_require__) { - -var fs = __webpack_require__(115) -var constants = __webpack_require__(178) - -var origCwd = process.cwd -var cwd = null - -var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform - -process.cwd = function() { - if (!cwd) - cwd = origCwd.call(process) - return cwd -} -try { - process.cwd() -} catch (er) {} - -var chdir = process.chdir -process.chdir = function(d) { - cwd = null - chdir.call(process, d) -} - -module.exports = patch - -function patch (fs) { - // (re-)implement some things that are known busted or missing. - - // lchmod, broken prior to 0.6.2 - // back-port the fix here. - if (constants.hasOwnProperty('O_SYMLINK') && - process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { - patchLchmod(fs) - } - - // lutimes implementation, or no-op - if (!fs.lutimes) { - patchLutimes(fs) - } - - // https://github.com/isaacs/node-graceful-fs/issues/4 - // Chown should not fail on einval or eperm if non-root. - // It should not fail on enosys ever, as this just indicates - // that a fs doesn't support the intended operation. - - fs.chown = chownFix(fs.chown) - fs.fchown = chownFix(fs.fchown) - fs.lchown = chownFix(fs.lchown) - - fs.chmod = chmodFix(fs.chmod) - fs.fchmod = chmodFix(fs.fchmod) - fs.lchmod = chmodFix(fs.lchmod) - - fs.chownSync = chownFixSync(fs.chownSync) - fs.fchownSync = chownFixSync(fs.fchownSync) - fs.lchownSync = chownFixSync(fs.lchownSync) - - fs.chmodSync = chmodFixSync(fs.chmodSync) - fs.fchmodSync = chmodFixSync(fs.fchmodSync) - fs.lchmodSync = chmodFixSync(fs.lchmodSync) - - fs.stat = statFix(fs.stat) - fs.fstat = statFix(fs.fstat) - fs.lstat = statFix(fs.lstat) - - fs.statSync = statFixSync(fs.statSync) - fs.fstatSync = statFixSync(fs.fstatSync) - fs.lstatSync = statFixSync(fs.lstatSync) - - // if lchmod/lchown do not exist, then make them no-ops - if (!fs.lchmod) { - fs.lchmod = function (path, mode, cb) { - if (cb) process.nextTick(cb) - } - fs.lchmodSync = function () {} - } - if (!fs.lchown) { - fs.lchown = function (path, uid, gid, cb) { - if (cb) process.nextTick(cb) - } - fs.lchownSync = function () {} - } - - // on Windows, A/V software can lock the directory, causing this - // to fail with an EACCES or EPERM if the directory contains newly - // created files. Try again on failure, for up to 60 seconds. - - // Set the timeout this long because some Windows Anti-Virus, such as Parity - // bit9, may lock files for up to a minute, causing npm package install - // failures. Also, take care to yield the scheduler. Windows scheduling gives - // CPU to a busy looping process, which can cause the program causing the lock - // contention to be starved of CPU by node, so the contention doesn't resolve. - if (platform === "win32") { - fs.rename = (function (fs$rename) { return function (from, to, cb) { - var start = Date.now() - var backoff = 0; - fs$rename(from, to, function CB (er) { - if (er - && (er.code === "EACCES" || er.code === "EPERM") - && Date.now() - start < 60000) { - setTimeout(function() { - fs.stat(to, function (stater, st) { - if (stater && stater.code === "ENOENT") - fs$rename(from, to, CB); - else - cb(er) - }) - }, backoff) - if (backoff < 100) - backoff += 10; - return; - } - if (cb) cb(er) - }) - }})(fs.rename) - } - - // if read() returns EAGAIN, then just try it again. - fs.read = (function (fs$read) { return function (fd, buffer, offset, length, position, callback_) { - var callback - if (callback_ && typeof callback_ === 'function') { - var eagCounter = 0 - callback = function (er, _, __) { - if (er && er.code === 'EAGAIN' && eagCounter < 10) { - eagCounter ++ - return fs$read.call(fs, fd, buffer, offset, length, position, callback) - } - callback_.apply(this, arguments) - } - } - return fs$read.call(fs, fd, buffer, offset, length, position, callback) - }})(fs.read) - - fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) { - var eagCounter = 0 - while (true) { - try { - return fs$readSync.call(fs, fd, buffer, offset, length, position) - } catch (er) { - if (er.code === 'EAGAIN' && eagCounter < 10) { - eagCounter ++ - continue - } - throw er - } - } - }})(fs.readSync) -} - -function patchLchmod (fs) { - fs.lchmod = function (path, mode, callback) { - fs.open( path - , constants.O_WRONLY | constants.O_SYMLINK - , mode - , function (err, fd) { - if (err) { - if (callback) callback(err) - return - } - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - fs.fchmod(fd, mode, function (err) { - fs.close(fd, function(err2) { - if (callback) callback(err || err2) - }) - }) - }) - } - - fs.lchmodSync = function (path, mode) { - var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) - - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - var threw = true - var ret - try { - ret = fs.fchmodSync(fd, mode) - threw = false - } finally { - if (threw) { - try { - fs.closeSync(fd) - } catch (er) {} - } else { - fs.closeSync(fd) - } - } - return ret - } -} - -function patchLutimes (fs) { - if (constants.hasOwnProperty("O_SYMLINK")) { - fs.lutimes = function (path, at, mt, cb) { - fs.open(path, constants.O_SYMLINK, function (er, fd) { - if (er) { - if (cb) cb(er) - return - } - fs.futimes(fd, at, mt, function (er) { - fs.close(fd, function (er2) { - if (cb) cb(er || er2) - }) - }) - }) - } - - fs.lutimesSync = function (path, at, mt) { - var fd = fs.openSync(path, constants.O_SYMLINK) - var ret - var threw = true - try { - ret = fs.futimesSync(fd, at, mt) - threw = false - } finally { - if (threw) { - try { - fs.closeSync(fd) - } catch (er) {} - } else { - fs.closeSync(fd) - } - } - return ret - } - - } else { - fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) } - fs.lutimesSync = function () {} - } -} - -function chmodFix (orig) { - if (!orig) return orig - return function (target, mode, cb) { - return orig.call(fs, target, mode, function (er) { - if (chownErOk(er)) er = null - if (cb) cb.apply(this, arguments) - }) - } -} - -function chmodFixSync (orig) { - if (!orig) return orig - return function (target, mode) { - try { - return orig.call(fs, target, mode) - } catch (er) { - if (!chownErOk(er)) throw er - } - } -} - - -function chownFix (orig) { - if (!orig) return orig - return function (target, uid, gid, cb) { - return orig.call(fs, target, uid, gid, function (er) { - if (chownErOk(er)) er = null - if (cb) cb.apply(this, arguments) - }) - } -} - -function chownFixSync (orig) { - if (!orig) return orig - return function (target, uid, gid) { - try { - return orig.call(fs, target, uid, gid) - } catch (er) { - if (!chownErOk(er)) throw er - } - } -} - - -function statFix (orig) { - if (!orig) return orig - // Older versions of Node erroneously returned signed integers for - // uid + gid. - return function (target, cb) { - return orig.call(fs, target, function (er, stats) { - if (!stats) return cb.apply(this, arguments) - if (stats.uid < 0) stats.uid += 0x100000000 - if (stats.gid < 0) stats.gid += 0x100000000 - if (cb) cb.apply(this, arguments) - }) - } -} - -function statFixSync (orig) { - if (!orig) return orig - // Older versions of Node erroneously returned signed integers for - // uid + gid. - return function (target) { - var stats = orig.call(fs, target) - if (stats.uid < 0) stats.uid += 0x100000000 - if (stats.gid < 0) stats.gid += 0x100000000 - return stats; - } -} - -// ENOSYS means that the fs doesn't support the op. Just ignore -// that, because it doesn't matter. -// -// if there's no getuid, or if getuid() is something other -// than 0, and the error is EINVAL or EPERM, then just ignore -// it. -// -// This specific case is a silent failure in cp, install, tar, -// and most other unix tools that manage permissions. -// -// When running as root, or if other types of errors are -// encountered, then it's strict. -function chownErOk (er) { - if (!er) - return true - - if (er.code === "ENOSYS") - return true - - var nonroot = !process.getuid || process.getuid() !== 0 - if (nonroot) { - if (er.code === "EINVAL" || er.code === "EPERM") - return true - } - - return false -} - - -/***/ }), -/* 178 */ -/***/ (function(module, exports) { - -module.exports = require("constants"); - -/***/ }), -/* 179 */ -/***/ (function(module, exports, __webpack_require__) { - -var Stream = __webpack_require__(39).Stream - -module.exports = legacy - -function legacy (fs) { - return { - ReadStream: ReadStream, - WriteStream: WriteStream - } - - function ReadStream (path, options) { - if (!(this instanceof ReadStream)) return new ReadStream(path, options); - - Stream.call(this); - - var self = this; - - this.path = path; - this.fd = null; - this.readable = true; - this.paused = false; - - this.flags = 'r'; - this.mode = 438; /*=0666*/ - this.bufferSize = 64 * 1024; - - options = options || {}; - - // Mixin options into this - var keys = Object.keys(options); - for (var index = 0, length = keys.length; index < length; index++) { - var key = keys[index]; - this[key] = options[key]; - } - - if (this.encoding) this.setEncoding(this.encoding); - - if (this.start !== undefined) { - if ('number' !== typeof this.start) { - throw TypeError('start must be a Number'); - } - if (this.end === undefined) { - this.end = Infinity; - } else if ('number' !== typeof this.end) { - throw TypeError('end must be a Number'); - } - - if (this.start > this.end) { - throw new Error('start must be <= end'); - } - - this.pos = this.start; - } - - if (this.fd !== null) { - process.nextTick(function() { - self._read(); - }); - return; - } - - fs.open(this.path, this.flags, this.mode, function (err, fd) { - if (err) { - self.emit('error', err); - self.readable = false; - return; - } - - self.fd = fd; - self.emit('open', fd); - self._read(); - }) - } - - function WriteStream (path, options) { - if (!(this instanceof WriteStream)) return new WriteStream(path, options); - - Stream.call(this); - - this.path = path; - this.fd = null; - this.writable = true; - - this.flags = 'w'; - this.encoding = 'binary'; - this.mode = 438; /*=0666*/ - this.bytesWritten = 0; - - options = options || {}; - - // Mixin options into this - var keys = Object.keys(options); - for (var index = 0, length = keys.length; index < length; index++) { - var key = keys[index]; - this[key] = options[key]; - } - - if (this.start !== undefined) { - if ('number' !== typeof this.start) { - throw TypeError('start must be a Number'); - } - if (this.start < 0) { - throw new Error('start must be >= zero'); - } - - this.pos = this.start; - } - - this.busy = false; - this._queue = []; - - if (this.fd === null) { - this._open = fs.open; - this._queue.push([this._open, this.path, this.flags, this.mode, undefined]); - this.flush(); - } - } -} - - -/***/ }), -/* 180 */ -/***/ (function(module, exports, __webpack_require__) { - -var fs = __webpack_require__(13), - path = __webpack_require__(5); - -module.exports = ncp; -ncp.ncp = ncp; - -function ncp (source, dest, options, callback) { - var cback = callback; - - if (!callback) { - cback = options; - options = {}; - } - - var basePath = process.cwd(), - currentPath = path.resolve(basePath, source), - targetPath = path.resolve(basePath, dest), - filter = options.filter, - rename = options.rename, - transform = options.transform, - clobber = options.clobber !== false, - modified = options.modified, - dereference = options.dereference, - errs = null, - started = 0, - finished = 0, - running = 0, - limit = options.limit || ncp.limit || 16; - - limit = (limit < 1) ? 1 : (limit > 512) ? 512 : limit; - - startCopy(currentPath); - - function startCopy(source) { - started++; - if (filter) { - if (filter instanceof RegExp) { - if (!filter.test(source)) { - return cb(true); - } - } - else if (typeof filter === 'function') { - if (!filter(source)) { - return cb(true); - } - } - } - return getStats(source); - } - - function getStats(source) { - var stat = dereference ? fs.stat : fs.lstat; - if (running >= limit) { - return setImmediate(function () { - getStats(source); - }); - } - running++; - stat(source, function (err, stats) { - var item = {}; - if (err) { - return onError(err); - } - - // We need to get the mode from the stats object and preserve it. - item.name = source; - item.mode = stats.mode; - item.mtime = stats.mtime; //modified time - item.atime = stats.atime; //access time - - if (stats.isDirectory()) { - return onDir(item); - } - else if (stats.isFile()) { - return onFile(item); - } - else if (stats.isSymbolicLink()) { - // Symlinks don't really need to know about the mode. - return onLink(source); - } - }); - } - - function onFile(file) { - var target = file.name.replace(currentPath, targetPath); - if(rename) { - target = rename(target); - } - isWritable(target, function (writable) { - if (writable) { - return copyFile(file, target); - } - if(clobber) { - rmFile(target, function () { - copyFile(file, target); - }); - } - if (modified) { - var stat = dereference ? fs.stat : fs.lstat; - stat(target, function(err, stats) { - //if souce modified time greater to target modified time copy file - if (file.mtime.getTime()>stats.mtime.getTime()) - copyFile(file, target); - else return cb(); - }); - } - else { - return cb(); - } - }); - } - - function copyFile(file, target) { - var readStream = fs.createReadStream(file.name), - writeStream = fs.createWriteStream(target, { mode: file.mode }); - - readStream.on('error', onError); - writeStream.on('error', onError); - - if(transform) { - transform(readStream, writeStream, file); - } else { - writeStream.on('open', function() { - readStream.pipe(writeStream); - }); - } - writeStream.once('finish', function() { - if (modified) { - //target file modified date sync. - fs.utimesSync(target, file.atime, file.mtime); - cb(); - } - else cb(); - }); - } - - function rmFile(file, done) { - fs.unlink(file, function (err) { - if (err) { - return onError(err); - } - return done(); - }); - } - - function onDir(dir) { - var target = dir.name.replace(currentPath, targetPath); - isWritable(target, function (writable) { - if (writable) { - return mkDir(dir, target); - } - copyDir(dir.name); - }); - } - - function mkDir(dir, target) { - fs.mkdir(target, dir.mode, function (err) { - if (err) { - return onError(err); - } - copyDir(dir.name); - }); - } - - function copyDir(dir) { - fs.readdir(dir, function (err, items) { - if (err) { - return onError(err); - } - items.forEach(function (item) { - startCopy(path.join(dir, item)); - }); - return cb(); - }); - } - - function onLink(link) { - var target = link.replace(currentPath, targetPath); - fs.readlink(link, function (err, resolvedPath) { - if (err) { - return onError(err); - } - checkLink(resolvedPath, target); - }); - } - - function checkLink(resolvedPath, target) { - if (dereference) { - resolvedPath = path.resolve(basePath, resolvedPath); - } - isWritable(target, function (writable) { - if (writable) { - return makeLink(resolvedPath, target); - } - fs.readlink(target, function (err, targetDest) { - if (err) { - return onError(err); - } - if (dereference) { - targetDest = path.resolve(basePath, targetDest); - } - if (targetDest === resolvedPath) { - return cb(); - } - return rmFile(target, function () { - makeLink(resolvedPath, target); - }); - }); - }); - } - - function makeLink(linkPath, target) { - fs.symlink(linkPath, target, function (err) { - if (err) { - return onError(err); - } - return cb(); - }); - } - - function isWritable(path, done) { - fs.lstat(path, function (err) { - if (err) { - if (err.code === 'ENOENT') return done(true); - return done(false); - } - return done(false); - }); - } - - function onError(err) { - if (options.stopOnError) { - return cback(err); - } - else if (!errs && options.errs) { - errs = fs.createWriteStream(options.errs); - } - else if (!errs) { - errs = []; - } - if (typeof errs.write === 'undefined') { - errs.push(err); - } - else { - errs.write(err.stack + '\n\n'); - } - return cb(); - } - - function cb(skipped) { - if (!skipped) running--; - finished++; - if ((started === finished) && (running === 0)) { - if (cback !== undefined ) { - return errs ? cback(errs) : cback(null); - } - } - } -} - - - - -/***/ }), -/* 181 */ -/***/ (function(module, exports, __webpack_require__) { - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var pathModule = __webpack_require__(5); -var isWindows = process.platform === 'win32'; -var fs = __webpack_require__(13); - -// JavaScript implementation of realpath, ported from node pre-v6 - -var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); - -function rethrow() { - // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and - // is fairly slow to generate. - var callback; - if (DEBUG) { - var backtrace = new Error; - callback = debugCallback; - } else - callback = missingCallback; - - return callback; - - function debugCallback(err) { - if (err) { - backtrace.message = err.message; - err = backtrace; - missingCallback(err); - } - } - - function missingCallback(err) { - if (err) { - if (process.throwDeprecation) - throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs - else if (!process.noDeprecation) { - var msg = 'fs: missing callback ' + (err.stack || err.message); - if (process.traceDeprecation) - console.trace(msg); - else - console.error(msg); - } - } - } -} - -function maybeCallback(cb) { - return typeof cb === 'function' ? cb : rethrow(); -} - -var normalize = pathModule.normalize; - -// Regexp that finds the next partion of a (partial) path -// result is [base_with_slash, base], e.g. ['somedir/', 'somedir'] -if (isWindows) { - var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; -} else { - var nextPartRe = /(.*?)(?:[\/]+|$)/g; -} - -// Regex to find the device root, including trailing slash. E.g. 'c:\\'. -if (isWindows) { - var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; -} else { - var splitRootRe = /^[\/]*/; -} - -exports.realpathSync = function realpathSync(p, cache) { - // make p is absolute - p = pathModule.resolve(p); - - if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { - return cache[p]; - } - - var original = p, - seenLinks = {}, - knownHard = {}; - - // current character position in p - var pos; - // the partial path so far, including a trailing slash if any - var current; - // the partial path without a trailing slash (except when pointing at a root) - var base; - // the partial path scanned in the previous round, with slash - var previous; - - start(); - - function start() { - // Skip over roots - var m = splitRootRe.exec(p); - pos = m[0].length; - current = m[0]; - base = m[0]; - previous = ''; - - // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs.lstatSync(base); - knownHard[base] = true; - } - } - - // walk down the path, swapping out linked pathparts for their real - // values - // NB: p.length changes. - while (pos < p.length) { - // find the next part - nextPartRe.lastIndex = pos; - var result = nextPartRe.exec(p); - previous = current; - current += result[0]; - base = previous + result[1]; - pos = nextPartRe.lastIndex; - - // continue if not a symlink - if (knownHard[base] || (cache && cache[base] === base)) { - continue; - } - - var resolvedLink; - if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { - // some known symbolic link. no need to stat again. - resolvedLink = cache[base]; - } else { - var stat = fs.lstatSync(base); - if (!stat.isSymbolicLink()) { - knownHard[base] = true; - if (cache) cache[base] = base; - continue; - } - - // read the link if it wasn't read before - // dev/ino always return 0 on windows, so skip the check. - var linkTarget = null; - if (!isWindows) { - var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); - if (seenLinks.hasOwnProperty(id)) { - linkTarget = seenLinks[id]; - } - } - if (linkTarget === null) { - fs.statSync(base); - linkTarget = fs.readlinkSync(base); - } - resolvedLink = pathModule.resolve(previous, linkTarget); - // track this, if given a cache. - if (cache) cache[base] = resolvedLink; - if (!isWindows) seenLinks[id] = linkTarget; - } - - // resolve the link, then start over - p = pathModule.resolve(resolvedLink, p.slice(pos)); - start(); - } - - if (cache) cache[original] = p; - - return p; -}; - - -exports.realpath = function realpath(p, cache, cb) { - if (typeof cb !== 'function') { - cb = maybeCallback(cache); - cache = null; - } - - // make p is absolute - p = pathModule.resolve(p); - - if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { - return process.nextTick(cb.bind(null, null, cache[p])); - } - - var original = p, - seenLinks = {}, - knownHard = {}; - - // current character position in p - var pos; - // the partial path so far, including a trailing slash if any - var current; - // the partial path without a trailing slash (except when pointing at a root) - var base; - // the partial path scanned in the previous round, with slash - var previous; - - start(); - - function start() { - // Skip over roots - var m = splitRootRe.exec(p); - pos = m[0].length; - current = m[0]; - base = m[0]; - previous = ''; - - // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs.lstat(base, function(err) { - if (err) return cb(err); - knownHard[base] = true; - LOOP(); - }); - } else { - process.nextTick(LOOP); - } - } - - // walk down the path, swapping out linked pathparts for their real - // values - function LOOP() { - // stop if scanned past end of path - if (pos >= p.length) { - if (cache) cache[original] = p; - return cb(null, p); - } - - // find the next part - nextPartRe.lastIndex = pos; - var result = nextPartRe.exec(p); - previous = current; - current += result[0]; - base = previous + result[1]; - pos = nextPartRe.lastIndex; - - // continue if not a symlink - if (knownHard[base] || (cache && cache[base] === base)) { - return process.nextTick(LOOP); - } - - if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { - // known symbolic link. no need to stat again. - return gotResolvedLink(cache[base]); - } - - return fs.lstat(base, gotStat); - } - - function gotStat(err, stat) { - if (err) return cb(err); - - // if not a symlink, skip to the next path part - if (!stat.isSymbolicLink()) { - knownHard[base] = true; - if (cache) cache[base] = base; - return process.nextTick(LOOP); - } - - // stat & read the link if not read before - // call gotTarget as soon as the link target is known - // dev/ino always return 0 on windows, so skip the check. - if (!isWindows) { - var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); - if (seenLinks.hasOwnProperty(id)) { - return gotTarget(null, seenLinks[id], base); - } - } - fs.stat(base, function(err) { - if (err) return cb(err); - - fs.readlink(base, function(err, target) { - if (!isWindows) seenLinks[id] = target; - gotTarget(err, target); - }); - }); - } - - function gotTarget(err, target, base) { - if (err) return cb(err); - - var resolvedLink = pathModule.resolve(previous, target); - if (cache) cache[base] = resolvedLink; - gotResolvedLink(resolvedLink); - } - - function gotResolvedLink(resolvedLink) { - // resolve the link, then start over - p = pathModule.resolve(resolvedLink, p.slice(pos)); - start(); - } -}; - - -/***/ }), -/* 182 */ -/***/ (function(module, exports, __webpack_require__) { - -var concatMap = __webpack_require__(183); -var balanced = __webpack_require__(184); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - // I don't know why Bash 4.3 does this, but it does. - // Anything starting with {} will have the first two bytes preserved - // but *only* at the top level, so {},a}b will not expand to anything, - // but a{},b}c will be expanded to [a}c,abc]. - // One could argue that this is a bug in Bash, but since the goal of - // this module is to match Bash's rules, we escape a leading {} - if (str.substr(0, 2) === '{}') { - str = '\\{\\}' + str.substr(2); - } - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(',') >= 0; - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - - - -/***/ }), -/* 183 */ -/***/ (function(module, exports) { - -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; - - -/***/ }), -/* 184 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; - - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} - - -/***/ }), -/* 185 */ -/***/ (function(module, exports) { - -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} - - -/***/ }), -/* 186 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = globSync -globSync.GlobSync = GlobSync - -var fs = __webpack_require__(13) -var rp = __webpack_require__(117) -var minimatch = __webpack_require__(99) -var Minimatch = minimatch.Minimatch -var Glob = __webpack_require__(48).Glob -var util = __webpack_require__(14) -var path = __webpack_require__(5) -var assert = __webpack_require__(62) -var isAbsolute = __webpack_require__(100) -var common = __webpack_require__(119) -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -function globSync (pattern, options) { - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - return new GlobSync(pattern, options).found -} - -function GlobSync (pattern, options) { - if (!pattern) - throw new Error('must provide pattern') - - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) - - setopts(this, pattern, options) - - if (this.noprocess) - return this - - var n = this.minimatch.set.length - this.matches = new Array(n) - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false) - } - this._finish() -} - -GlobSync.prototype._finish = function () { - assert(this instanceof GlobSync) - if (this.realpath) { - var self = this - this.matches.forEach(function (matchset, index) { - var set = self.matches[index] = Object.create(null) - for (var p in matchset) { - try { - p = self._makeAbs(p) - var real = rp.realpathSync(p, self.realpathCache) - set[real] = true - } catch (er) { - if (er.syscall === 'stat') - set[self._makeAbs(p)] = true - else - throw er - } - } - }) - } - common.finish(this) -} - - -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert(this instanceof GlobSync) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // See if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip processing - if (childrenIgnored(this, read)) - return - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar) -} - - -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { - var entries = this._readdir(abs, inGlobStar) - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix.slice(-1) !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) - newPattern = [prefix, e] - else - newPattern = [e] - this._process(newPattern.concat(remain), index, inGlobStar) - } -} - - -GlobSync.prototype._emitMatch = function (index, e) { - if (isIgnored(this, e)) - return - - var abs = this._makeAbs(e) - - if (this.mark) - e = this._mark(e) - - if (this.absolute) { - e = abs - } - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - - if (this.stat) - this._stat(e) -} - - -GlobSync.prototype._readdirInGlobStar = function (abs) { - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false) - - var entries - var lstat - var stat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - if (er.code === 'ENOENT') { - // lstat failed, doesn't exist - return null - } - } - - var isSym = lstat && lstat.isSymbolicLink() - this.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && lstat && !lstat.isDirectory()) - this.cache[abs] = 'FILE' - else - entries = this._readdir(abs, false) - - return entries -} - -GlobSync.prototype._readdir = function (abs, inGlobStar) { - var entries - - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return null - - if (Array.isArray(c)) - return c - } - - try { - return this._readdirEntries(abs, fs.readdirSync(abs)) - } catch (er) { - this._readdirError(abs, er) - return null - } -} - -GlobSync.prototype._readdirEntries = function (abs, entries) { - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - - // mark and cache dir-ness - return entries -} - -GlobSync.prototype._readdirError = function (f, er) { - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - var abs = this._makeAbs(f) - this.cache[abs] = 'FILE' - if (abs === this.cwdAbs) { - var error = new Error(er.code + ' invalid cwd ' + this.cwd) - error.path = this.cwd - error.code = er.code - throw error - } - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) - throw er - if (!this.silent) - console.error('glob error', er) - break - } -} - -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - - var entries = this._readdir(abs, inGlobStar) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false) - - var len = entries.length - var isSym = this.symlinks[abs] - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true) - } -} - -GlobSync.prototype._processSimple = function (prefix, index) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var exists = this._stat(prefix) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) -} - -// Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return false - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return c - - if (needDir && c === 'FILE') - return false - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (!stat) { - var lstat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { - this.statCache[abs] = false - return false - } - } - - if (lstat && lstat.isSymbolicLink()) { - try { - stat = fs.statSync(abs) - } catch (er) { - stat = lstat - } - } else { - stat = lstat - } - } - - this.statCache[abs] = stat - - var c = true - if (stat) - c = stat.isDirectory() ? 'DIR' : 'FILE' - - this.cache[abs] = this.cache[abs] || c - - if (needDir && c === 'FILE') - return false - - return c -} - -GlobSync.prototype._mark = function (p) { - return common.mark(this, p) -} - -GlobSync.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - - -/***/ }), -/* 187 */ -/***/ (function(module, exports, __webpack_require__) { - -var wrappy = __webpack_require__(120) -var reqs = Object.create(null) -var once = __webpack_require__(71) - -module.exports = wrappy(inflight) - -function inflight (key, cb) { - if (reqs[key]) { - reqs[key].push(cb) - return null - } else { - reqs[key] = [cb] - return makeres(key) - } -} - -function makeres (key) { - return once(function RES () { - var cbs = reqs[key] - var len = cbs.length - var args = slice(arguments) - - // XXX It's somewhat ambiguous whether a new callback added in this - // pass should be queued for later execution if something in the - // list of callbacks throws, or if it should just be discarded. - // However, it's such an edge case that it hardly matters, and either - // choice is likely as surprising as the other. - // As it happens, we do go ahead and schedule it for later execution. - try { - for (var i = 0; i < len; i++) { - cbs[i].apply(null, args) - } - } finally { - if (cbs.length > len) { - // added more in the interim. - // de-zalgo, just in case, but don't call again. - cbs.splice(0, len) - process.nextTick(function () { - RES.apply(null, args) - }) - } else { - delete reqs[key] - } - } - }) -} - -function slice (args) { - var length = args.length - var array = [] - - for (var i = 0; i < length; i++) array[i] = args[i] - return array -} - - -/***/ }), -/* 188 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -const path = __webpack_require__(5); -const loadJsonFile = __webpack_require__(189); -const pathType = __webpack_require__(122); - -module.exports = (fp, opts) => { - if (typeof fp !== 'string') { - opts = fp; - fp = '.'; - } - - opts = opts || {}; - - return pathType.dir(fp) - .then(isDir => { - if (isDir) { - fp = path.join(fp, 'package.json'); - } - - return loadJsonFile(fp); - }) - .then(x => { - if (opts.normalize !== false) { - __webpack_require__(123)(x); - } - - return x; - }); -}; - -module.exports.sync = (fp, opts) => { - if (typeof fp !== 'string') { - opts = fp; - fp = '.'; - } - - opts = opts || {}; - fp = pathType.dirSync(fp) ? path.join(fp, 'package.json') : fp; - - const x = loadJsonFile.sync(fp); - - if (opts.normalize !== false) { - __webpack_require__(123)(x); - } - - return x; -}; - - -/***/ }), -/* 189 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -const path = __webpack_require__(5); -const fs = __webpack_require__(61); -const stripBom = __webpack_require__(190); -const parseJson = __webpack_require__(191); -const pify = __webpack_require__(195); - -const parse = (data, fp) => parseJson(stripBom(data), path.relative('.', fp)); - -module.exports = fp => pify(fs.readFile)(fp, 'utf8').then(data => parse(data, fp)); -module.exports.sync = fp => parse(fs.readFileSync(fp, 'utf8'), fp); - - -/***/ }), -/* 190 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -module.exports = x => { - if (typeof x !== 'string') { - throw new TypeError('Expected a string, got ' + typeof x); - } - - // Catches EFBBBF (UTF-8 BOM) because the buffer-to-string - // conversion translates it to FEFF (UTF-16 BOM) - if (x.charCodeAt(0) === 0xFEFF) { - return x.slice(1); - } - - return x; -}; - - -/***/ }), -/* 191 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -const errorEx = __webpack_require__(192); -const fallback = __webpack_require__(194); - -const JSONError = errorEx('JSONError', { - fileName: errorEx.append('in %s') -}); - -module.exports = (input, reviver, filename) => { - if (typeof reviver === 'string') { - filename = reviver; - reviver = null; - } - - try { - try { - return JSON.parse(input, reviver); - } catch (err) { - fallback(input, reviver); - - throw err; - } - } catch (err) { - err.message = err.message.replace(/\n/g, ''); - - const jsonErr = new JSONError(err); - if (filename) { - jsonErr.fileName = filename; - } - - throw jsonErr; - } -}; - - -/***/ }), -/* 192 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var util = __webpack_require__(14); -var isArrayish = __webpack_require__(193); - -var errorEx = function errorEx(name, properties) { - if (!name || name.constructor !== String) { - properties = name || {}; - name = Error.name; - } - - var errorExError = function ErrorEXError(message) { - if (!this) { - return new ErrorEXError(message); - } - - message = message instanceof Error - ? message.message - : (message || this.message); - - Error.call(this, message); - Error.captureStackTrace(this, errorExError); - - this.name = name; - - Object.defineProperty(this, 'message', { - configurable: true, - enumerable: false, - get: function () { - var newMessage = message.split(/\r?\n/g); - - for (var key in properties) { - if (!properties.hasOwnProperty(key)) { - continue; - } - - var modifier = properties[key]; - - if ('message' in modifier) { - newMessage = modifier.message(this[key], newMessage) || newMessage; - if (!isArrayish(newMessage)) { - newMessage = [newMessage]; - } - } - } - - return newMessage.join('\n'); - }, - set: function (v) { - message = v; - } - }); - - var stackDescriptor = Object.getOwnPropertyDescriptor(this, 'stack'); - var stackGetter = stackDescriptor.get; - var stackValue = stackDescriptor.value; - delete stackDescriptor.value; - delete stackDescriptor.writable; - - stackDescriptor.get = function () { - var stack = (stackGetter) - ? stackGetter.call(this).split(/\r?\n+/g) - : stackValue.split(/\r?\n+/g); - - // starting in Node 7, the stack builder caches the message. - // just replace it. - stack[0] = this.name + ': ' + this.message; - - var lineCount = 1; - for (var key in properties) { - if (!properties.hasOwnProperty(key)) { - continue; - } - - var modifier = properties[key]; - - if ('line' in modifier) { - var line = modifier.line(this[key]); - if (line) { - stack.splice(lineCount++, 0, ' ' + line); - } - } - - if ('stack' in modifier) { - modifier.stack(this[key], stack); - } - } - - return stack.join('\n'); - }; - - Object.defineProperty(this, 'stack', stackDescriptor); - }; - - if (Object.setPrototypeOf) { - Object.setPrototypeOf(errorExError.prototype, Error.prototype); - Object.setPrototypeOf(errorExError, Error); - } else { - util.inherits(errorExError, Error); - } - - return errorExError; -}; - -errorEx.append = function (str, def) { - return { - message: function (v, message) { - v = v || def; - - if (v) { - message[0] += ' ' + str.replace('%s', v.toString()); - } - - return message; - } - }; -}; - -errorEx.line = function (str, def) { - return { - line: function (v) { - v = v || def; - - if (v) { - return str.replace('%s', v.toString()); - } - - return null; - } - }; -}; - -module.exports = errorEx; - - -/***/ }), -/* 193 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = function isArrayish(obj) { - if (!obj) { - return false; - } - - return obj instanceof Array || Array.isArray(obj) || - (obj.length >= 0 && obj.splice instanceof Function); -}; - - -/***/ }), -/* 194 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = parseJson -function parseJson (txt, reviver, context) { - context = context || 20 - try { - return JSON.parse(txt, reviver) - } catch (e) { - const syntaxErr = e.message.match(/^Unexpected token.*position\s+(\d+)/i) - const errIdx = syntaxErr - ? +syntaxErr[1] - : e.message.match(/^Unexpected end of JSON.*/i) - ? txt.length - 1 - : null - if (errIdx != null) { - const start = errIdx <= context - ? 0 - : errIdx - context - const end = errIdx + context >= txt.length - ? txt.length - : errIdx + context - e.message += ` while parsing near '${ - start === 0 ? '' : '...' - }${txt.slice(start, end)}${ - end === txt.length ? '' : '...' - }'` - } else { - e.message += ` while parsing '${txt.slice(0, context * 2)}'` - } - throw e - } -} - - -/***/ }), -/* 195 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -const processFn = (fn, opts) => function () { - const P = opts.promiseModule; - const args = new Array(arguments.length); - - for (let i = 0; i < arguments.length; i++) { - args[i] = arguments[i]; - } - - return new P((resolve, reject) => { - if (opts.errorFirst) { - args.push(function (err, result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); - - for (let i = 1; i < arguments.length; i++) { - results[i - 1] = arguments[i]; - } - - if (err) { - results.unshift(err); - reject(results); - } else { - resolve(results); - } - } else if (err) { - reject(err); - } else { - resolve(result); - } - }); - } else { - args.push(function (result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); - - for (let i = 0; i < arguments.length; i++) { - results[i] = arguments[i]; - } - - resolve(results); - } else { - resolve(result); - } - }); - } - - fn.apply(this, args); - }); -}; - -module.exports = (obj, opts) => { - opts = Object.assign({ - exclude: [/.+(Sync|Stream)$/], - errorFirst: true, - promiseModule: Promise - }, opts); - - const filter = key => { - const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); - return opts.include ? opts.include.some(match) : !opts.exclude.some(match); - }; - - let ret; - if (typeof obj === 'function') { - ret = function () { - if (opts.excludeMain) { - return obj.apply(this, arguments); - } - - return processFn(obj, opts).apply(this, arguments); - }; - } else { - ret = Object.create(Object.getPrototypeOf(obj)); - } - - for (const key in obj) { // eslint-disable-line guard-for-in - const x = obj[key]; - ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; - } - - return ret; -}; - - -/***/ }), -/* 196 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -const processFn = (fn, opts) => function () { - const P = opts.promiseModule; - const args = new Array(arguments.length); - - for (let i = 0; i < arguments.length; i++) { - args[i] = arguments[i]; - } - - return new P((resolve, reject) => { - if (opts.errorFirst) { - args.push(function (err, result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); - - for (let i = 1; i < arguments.length; i++) { - results[i - 1] = arguments[i]; - } - - if (err) { - results.unshift(err); - reject(results); - } else { - resolve(results); - } - } else if (err) { - reject(err); - } else { - resolve(result); - } - }); - } else { - args.push(function (result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); - - for (let i = 0; i < arguments.length; i++) { - results[i] = arguments[i]; - } - - resolve(results); - } else { - resolve(result); - } - }); - } - - fn.apply(this, args); - }); -}; - -module.exports = (obj, opts) => { - opts = Object.assign({ - exclude: [/.+(Sync|Stream)$/], - errorFirst: true, - promiseModule: Promise - }, opts); - - const filter = key => { - const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); - return opts.include ? opts.include.some(match) : !opts.exclude.some(match); - }; - - let ret; - if (typeof obj === 'function') { - ret = function () { - if (opts.excludeMain) { - return obj.apply(this, arguments); - } - - return processFn(obj, opts).apply(this, arguments); - }; - } else { - ret = Object.create(Object.getPrototypeOf(obj)); - } - - for (const key in obj) { // eslint-disable-line guard-for-in - const x = obj[key]; - ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; - } - - return ret; -}; - - -/***/ }), -/* 197 */ -/***/ (function(module, exports, __webpack_require__) { - -var semver = __webpack_require__(198) -var validateLicense = __webpack_require__(199); -var hostedGitInfo = __webpack_require__(204) -var isBuiltinModule = __webpack_require__(206) -var depTypes = ["dependencies","devDependencies","optionalDependencies"] -var extractDescription = __webpack_require__(208) -var url = __webpack_require__(102) -var typos = __webpack_require__(209) - -var fixer = module.exports = { - // default warning function - warn: function() {}, - - fixRepositoryField: function(data) { - if (data.repositories) { - this.warn("repositories"); - data.repository = data.repositories[0] - } - if (!data.repository) return this.warn("missingRepository") - if (typeof data.repository === "string") { - data.repository = { - type: "git", - url: data.repository - } - } - var r = data.repository.url || "" - if (r) { - var hosted = hostedGitInfo.fromUrl(r) - if (hosted) { - r = data.repository.url - = hosted.getDefaultRepresentation() == "shortcut" ? hosted.https() : hosted.toString() - } - } - - if (r.match(/github.com\/[^\/]+\/[^\/]+\.git\.git$/)) { - this.warn("brokenGitUrl", r) - } - } - -, fixTypos: function(data) { - Object.keys(typos.topLevel).forEach(function (d) { - if (data.hasOwnProperty(d)) { - this.warn("typo", d, typos.topLevel[d]) - } - }, this) - } - -, fixScriptsField: function(data) { - if (!data.scripts) return - if (typeof data.scripts !== "object") { - this.warn("nonObjectScripts") - delete data.scripts - return - } - Object.keys(data.scripts).forEach(function (k) { - if (typeof data.scripts[k] !== "string") { - this.warn("nonStringScript") - delete data.scripts[k] - } else if (typos.script[k] && !data.scripts[typos.script[k]]) { - this.warn("typo", k, typos.script[k], "scripts") - } - }, this) - } - -, fixFilesField: function(data) { - var files = data.files - if (files && !Array.isArray(files)) { - this.warn("nonArrayFiles") - delete data.files - } else if (data.files) { - data.files = data.files.filter(function(file) { - if (!file || typeof file !== "string") { - this.warn("invalidFilename", file) - return false - } else { - return true - } - }, this) - } - } - -, fixBinField: function(data) { - if (!data.bin) return; - if (typeof data.bin === "string") { - var b = {} - var match - if (match = data.name.match(/^@[^/]+[/](.*)$/)) { - b[match[1]] = data.bin - } else { - b[data.name] = data.bin - } - data.bin = b - } - } - -, fixManField: function(data) { - if (!data.man) return; - if (typeof data.man === "string") { - data.man = [ data.man ] - } - } -, fixBundleDependenciesField: function(data) { - var bdd = "bundledDependencies" - var bd = "bundleDependencies" - if (data[bdd] && !data[bd]) { - data[bd] = data[bdd] - delete data[bdd] - } - if (data[bd] && !Array.isArray(data[bd])) { - this.warn("nonArrayBundleDependencies") - delete data[bd] - } else if (data[bd]) { - data[bd] = data[bd].filter(function(bd) { - if (!bd || typeof bd !== 'string') { - this.warn("nonStringBundleDependency", bd) - return false - } else { - if (!data.dependencies) { - data.dependencies = {} - } - if (!data.dependencies.hasOwnProperty(bd)) { - this.warn("nonDependencyBundleDependency", bd) - data.dependencies[bd] = "*" - } - return true - } - }, this) - } - } - -, fixDependencies: function(data, strict) { - var loose = !strict - objectifyDeps(data, this.warn) - addOptionalDepsToDeps(data, this.warn) - this.fixBundleDependenciesField(data) - - ;['dependencies','devDependencies'].forEach(function(deps) { - if (!(deps in data)) return - if (!data[deps] || typeof data[deps] !== "object") { - this.warn("nonObjectDependencies", deps) - delete data[deps] - return - } - Object.keys(data[deps]).forEach(function (d) { - var r = data[deps][d] - if (typeof r !== 'string') { - this.warn("nonStringDependency", d, JSON.stringify(r)) - delete data[deps][d] - } - var hosted = hostedGitInfo.fromUrl(data[deps][d]) - if (hosted) data[deps][d] = hosted.toString() - }, this) - }, this) - } - -, fixModulesField: function (data) { - if (data.modules) { - this.warn("deprecatedModules") - delete data.modules - } - } - -, fixKeywordsField: function (data) { - if (typeof data.keywords === "string") { - data.keywords = data.keywords.split(/,\s+/) - } - if (data.keywords && !Array.isArray(data.keywords)) { - delete data.keywords - this.warn("nonArrayKeywords") - } else if (data.keywords) { - data.keywords = data.keywords.filter(function(kw) { - if (typeof kw !== "string" || !kw) { - this.warn("nonStringKeyword"); - return false - } else { - return true - } - }, this) - } - } - -, fixVersionField: function(data, strict) { - // allow "loose" semver 1.0 versions in non-strict mode - // enforce strict semver 2.0 compliance in strict mode - var loose = !strict - if (!data.version) { - data.version = "" - return true - } - if (!semver.valid(data.version, loose)) { - throw new Error('Invalid version: "'+ data.version + '"') - } - data.version = semver.clean(data.version, loose) - return true - } - -, fixPeople: function(data) { - modifyPeople(data, unParsePerson) - modifyPeople(data, parsePerson) - } - -, fixNameField: function(data, options) { - if (typeof options === "boolean") options = {strict: options} - else if (typeof options === "undefined") options = {} - var strict = options.strict - if (!data.name && !strict) { - data.name = "" - return - } - if (typeof data.name !== "string") { - throw new Error("name field must be a string.") - } - if (!strict) - data.name = data.name.trim() - ensureValidName(data.name, strict, options.allowLegacyCase) - if (isBuiltinModule(data.name)) - this.warn("conflictingName", data.name) - } - - -, fixDescriptionField: function (data) { - if (data.description && typeof data.description !== 'string') { - this.warn("nonStringDescription") - delete data.description - } - if (data.readme && !data.description) - data.description = extractDescription(data.readme) - if(data.description === undefined) delete data.description; - if (!data.description) this.warn("missingDescription") - } - -, fixReadmeField: function (data) { - if (!data.readme) { - this.warn("missingReadme") - data.readme = "ERROR: No README data found!" - } - } - -, fixBugsField: function(data) { - if (!data.bugs && data.repository && data.repository.url) { - var hosted = hostedGitInfo.fromUrl(data.repository.url) - if(hosted && hosted.bugs()) { - data.bugs = {url: hosted.bugs()} - } - } - else if(data.bugs) { - var emailRe = /^.+@.*\..+$/ - if(typeof data.bugs == "string") { - if(emailRe.test(data.bugs)) - data.bugs = {email:data.bugs} - else if(url.parse(data.bugs).protocol) - data.bugs = {url: data.bugs} - else - this.warn("nonEmailUrlBugsString") - } - else { - bugsTypos(data.bugs, this.warn) - var oldBugs = data.bugs - data.bugs = {} - if(oldBugs.url) { - if(typeof(oldBugs.url) == "string" && url.parse(oldBugs.url).protocol) - data.bugs.url = oldBugs.url - else - this.warn("nonUrlBugsUrlField") - } - if(oldBugs.email) { - if(typeof(oldBugs.email) == "string" && emailRe.test(oldBugs.email)) - data.bugs.email = oldBugs.email - else - this.warn("nonEmailBugsEmailField") - } - } - if(!data.bugs.email && !data.bugs.url) { - delete data.bugs - this.warn("emptyNormalizedBugs") - } - } - } - -, fixHomepageField: function(data) { - if (!data.homepage && data.repository && data.repository.url) { - var hosted = hostedGitInfo.fromUrl(data.repository.url) - if (hosted && hosted.docs()) data.homepage = hosted.docs() - } - if (!data.homepage) return - - if(typeof data.homepage !== "string") { - this.warn("nonUrlHomepage") - return delete data.homepage - } - if(!url.parse(data.homepage).protocol) { - data.homepage = "http://" + data.homepage - } - } - -, fixLicenseField: function(data) { - if (!data.license) { - return this.warn("missingLicense") - } else{ - if ( - typeof(data.license) !== 'string' || - data.license.length < 1 - ) { - this.warn("invalidLicense") - } else { - if (!validateLicense(data.license).validForNewPackages) - this.warn("invalidLicense") - } - } - } -} - -function isValidScopedPackageName(spec) { - if (spec.charAt(0) !== '@') return false - - var rest = spec.slice(1).split('/') - if (rest.length !== 2) return false - - return rest[0] && rest[1] && - rest[0] === encodeURIComponent(rest[0]) && - rest[1] === encodeURIComponent(rest[1]) -} - -function isCorrectlyEncodedName(spec) { - return !spec.match(/[\/@\s\+%:]/) && - spec === encodeURIComponent(spec) -} - -function ensureValidName (name, strict, allowLegacyCase) { - if (name.charAt(0) === "." || - !(isValidScopedPackageName(name) || isCorrectlyEncodedName(name)) || - (strict && (!allowLegacyCase) && name !== name.toLowerCase()) || - name.toLowerCase() === "node_modules" || - name.toLowerCase() === "favicon.ico") { - throw new Error("Invalid name: " + JSON.stringify(name)) - } -} - -function modifyPeople (data, fn) { - if (data.author) data.author = fn(data.author) - ;["maintainers", "contributors"].forEach(function (set) { - if (!Array.isArray(data[set])) return; - data[set] = data[set].map(fn) - }) - return data -} - -function unParsePerson (person) { - if (typeof person === "string") return person - var name = person.name || "" - var u = person.url || person.web - var url = u ? (" ("+u+")") : "" - var e = person.email || person.mail - var email = e ? (" <"+e+">") : "" - return name+email+url -} - -function parsePerson (person) { - if (typeof person !== "string") return person - var name = person.match(/^([^\(<]+)/) - var url = person.match(/\(([^\)]+)\)/) - var email = person.match(/<([^>]+)>/) - var obj = {} - if (name && name[0].trim()) obj.name = name[0].trim() - if (email) obj.email = email[1]; - if (url) obj.url = url[1]; - return obj -} - -function addOptionalDepsToDeps (data, warn) { - var o = data.optionalDependencies - if (!o) return; - var d = data.dependencies || {} - Object.keys(o).forEach(function (k) { - d[k] = o[k] - }) - data.dependencies = d -} - -function depObjectify (deps, type, warn) { - if (!deps) return {} - if (typeof deps === "string") { - deps = deps.trim().split(/[\n\r\s\t ,]+/) - } - if (!Array.isArray(deps)) return deps - warn("deprecatedArrayDependencies", type) - var o = {} - deps.filter(function (d) { - return typeof d === "string" - }).forEach(function(d) { - d = d.trim().split(/(:?[@\s><=])/) - var dn = d.shift() - var dv = d.join("") - dv = dv.trim() - dv = dv.replace(/^@/, "") - o[dn] = dv - }) - return o -} - -function objectifyDeps (data, warn) { - depTypes.forEach(function (type) { - if (!data[type]) return; - data[type] = depObjectify(data[type], type, warn) - }) -} - -function bugsTypos(bugs, warn) { - if (!bugs) return - Object.keys(bugs).forEach(function (k) { - if (typos.bugs[k]) { - warn("typo", k, typos.bugs[k], "bugs") - bugs[typos.bugs[k]] = bugs[k] - delete bugs[k] - } - }) -} - - -/***/ }), -/* 198 */ -/***/ (function(module, exports) { - -exports = module.exports = SemVer; - -// The debug function is excluded entirely from the minified version. -/* nomin */ var debug; -/* nomin */ if (typeof process === 'object' && - /* nomin */ process.env && - /* nomin */ process.env.NODE_DEBUG && - /* nomin */ /\bsemver\b/i.test(process.env.NODE_DEBUG)) - /* nomin */ debug = function() { - /* nomin */ var args = Array.prototype.slice.call(arguments, 0); - /* nomin */ args.unshift('SEMVER'); - /* nomin */ console.log.apply(console, args); - /* nomin */ }; -/* nomin */ else - /* nomin */ debug = function() {}; - -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. -exports.SEMVER_SPEC_VERSION = '2.0.0'; - -var MAX_LENGTH = 256; -var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; - -// The actual regexps go on exports.re -var re = exports.re = []; -var src = exports.src = []; -var R = 0; - -// The following Regular Expressions can be used for tokenizing, -// validating, and parsing SemVer version strings. - -// ## Numeric Identifier -// A single `0`, or a non-zero digit followed by zero or more digits. - -var NUMERICIDENTIFIER = R++; -src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'; -var NUMERICIDENTIFIERLOOSE = R++; -src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'; - - -// ## Non-numeric Identifier -// Zero or more digits, followed by a letter or hyphen, and then zero or -// more letters, digits, or hyphens. - -var NONNUMERICIDENTIFIER = R++; -src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'; - - -// ## Main Version -// Three dot-separated numeric identifiers. - -var MAINVERSION = R++; -src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' + - '(' + src[NUMERICIDENTIFIER] + ')\\.' + - '(' + src[NUMERICIDENTIFIER] + ')'; - -var MAINVERSIONLOOSE = R++; -src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[NUMERICIDENTIFIERLOOSE] + ')'; - -// ## Pre-release Version Identifier -// A numeric identifier, or a non-numeric identifier. - -var PRERELEASEIDENTIFIER = R++; -src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] + - '|' + src[NONNUMERICIDENTIFIER] + ')'; - -var PRERELEASEIDENTIFIERLOOSE = R++; -src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] + - '|' + src[NONNUMERICIDENTIFIER] + ')'; - - -// ## Pre-release Version -// Hyphen, followed by one or more dot-separated pre-release version -// identifiers. - -var PRERELEASE = R++; -src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] + - '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'; - -var PRERELEASELOOSE = R++; -src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] + - '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'; - -// ## Build Metadata Identifier -// Any combination of digits, letters, or hyphens. - -var BUILDIDENTIFIER = R++; -src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'; - -// ## Build Metadata -// Plus sign, followed by one or more period-separated build metadata -// identifiers. - -var BUILD = R++; -src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] + - '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'; - - -// ## Full Version String -// A main version, followed optionally by a pre-release version and -// build metadata. - -// Note that the only major, minor, patch, and pre-release sections of -// the version string are capturing groups. The build metadata is not a -// capturing group, because it should not ever be used in version -// comparison. - -var FULL = R++; -var FULLPLAIN = 'v?' + src[MAINVERSION] + - src[PRERELEASE] + '?' + - src[BUILD] + '?'; - -src[FULL] = '^' + FULLPLAIN + '$'; - -// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. -// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty -// common in the npm registry. -var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] + - src[PRERELEASELOOSE] + '?' + - src[BUILD] + '?'; - -var LOOSE = R++; -src[LOOSE] = '^' + LOOSEPLAIN + '$'; - -var GTLT = R++; -src[GTLT] = '((?:<|>)?=?)'; - -// Something like "2.*" or "1.2.x". -// Note that "x.x" is a valid xRange identifer, meaning "any version" -// Only the first item is strictly required. -var XRANGEIDENTIFIERLOOSE = R++; -src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'; -var XRANGEIDENTIFIER = R++; -src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'; - -var XRANGEPLAIN = R++; -src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + - '(?:' + src[PRERELEASE] + ')?' + - src[BUILD] + '?' + - ')?)?'; - -var XRANGEPLAINLOOSE = R++; -src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:' + src[PRERELEASELOOSE] + ')?' + - src[BUILD] + '?' + - ')?)?'; - -var XRANGE = R++; -src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'; -var XRANGELOOSE = R++; -src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'; - -// Tilde ranges. -// Meaning is "reasonably at or greater than" -var LONETILDE = R++; -src[LONETILDE] = '(?:~>?)'; - -var TILDETRIM = R++; -src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'; -re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g'); -var tildeTrimReplace = '$1~'; - -var TILDE = R++; -src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'; -var TILDELOOSE = R++; -src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'; - -// Caret ranges. -// Meaning is "at least and backwards compatible with" -var LONECARET = R++; -src[LONECARET] = '(?:\\^)'; - -var CARETTRIM = R++; -src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'; -re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g'); -var caretTrimReplace = '$1^'; - -var CARET = R++; -src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'; -var CARETLOOSE = R++; -src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'; - -// A simple gt/lt/eq thing, or just "" to indicate "any version" -var COMPARATORLOOSE = R++; -src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'; -var COMPARATOR = R++; -src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'; - - -// An expression to strip any whitespace between the gtlt and the thing -// it modifies, so that `> 1.2.3` ==> `>1.2.3` -var COMPARATORTRIM = R++; -src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + - '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'; - -// this one has to use the /g flag -re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g'); -var comparatorTrimReplace = '$1$2$3'; - - -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. -var HYPHENRANGE = R++; -src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + - '\\s+-\\s+' + - '(' + src[XRANGEPLAIN] + ')' + - '\\s*$'; - -var HYPHENRANGELOOSE = R++; -src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + - '\\s+-\\s+' + - '(' + src[XRANGEPLAINLOOSE] + ')' + - '\\s*$'; - -// Star ranges basically just allow anything at all. -var STAR = R++; -src[STAR] = '(<|>)?=?\\s*\\*'; - -// Compile to actual regexp objects. -// All are flag-free, unless they were created above with a flag. -for (var i = 0; i < R; i++) { - debug(i, src[i]); - if (!re[i]) - re[i] = new RegExp(src[i]); -} - -exports.parse = parse; -function parse(version, loose) { - if (version instanceof SemVer) - return version; - - if (typeof version !== 'string') - return null; - - if (version.length > MAX_LENGTH) - return null; - - var r = loose ? re[LOOSE] : re[FULL]; - if (!r.test(version)) - return null; - - try { - return new SemVer(version, loose); - } catch (er) { - return null; - } -} - -exports.valid = valid; -function valid(version, loose) { - var v = parse(version, loose); - return v ? v.version : null; -} - - -exports.clean = clean; -function clean(version, loose) { - var s = parse(version.trim().replace(/^[=v]+/, ''), loose); - return s ? s.version : null; -} - -exports.SemVer = SemVer; - -function SemVer(version, loose) { - if (version instanceof SemVer) { - if (version.loose === loose) - return version; - else - version = version.version; - } else if (typeof version !== 'string') { - throw new TypeError('Invalid Version: ' + version); - } - - if (version.length > MAX_LENGTH) - throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') - - if (!(this instanceof SemVer)) - return new SemVer(version, loose); - - debug('SemVer', version, loose); - this.loose = loose; - var m = version.trim().match(loose ? re[LOOSE] : re[FULL]); - - if (!m) - throw new TypeError('Invalid Version: ' + version); - - this.raw = version; - - // these are actually numbers - this.major = +m[1]; - this.minor = +m[2]; - this.patch = +m[3]; - - if (this.major > MAX_SAFE_INTEGER || this.major < 0) - throw new TypeError('Invalid major version') - - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) - throw new TypeError('Invalid minor version') - - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) - throw new TypeError('Invalid patch version') - - // numberify any prerelease numeric ids - if (!m[4]) - this.prerelease = []; - else - this.prerelease = m[4].split('.').map(function(id) { - if (/^[0-9]+$/.test(id)) { - var num = +id; - if (num >= 0 && num < MAX_SAFE_INTEGER) - return num; - } - return id; - }); - - this.build = m[5] ? m[5].split('.') : []; - this.format(); -} - -SemVer.prototype.format = function() { - this.version = this.major + '.' + this.minor + '.' + this.patch; - if (this.prerelease.length) - this.version += '-' + this.prerelease.join('.'); - return this.version; -}; - -SemVer.prototype.toString = function() { - return this.version; -}; - -SemVer.prototype.compare = function(other) { - debug('SemVer.compare', this.version, this.loose, other); - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - return this.compareMain(other) || this.comparePre(other); -}; - -SemVer.prototype.compareMain = function(other) { - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - return compareIdentifiers(this.major, other.major) || - compareIdentifiers(this.minor, other.minor) || - compareIdentifiers(this.patch, other.patch); -}; - -SemVer.prototype.comparePre = function(other) { - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - // NOT having a prerelease is > having one - if (this.prerelease.length && !other.prerelease.length) - return -1; - else if (!this.prerelease.length && other.prerelease.length) - return 1; - else if (!this.prerelease.length && !other.prerelease.length) - return 0; - - var i = 0; - do { - var a = this.prerelease[i]; - var b = other.prerelease[i]; - debug('prerelease compare', i, a, b); - if (a === undefined && b === undefined) - return 0; - else if (b === undefined) - return 1; - else if (a === undefined) - return -1; - else if (a === b) - continue; - else - return compareIdentifiers(a, b); - } while (++i); -}; - -// preminor will bump the version up to the next minor release, and immediately -// down to pre-release. premajor and prepatch work the same way. -SemVer.prototype.inc = function(release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc('pre', identifier); - break; - case 'preminor': - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc('pre', identifier); - break; - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0; - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case 'prerelease': - if (this.prerelease.length === 0) - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) - this.major++; - this.minor = 0; - this.patch = 0; - this.prerelease = []; - break; - case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) - this.minor++; - this.patch = 0; - this.prerelease = []; - break; - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) - this.patch++; - this.prerelease = []; - break; - // This probably shouldn't be used publicly. - // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. - case 'pre': - if (this.prerelease.length === 0) - this.prerelease = [0]; - else { - var i = this.prerelease.length; - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++; - i = -2; - } - } - if (i === -1) // didn't increment anything - this.prerelease.push(0); - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) - this.prerelease = [identifier, 0]; - } else - this.prerelease = [identifier, 0]; - } - break; - - default: - throw new Error('invalid increment argument: ' + release); - } - this.format(); - this.raw = this.version; - return this; -}; - -exports.inc = inc; -function inc(version, release, loose, identifier) { - if (typeof(loose) === 'string') { - identifier = loose; - loose = undefined; - } - - try { - return new SemVer(version, loose).inc(release, identifier).version; - } catch (er) { - return null; - } -} - -exports.diff = diff; -function diff(version1, version2) { - if (eq(version1, version2)) { - return null; - } else { - var v1 = parse(version1); - var v2 = parse(version2); - if (v1.prerelease.length || v2.prerelease.length) { - for (var key in v1) { - if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) { - return 'pre'+key; - } - } - } - return 'prerelease'; - } - for (var key in v1) { - if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) { - return key; - } - } - } - } -} - -exports.compareIdentifiers = compareIdentifiers; - -var numeric = /^[0-9]+$/; -function compareIdentifiers(a, b) { - var anum = numeric.test(a); - var bnum = numeric.test(b); - - if (anum && bnum) { - a = +a; - b = +b; - } - - return (anum && !bnum) ? -1 : - (bnum && !anum) ? 1 : - a < b ? -1 : - a > b ? 1 : - 0; -} - -exports.rcompareIdentifiers = rcompareIdentifiers; -function rcompareIdentifiers(a, b) { - return compareIdentifiers(b, a); -} - -exports.major = major; -function major(a, loose) { - return new SemVer(a, loose).major; -} - -exports.minor = minor; -function minor(a, loose) { - return new SemVer(a, loose).minor; -} - -exports.patch = patch; -function patch(a, loose) { - return new SemVer(a, loose).patch; -} - -exports.compare = compare; -function compare(a, b, loose) { - return new SemVer(a, loose).compare(new SemVer(b, loose)); -} - -exports.compareLoose = compareLoose; -function compareLoose(a, b) { - return compare(a, b, true); -} - -exports.rcompare = rcompare; -function rcompare(a, b, loose) { - return compare(b, a, loose); -} - -exports.sort = sort; -function sort(list, loose) { - return list.sort(function(a, b) { - return exports.compare(a, b, loose); - }); -} - -exports.rsort = rsort; -function rsort(list, loose) { - return list.sort(function(a, b) { - return exports.rcompare(a, b, loose); - }); -} - -exports.gt = gt; -function gt(a, b, loose) { - return compare(a, b, loose) > 0; -} - -exports.lt = lt; -function lt(a, b, loose) { - return compare(a, b, loose) < 0; -} - -exports.eq = eq; -function eq(a, b, loose) { - return compare(a, b, loose) === 0; -} - -exports.neq = neq; -function neq(a, b, loose) { - return compare(a, b, loose) !== 0; -} - -exports.gte = gte; -function gte(a, b, loose) { - return compare(a, b, loose) >= 0; -} - -exports.lte = lte; -function lte(a, b, loose) { - return compare(a, b, loose) <= 0; -} - -exports.cmp = cmp; -function cmp(a, op, b, loose) { - var ret; - switch (op) { - case '===': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - ret = a === b; - break; - case '!==': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - ret = a !== b; - break; - case '': case '=': case '==': ret = eq(a, b, loose); break; - case '!=': ret = neq(a, b, loose); break; - case '>': ret = gt(a, b, loose); break; - case '>=': ret = gte(a, b, loose); break; - case '<': ret = lt(a, b, loose); break; - case '<=': ret = lte(a, b, loose); break; - default: throw new TypeError('Invalid operator: ' + op); - } - return ret; -} - -exports.Comparator = Comparator; -function Comparator(comp, loose) { - if (comp instanceof Comparator) { - if (comp.loose === loose) - return comp; - else - comp = comp.value; - } - - if (!(this instanceof Comparator)) - return new Comparator(comp, loose); - - debug('comparator', comp, loose); - this.loose = loose; - this.parse(comp); - - if (this.semver === ANY) - this.value = ''; - else - this.value = this.operator + this.semver.version; - - debug('comp', this); -} - -var ANY = {}; -Comparator.prototype.parse = function(comp) { - var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var m = comp.match(r); - - if (!m) - throw new TypeError('Invalid comparator: ' + comp); - - this.operator = m[1]; - if (this.operator === '=') - this.operator = ''; - - // if it literally is just '>' or '' then allow anything. - if (!m[2]) - this.semver = ANY; - else - this.semver = new SemVer(m[2], this.loose); -}; - -Comparator.prototype.toString = function() { - return this.value; -}; - -Comparator.prototype.test = function(version) { - debug('Comparator.test', version, this.loose); - - if (this.semver === ANY) - return true; - - if (typeof version === 'string') - version = new SemVer(version, this.loose); - - return cmp(version, this.operator, this.semver, this.loose); -}; - -Comparator.prototype.intersects = function(comp, loose) { - if (!(comp instanceof Comparator)) { - throw new TypeError('a Comparator is required'); - } - - var rangeTmp; - - if (this.operator === '') { - rangeTmp = new Range(comp.value, loose); - return satisfies(this.value, rangeTmp, loose); - } else if (comp.operator === '') { - rangeTmp = new Range(this.value, loose); - return satisfies(comp.semver, rangeTmp, loose); - } - - var sameDirectionIncreasing = - (this.operator === '>=' || this.operator === '>') && - (comp.operator === '>=' || comp.operator === '>'); - var sameDirectionDecreasing = - (this.operator === '<=' || this.operator === '<') && - (comp.operator === '<=' || comp.operator === '<'); - var sameSemVer = this.semver.version === comp.semver.version; - var differentDirectionsInclusive = - (this.operator === '>=' || this.operator === '<=') && - (comp.operator === '>=' || comp.operator === '<='); - var oppositeDirectionsLessThan = - cmp(this.semver, '<', comp.semver, loose) && - ((this.operator === '>=' || this.operator === '>') && - (comp.operator === '<=' || comp.operator === '<')); - var oppositeDirectionsGreaterThan = - cmp(this.semver, '>', comp.semver, loose) && - ((this.operator === '<=' || this.operator === '<') && - (comp.operator === '>=' || comp.operator === '>')); - - return sameDirectionIncreasing || sameDirectionDecreasing || - (sameSemVer && differentDirectionsInclusive) || - oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; -}; - - -exports.Range = Range; -function Range(range, loose) { - if (range instanceof Range) { - if (range.loose === loose) { - return range; - } else { - return new Range(range.raw, loose); - } - } - - if (range instanceof Comparator) { - return new Range(range.value, loose); - } - - if (!(this instanceof Range)) - return new Range(range, loose); - - this.loose = loose; - - // First, split based on boolean or || - this.raw = range; - this.set = range.split(/\s*\|\|\s*/).map(function(range) { - return this.parseRange(range.trim()); - }, this).filter(function(c) { - // throw out any that are not relevant for whatever reason - return c.length; - }); - - if (!this.set.length) { - throw new TypeError('Invalid SemVer Range: ' + range); - } - - this.format(); -} - -Range.prototype.format = function() { - this.range = this.set.map(function(comps) { - return comps.join(' ').trim(); - }).join('||').trim(); - return this.range; -}; - -Range.prototype.toString = function() { - return this.range; -}; - -Range.prototype.parseRange = function(range) { - var loose = this.loose; - range = range.trim(); - debug('range', range, loose); - // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]; - range = range.replace(hr, hyphenReplace); - debug('hyphen replace', range); - // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace); - debug('comparator trim', range, re[COMPARATORTRIM]); - - // `~ 1.2.3` => `~1.2.3` - range = range.replace(re[TILDETRIM], tildeTrimReplace); - - // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[CARETTRIM], caretTrimReplace); - - // normalize spaces - range = range.split(/\s+/).join(' '); - - // At this point, the range is completely trimmed and - // ready to be split into comparators. - - var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var set = range.split(' ').map(function(comp) { - return parseComparator(comp, loose); - }).join(' ').split(/\s+/); - if (this.loose) { - // in loose mode, throw out any that are not valid comparators - set = set.filter(function(comp) { - return !!comp.match(compRe); - }); - } - set = set.map(function(comp) { - return new Comparator(comp, loose); - }); - - return set; -}; - -Range.prototype.intersects = function(range, loose) { - if (!(range instanceof Range)) { - throw new TypeError('a Range is required'); - } - - return this.set.some(function(thisComparators) { - return thisComparators.every(function(thisComparator) { - return range.set.some(function(rangeComparators) { - return rangeComparators.every(function(rangeComparator) { - return thisComparator.intersects(rangeComparator, loose); - }); - }); - }); - }); -}; - -// Mostly just for testing and legacy API reasons -exports.toComparators = toComparators; -function toComparators(range, loose) { - return new Range(range, loose).set.map(function(comp) { - return comp.map(function(c) { - return c.value; - }).join(' ').trim().split(' '); - }); -} - -// comprised of xranges, tildes, stars, and gtlt's at this point. -// already replaced the hyphen ranges -// turn into a set of JUST comparators. -function parseComparator(comp, loose) { - debug('comp', comp); - comp = replaceCarets(comp, loose); - debug('caret', comp); - comp = replaceTildes(comp, loose); - debug('tildes', comp); - comp = replaceXRanges(comp, loose); - debug('xrange', comp); - comp = replaceStars(comp, loose); - debug('stars', comp); - return comp; -} - -function isX(id) { - return !id || id.toLowerCase() === 'x' || id === '*'; -} - -// ~, ~> --> * (any, kinda silly) -// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 -// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 -// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 -// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 -// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 -function replaceTildes(comp, loose) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceTilde(comp, loose); - }).join(' '); -} - -function replaceTilde(comp, loose) { - var r = loose ? re[TILDELOOSE] : re[TILDE]; - return comp.replace(r, function(_, M, m, p, pr) { - debug('tilde', comp, _, M, m, p, pr); - var ret; - - if (isX(M)) - ret = ''; - else if (isX(m)) - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - else if (isX(p)) - // ~1.2 == >=1.2.0 <1.3.0 - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - else if (pr) { - debug('replaceTilde pr', pr); - if (pr.charAt(0) !== '-') - pr = '-' + pr; - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - // ~1.2.3 == >=1.2.3 <1.3.0 - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0'; - - debug('tilde return', ret); - return ret; - }); -} - -// ^ --> * (any, kinda silly) -// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 -// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 -// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 -// ^1.2.3 --> >=1.2.3 <2.0.0 -// ^1.2.0 --> >=1.2.0 <2.0.0 -function replaceCarets(comp, loose) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceCaret(comp, loose); - }).join(' '); -} - -function replaceCaret(comp, loose) { - debug('caret', comp, loose); - var r = loose ? re[CARETLOOSE] : re[CARET]; - return comp.replace(r, function(_, M, m, p, pr) { - debug('caret', comp, _, M, m, p, pr); - var ret; - - if (isX(M)) - ret = ''; - else if (isX(m)) - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - else if (isX(p)) { - if (M === '0') - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - else - ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'; - } else if (pr) { - debug('replaceCaret pr', pr); - if (pr.charAt(0) !== '-') - pr = '-' + pr; - if (M === '0') { - if (m === '0') - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + m + '.' + (+p + 1); - else - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + (+M + 1) + '.0.0'; - } else { - debug('no pr'); - if (M === '0') { - if (m === '0') - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + m + '.' + (+p + 1); - else - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - ret = '>=' + M + '.' + m + '.' + p + - ' <' + (+M + 1) + '.0.0'; - } - - debug('caret return', ret); - return ret; - }); -} - -function replaceXRanges(comp, loose) { - debug('replaceXRanges', comp, loose); - return comp.split(/\s+/).map(function(comp) { - return replaceXRange(comp, loose); - }).join(' '); -} - -function replaceXRange(comp, loose) { - comp = comp.trim(); - var r = loose ? re[XRANGELOOSE] : re[XRANGE]; - return comp.replace(r, function(ret, gtlt, M, m, p, pr) { - debug('xRange', comp, ret, gtlt, M, m, p, pr); - var xM = isX(M); - var xm = xM || isX(m); - var xp = xm || isX(p); - var anyX = xp; - - if (gtlt === '=' && anyX) - gtlt = ''; - - if (xM) { - if (gtlt === '>' || gtlt === '<') { - // nothing is allowed - ret = '<0.0.0'; - } else { - // nothing is forbidden - ret = '*'; - } - } else if (gtlt && anyX) { - // replace X with 0 - if (xm) - m = 0; - if (xp) - p = 0; - - if (gtlt === '>') { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - // >1.2.3 => >= 1.2.4 - gtlt = '>='; - if (xm) { - M = +M + 1; - m = 0; - p = 0; - } else if (xp) { - m = +m + 1; - p = 0; - } - } else if (gtlt === '<=') { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - gtlt = '<'; - if (xm) - M = +M + 1; - else - m = +m + 1; - } - - ret = gtlt + M + '.' + m + '.' + p; - } else if (xm) { - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - } else if (xp) { - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - } - - debug('xRange return', ret); - - return ret; - }); -} - -// Because * is AND-ed with everything else in the comparator, -// and '' means "any version", just remove the *s entirely. -function replaceStars(comp, loose) { - debug('replaceStars', comp, loose); - // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(re[STAR], ''); -} - -// This function is passed to string.replace(re[HYPHENRANGE]) -// M, m, patch, prerelease, build -// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 -// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do -// 1.2 - 3.4 => >=1.2.0 <3.5.0 -function hyphenReplace($0, - from, fM, fm, fp, fpr, fb, - to, tM, tm, tp, tpr, tb) { - - if (isX(fM)) - from = ''; - else if (isX(fm)) - from = '>=' + fM + '.0.0'; - else if (isX(fp)) - from = '>=' + fM + '.' + fm + '.0'; - else - from = '>=' + from; - - if (isX(tM)) - to = ''; - else if (isX(tm)) - to = '<' + (+tM + 1) + '.0.0'; - else if (isX(tp)) - to = '<' + tM + '.' + (+tm + 1) + '.0'; - else if (tpr) - to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr; - else - to = '<=' + to; - - return (from + ' ' + to).trim(); -} - - -// if ANY of the sets match ALL of its comparators, then pass -Range.prototype.test = function(version) { - if (!version) - return false; - - if (typeof version === 'string') - version = new SemVer(version, this.loose); - - for (var i = 0; i < this.set.length; i++) { - if (testSet(this.set[i], version)) - return true; - } - return false; -}; - -function testSet(set, version) { - for (var i = 0; i < set.length; i++) { - if (!set[i].test(version)) - return false; - } - - if (version.prerelease.length) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for (var i = 0; i < set.length; i++) { - debug(set[i].semver); - if (set[i].semver === ANY) - continue; - - if (set[i].semver.prerelease.length > 0) { - var allowed = set[i].semver; - if (allowed.major === version.major && - allowed.minor === version.minor && - allowed.patch === version.patch) - return true; - } - } - - // Version has a -pre, but it's not one of the ones we like. - return false; - } - - return true; -} - -exports.satisfies = satisfies; -function satisfies(version, range, loose) { - try { - range = new Range(range, loose); - } catch (er) { - return false; - } - return range.test(version); -} - -exports.maxSatisfying = maxSatisfying; -function maxSatisfying(versions, range, loose) { - var max = null; - var maxSV = null; - try { - var rangeObj = new Range(range, loose); - } catch (er) { - return null; - } - versions.forEach(function (v) { - if (rangeObj.test(v)) { // satisfies(v, range, loose) - if (!max || maxSV.compare(v) === -1) { // compare(max, v, true) - max = v; - maxSV = new SemVer(max, loose); - } - } - }) - return max; -} - -exports.minSatisfying = minSatisfying; -function minSatisfying(versions, range, loose) { - var min = null; - var minSV = null; - try { - var rangeObj = new Range(range, loose); - } catch (er) { - return null; - } - versions.forEach(function (v) { - if (rangeObj.test(v)) { // satisfies(v, range, loose) - if (!min || minSV.compare(v) === 1) { // compare(min, v, true) - min = v; - minSV = new SemVer(min, loose); - } - } - }) - return min; -} - -exports.validRange = validRange; -function validRange(range, loose) { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, loose).range || '*'; - } catch (er) { - return null; - } -} - -// Determine if version is less than all the versions possible in the range -exports.ltr = ltr; -function ltr(version, range, loose) { - return outside(version, range, '<', loose); -} - -// Determine if version is greater than all the versions possible in the range. -exports.gtr = gtr; -function gtr(version, range, loose) { - return outside(version, range, '>', loose); -} - -exports.outside = outside; -function outside(version, range, hilo, loose) { - version = new SemVer(version, loose); - range = new Range(range, loose); - - var gtfn, ltefn, ltfn, comp, ecomp; - switch (hilo) { - case '>': - gtfn = gt; - ltefn = lte; - ltfn = lt; - comp = '>'; - ecomp = '>='; - break; - case '<': - gtfn = lt; - ltefn = gte; - ltfn = gt; - comp = '<'; - ecomp = '<='; - break; - default: - throw new TypeError('Must provide a hilo val of "<" or ">"'); - } - - // If it satisifes the range it is not outside - if (satisfies(version, range, loose)) { - return false; - } - - // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. - - for (var i = 0; i < range.set.length; ++i) { - var comparators = range.set[i]; - - var high = null; - var low = null; - - comparators.forEach(function(comparator) { - if (comparator.semver === ANY) { - comparator = new Comparator('>=0.0.0') - } - high = high || comparator; - low = low || comparator; - if (gtfn(comparator.semver, high.semver, loose)) { - high = comparator; - } else if (ltfn(comparator.semver, low.semver, loose)) { - low = comparator; - } - }); - - // If the edge version comparator has a operator then our version - // isn't outside it - if (high.operator === comp || high.operator === ecomp) { - return false; - } - - // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range - if ((!low.operator || low.operator === comp) && - ltefn(version, low.semver)) { - return false; - } else if (low.operator === ecomp && ltfn(version, low.semver)) { - return false; - } - } - return true; -} - -exports.prerelease = prerelease; -function prerelease(version, loose) { - var parsed = parse(version, loose); - return (parsed && parsed.prerelease.length) ? parsed.prerelease : null; -} - -exports.intersects = intersects; -function intersects(r1, r2, loose) { - r1 = new Range(r1, loose) - r2 = new Range(r2, loose) - return r1.intersects(r2) -} - - -/***/ }), -/* 199 */ -/***/ (function(module, exports, __webpack_require__) { - -var parse = __webpack_require__(200); -var correct = __webpack_require__(202); - -var genericWarning = ( - 'license should be ' + - 'a valid SPDX license expression (without "LicenseRef"), ' + - '"UNLICENSED", or ' + - '"SEE LICENSE IN "' -); - -var fileReferenceRE = /^SEE LICEN[CS]E IN (.+)$/; - -function startsWith(prefix, string) { - return string.slice(0, prefix.length) === prefix; -} - -function usesLicenseRef(ast) { - if (ast.hasOwnProperty('license')) { - var license = ast.license; - return ( - startsWith('LicenseRef', license) || - startsWith('DocumentRef', license) - ); - } else { - return ( - usesLicenseRef(ast.left) || - usesLicenseRef(ast.right) - ); - } -} - -module.exports = function(argument) { - var ast; - - try { - ast = parse(argument); - } catch (e) { - var match - if ( - argument === 'UNLICENSED' || - argument === 'UNLICENCED' - ) { - return { - validForOldPackages: true, - validForNewPackages: true, - unlicensed: true - }; - } else if (match = fileReferenceRE.exec(argument)) { - return { - validForOldPackages: true, - validForNewPackages: true, - inFile: match[1] - }; - } else { - var result = { - validForOldPackages: false, - validForNewPackages: false, - warnings: [genericWarning] - }; - var corrected = correct(argument); - if (corrected) { - result.warnings.push( - 'license is similar to the valid expression "' + corrected + '"' - ); - } - return result; - } - } - - if (usesLicenseRef(ast)) { - return { - validForNewPackages: false, - validForOldPackages: false, - spdx: true, - warnings: [genericWarning] - }; - } else { - return { - validForNewPackages: true, - validForOldPackages: true, - spdx: true - }; - } -}; - - -/***/ }), -/* 200 */ -/***/ (function(module, exports, __webpack_require__) { - -var parser = __webpack_require__(201).parser - -module.exports = function (argument) { - return parser.parse(argument) -} - - -/***/ }), -/* 201 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(module) {/* parser generated by jison 0.4.17 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var spdxparse = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,5],$V1=[1,6],$V2=[1,7],$V3=[1,4],$V4=[1,9],$V5=[1,10],$V6=[5,14,15,17],$V7=[5,12,14,15,17]; -var parser = {trace: function trace() { }, -yy: {}, -symbols_: {"error":2,"start":3,"expression":4,"EOS":5,"simpleExpression":6,"LICENSE":7,"PLUS":8,"LICENSEREF":9,"DOCUMENTREF":10,"COLON":11,"WITH":12,"EXCEPTION":13,"AND":14,"OR":15,"OPEN":16,"CLOSE":17,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOS",7:"LICENSE",8:"PLUS",9:"LICENSEREF",10:"DOCUMENTREF",11:"COLON",12:"WITH",13:"EXCEPTION",14:"AND",15:"OR",16:"OPEN",17:"CLOSE"}, -productions_: [0,[3,2],[6,1],[6,2],[6,1],[6,3],[4,1],[4,3],[4,3],[4,3],[4,3]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 1: -return this.$ = $$[$0-1] -break; -case 2: case 4: case 5: -this.$ = {license: yytext} -break; -case 3: -this.$ = {license: $$[$0-1], plus: true} -break; -case 6: -this.$ = $$[$0] -break; -case 7: -this.$ = {exception: $$[$0]} -this.$.license = $$[$0-2].license -if ($$[$0-2].hasOwnProperty('plus')) { - this.$.plus = $$[$0-2].plus -} -break; -case 8: -this.$ = {conjunction: 'and', left: $$[$0-2], right: $$[$0]} -break; -case 9: -this.$ = {conjunction: 'or', left: $$[$0-2], right: $$[$0]} -break; -case 10: -this.$ = $$[$0-1] -break; -} -}, -table: [{3:1,4:2,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{1:[3]},{5:[1,8],14:$V4,15:$V5},o($V6,[2,6],{12:[1,11]}),{4:12,6:3,7:$V0,9:$V1,10:$V2,16:$V3},o($V7,[2,2],{8:[1,13]}),o($V7,[2,4]),{11:[1,14]},{1:[2,1]},{4:15,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{4:16,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{13:[1,17]},{14:$V4,15:$V5,17:[1,18]},o($V7,[2,3]),{9:[1,19]},o($V6,[2,8]),o([5,15,17],[2,9],{14:$V4}),o($V6,[2,7]),o($V6,[2,10]),o($V7,[2,5])], -defaultActions: {8:[2,1]}, -parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - function _parseError (msg, hash) { - this.message = msg; - this.hash = hash; - } - _parseError.prototype = Error; - - throw new _parseError(str, hash); - } -}, -parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - var ranges = lexer.options && lexer.options.ranges; - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - _token_stack: - var lex = function () { - var token; - token = lexer.lex() || EOF; - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - }; - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== 'undefined') { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; -}}; -/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function (match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin(condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState(condition) { - this.begin(condition); - }, +// alias for begin(condition) +pushState:function pushState(condition) { + this.begin(condition); + }, // return the number of states currently on the stack stateStackSize:function stateStackSize() { @@ -23861,7270 +11870,19737 @@ break; case 364:return 7 break; } -}, -rules: [/^(?:$)/,/^(?:\s+)/,/^(?:\+)/,/^(?:\()/,/^(?:\))/,/^(?::)/,/^(?:DocumentRef-([0-9A-Za-z-+.]+))/,/^(?:LicenseRef-([0-9A-Za-z-+.]+))/,/^(?:AND)/,/^(?:OR)/,/^(?:WITH)/,/^(?:BSD-3-Clause-No-Nuclear-License-2014)/,/^(?:BSD-3-Clause-No-Nuclear-Warranty)/,/^(?:GPL-2\.0-with-classpath-exception)/,/^(?:GPL-3\.0-with-autoconf-exception)/,/^(?:GPL-2\.0-with-autoconf-exception)/,/^(?:BSD-3-Clause-No-Nuclear-License)/,/^(?:MPL-2\.0-no-copyleft-exception)/,/^(?:GPL-2\.0-with-bison-exception)/,/^(?:GPL-2\.0-with-font-exception)/,/^(?:GPL-2\.0-with-GCC-exception)/,/^(?:CNRI-Python-GPL-Compatible)/,/^(?:GPL-3\.0-with-GCC-exception)/,/^(?:BSD-3-Clause-Attribution)/,/^(?:Classpath-exception-2\.0)/,/^(?:WxWindows-exception-3\.1)/,/^(?:freertos-exception-2\.0)/,/^(?:Autoconf-exception-3\.0)/,/^(?:i2p-gpl-java-exception)/,/^(?:gnu-javamail-exception)/,/^(?:Nokia-Qt-exception-1\.1)/,/^(?:Autoconf-exception-2\.0)/,/^(?:BSD-2-Clause-FreeBSD)/,/^(?:u-boot-exception-2\.0)/,/^(?:zlib-acknowledgement)/,/^(?:Bison-exception-2\.2)/,/^(?:BSD-2-Clause-NetBSD)/,/^(?:CLISP-exception-2\.0)/,/^(?:eCos-exception-2\.0)/,/^(?:BSD-3-Clause-Clear)/,/^(?:Font-exception-2\.0)/,/^(?:FLTK-exception-2\.0)/,/^(?:GCC-exception-2\.0)/,/^(?:Qwt-exception-1\.0)/,/^(?:Libtool-exception)/,/^(?:BSD-3-Clause-LBNL)/,/^(?:GCC-exception-3\.1)/,/^(?:Artistic-1\.0-Perl)/,/^(?:Artistic-1\.0-cl8)/,/^(?:CC-BY-NC-SA-2\.5)/,/^(?:MIT-advertising)/,/^(?:BSD-Source-Code)/,/^(?:CC-BY-NC-SA-4\.0)/,/^(?:LiLiQ-Rplus-1\.1)/,/^(?:CC-BY-NC-SA-3\.0)/,/^(?:BSD-4-Clause-UC)/,/^(?:CC-BY-NC-SA-2\.0)/,/^(?:CC-BY-NC-SA-1\.0)/,/^(?:CC-BY-NC-ND-4\.0)/,/^(?:CC-BY-NC-ND-3\.0)/,/^(?:CC-BY-NC-ND-2\.5)/,/^(?:CC-BY-NC-ND-2\.0)/,/^(?:CC-BY-NC-ND-1\.0)/,/^(?:LZMA-exception)/,/^(?:BitTorrent-1\.1)/,/^(?:CrystalStacker)/,/^(?:FLTK-exception)/,/^(?:SugarCRM-1\.1\.3)/,/^(?:BSD-Protection)/,/^(?:BitTorrent-1\.0)/,/^(?:HaskellReport)/,/^(?:Interbase-1\.0)/,/^(?:StandardML-NJ)/,/^(?:mif-exception)/,/^(?:Frameworx-1\.0)/,/^(?:389-exception)/,/^(?:CC-BY-NC-2\.0)/,/^(?:CC-BY-NC-2\.5)/,/^(?:CC-BY-NC-3\.0)/,/^(?:CC-BY-NC-4\.0)/,/^(?:W3C-19980720)/,/^(?:CC-BY-SA-1\.0)/,/^(?:CC-BY-SA-2\.0)/,/^(?:CC-BY-SA-2\.5)/,/^(?:CC-BY-ND-2\.0)/,/^(?:CC-BY-SA-4\.0)/,/^(?:CC-BY-SA-3\.0)/,/^(?:Artistic-1\.0)/,/^(?:Artistic-2\.0)/,/^(?:CC-BY-ND-2\.5)/,/^(?:CC-BY-ND-3\.0)/,/^(?:CC-BY-ND-4\.0)/,/^(?:CC-BY-ND-1\.0)/,/^(?:BSD-4-Clause)/,/^(?:BSD-3-Clause)/,/^(?:BSD-2-Clause)/,/^(?:CC-BY-NC-1\.0)/,/^(?:bzip2-1\.0\.6)/,/^(?:Unicode-TOU)/,/^(?:CNRI-Jython)/,/^(?:ImageMagick)/,/^(?:Adobe-Glyph)/,/^(?:CUA-OPL-1\.0)/,/^(?:OLDAP-2\.2\.2)/,/^(?:LiLiQ-R-1\.1)/,/^(?:bzip2-1\.0\.5)/,/^(?:LiLiQ-P-1\.1)/,/^(?:OLDAP-2\.0\.1)/,/^(?:OLDAP-2\.2\.1)/,/^(?:CNRI-Python)/,/^(?:XFree86-1\.1)/,/^(?:OSET-PL-2\.1)/,/^(?:Apache-2\.0)/,/^(?:Watcom-1\.0)/,/^(?:PostgreSQL)/,/^(?:Python-2\.0)/,/^(?:RHeCos-1\.1)/,/^(?:EUDatagrid)/,/^(?:Spencer-99)/,/^(?:Intel-ACPI)/,/^(?:CECILL-1\.0)/,/^(?:CECILL-1\.1)/,/^(?:JasPer-2\.0)/,/^(?:CECILL-2\.0)/,/^(?:CECILL-2\.1)/,/^(?:gSOAP-1\.3b)/,/^(?:Spencer-94)/,/^(?:Apache-1\.1)/,/^(?:Spencer-86)/,/^(?:Apache-1\.0)/,/^(?:ClArtistic)/,/^(?:TORQUE-1\.1)/,/^(?:CATOSL-1\.1)/,/^(?:Adobe-2006)/,/^(?:Zimbra-1\.4)/,/^(?:Zimbra-1\.3)/,/^(?:Condor-1\.1)/,/^(?:CC-BY-3\.0)/,/^(?:CC-BY-2\.5)/,/^(?:OLDAP-2\.4)/,/^(?:SGI-B-1\.1)/,/^(?:SISSL-1\.2)/,/^(?:SGI-B-1\.0)/,/^(?:OLDAP-2\.3)/,/^(?:CC-BY-4\.0)/,/^(?:Crossword)/,/^(?:SimPL-2\.0)/,/^(?:OLDAP-2\.2)/,/^(?:OLDAP-2\.1)/,/^(?:ErlPL-1\.1)/,/^(?:LPPL-1\.3a)/,/^(?:LPPL-1\.3c)/,/^(?:OLDAP-2\.0)/,/^(?:Leptonica)/,/^(?:CPOL-1\.02)/,/^(?:OLDAP-1\.4)/,/^(?:OLDAP-1\.3)/,/^(?:CC-BY-2\.0)/,/^(?:Unlicense)/,/^(?:OLDAP-2\.8)/,/^(?:OLDAP-1\.2)/,/^(?:MakeIndex)/,/^(?:OLDAP-2\.7)/,/^(?:OLDAP-1\.1)/,/^(?:Sleepycat)/,/^(?:D-FSL-1\.0)/,/^(?:CC-BY-1\.0)/,/^(?:OLDAP-2\.6)/,/^(?:WXwindows)/,/^(?:NPOSL-3\.0)/,/^(?:FreeImage)/,/^(?:SGI-B-2\.0)/,/^(?:OLDAP-2\.5)/,/^(?:Beerware)/,/^(?:Newsletr)/,/^(?:NBPL-1\.0)/,/^(?:NASA-1\.3)/,/^(?:NLOD-1\.0)/,/^(?:AGPL-1\.0)/,/^(?:OCLC-2\.0)/,/^(?:ODbL-1\.0)/,/^(?:PDDL-1\.0)/,/^(?:Motosoto)/,/^(?:Afmparse)/,/^(?:ANTLR-PD)/,/^(?:LPL-1\.02)/,/^(?:Abstyles)/,/^(?:eCos-2\.0)/,/^(?:APSL-1\.0)/,/^(?:LPPL-1\.2)/,/^(?:LPPL-1\.1)/,/^(?:LPPL-1\.0)/,/^(?:APSL-1\.1)/,/^(?:APSL-2\.0)/,/^(?:Info-ZIP)/,/^(?:Zend-2\.0)/,/^(?:IBM-pibs)/,/^(?:LGPL-2\.0)/,/^(?:LGPL-3\.0)/,/^(?:LGPL-2\.1)/,/^(?:GFDL-1\.3)/,/^(?:PHP-3\.01)/,/^(?:GFDL-1\.2)/,/^(?:GFDL-1\.1)/,/^(?:AGPL-3\.0)/,/^(?:Giftware)/,/^(?:EUPL-1\.1)/,/^(?:RPSL-1\.0)/,/^(?:EUPL-1\.0)/,/^(?:MIT-enna)/,/^(?:CECILL-B)/,/^(?:diffmark)/,/^(?:CECILL-C)/,/^(?:CDDL-1\.0)/,/^(?:Sendmail)/,/^(?:CDDL-1\.1)/,/^(?:CPAL-1\.0)/,/^(?:APSL-1\.2)/,/^(?:NPL-1\.1)/,/^(?:AFL-1\.2)/,/^(?:Caldera)/,/^(?:AFL-2\.0)/,/^(?:FSFULLR)/,/^(?:AFL-2\.1)/,/^(?:VSL-1\.0)/,/^(?:VOSTROM)/,/^(?:UPL-1\.0)/,/^(?:Dotseqn)/,/^(?:CPL-1\.0)/,/^(?:dvipdfm)/,/^(?:EPL-1\.0)/,/^(?:OCCT-PL)/,/^(?:ECL-1\.0)/,/^(?:Latex2e)/,/^(?:ECL-2\.0)/,/^(?:GPL-1\.0)/,/^(?:GPL-2\.0)/,/^(?:GPL-3\.0)/,/^(?:AFL-3\.0)/,/^(?:LAL-1\.2)/,/^(?:LAL-1\.3)/,/^(?:EFL-1\.0)/,/^(?:EFL-2\.0)/,/^(?:gnuplot)/,/^(?:Aladdin)/,/^(?:LPL-1\.0)/,/^(?:libtiff)/,/^(?:Entessa)/,/^(?:AMDPLPA)/,/^(?:IPL-1\.0)/,/^(?:OPL-1\.0)/,/^(?:OSL-1\.0)/,/^(?:OSL-1\.1)/,/^(?:OSL-2\.0)/,/^(?:OSL-2\.1)/,/^(?:OSL-3\.0)/,/^(?:OpenSSL)/,/^(?:ZPL-2\.1)/,/^(?:PHP-3\.0)/,/^(?:ZPL-2\.0)/,/^(?:ZPL-1\.1)/,/^(?:CC0-1\.0)/,/^(?:SPL-1\.0)/,/^(?:psutils)/,/^(?:MPL-1\.0)/,/^(?:QPL-1\.0)/,/^(?:MPL-1\.1)/,/^(?:MPL-2\.0)/,/^(?:APL-1\.0)/,/^(?:RPL-1\.1)/,/^(?:RPL-1\.5)/,/^(?:MIT-CMU)/,/^(?:Multics)/,/^(?:Eurosym)/,/^(?:BSL-1\.0)/,/^(?:MIT-feh)/,/^(?:Saxpath)/,/^(?:Borceux)/,/^(?:OFL-1\.1)/,/^(?:OFL-1\.0)/,/^(?:AFL-1\.1)/,/^(?:YPL-1\.1)/,/^(?:YPL-1\.0)/,/^(?:NPL-1\.0)/,/^(?:iMatix)/,/^(?:mpich2)/,/^(?:APAFML)/,/^(?:Bahyph)/,/^(?:RSA-MD)/,/^(?:psfrag)/,/^(?:Plexus)/,/^(?:eGenix)/,/^(?:Glulxe)/,/^(?:SAX-PD)/,/^(?:Imlib2)/,/^(?:Wsuipa)/,/^(?:LGPLLR)/,/^(?:Libpng)/,/^(?:xinetd)/,/^(?:MITNFA)/,/^(?:NetCDF)/,/^(?:Naumen)/,/^(?:SMPPL)/,/^(?:Nunit)/,/^(?:FSFUL)/,/^(?:GL2PS)/,/^(?:SMLNJ)/,/^(?:Rdisc)/,/^(?:Noweb)/,/^(?:Nokia)/,/^(?:SISSL)/,/^(?:Qhull)/,/^(?:Intel)/,/^(?:Glide)/,/^(?:Xerox)/,/^(?:AMPAS)/,/^(?:WTFPL)/,/^(?:MS-PL)/,/^(?:XSkat)/,/^(?:MS-RL)/,/^(?:MirOS)/,/^(?:RSCPL)/,/^(?:TMate)/,/^(?:OGTSL)/,/^(?:FSFAP)/,/^(?:NCSA)/,/^(?:Zlib)/,/^(?:SCEA)/,/^(?:SNIA)/,/^(?:NGPL)/,/^(?:NOSL)/,/^(?:ADSL)/,/^(?:MTLL)/,/^(?:NLPL)/,/^(?:Ruby)/,/^(?:JSON)/,/^(?:Barr)/,/^(?:0BSD)/,/^(?:Xnet)/,/^(?:Cube)/,/^(?:curl)/,/^(?:DSDP)/,/^(?:Fair)/,/^(?:HPND)/,/^(?:TOSL)/,/^(?:IJG)/,/^(?:SWL)/,/^(?:Vim)/,/^(?:FTL)/,/^(?:ICU)/,/^(?:OML)/,/^(?:NRL)/,/^(?:DOC)/,/^(?:TCL)/,/^(?:W3C)/,/^(?:NTP)/,/^(?:IPA)/,/^(?:ISC)/,/^(?:X11)/,/^(?:AAL)/,/^(?:AML)/,/^(?:xpp)/,/^(?:Zed)/,/^(?:MIT)/,/^(?:Mup)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; +}, +rules: [/^(?:$)/,/^(?:\s+)/,/^(?:\+)/,/^(?:\()/,/^(?:\))/,/^(?::)/,/^(?:DocumentRef-([0-9A-Za-z-+.]+))/,/^(?:LicenseRef-([0-9A-Za-z-+.]+))/,/^(?:AND)/,/^(?:OR)/,/^(?:WITH)/,/^(?:BSD-3-Clause-No-Nuclear-License-2014)/,/^(?:BSD-3-Clause-No-Nuclear-Warranty)/,/^(?:GPL-2\.0-with-classpath-exception)/,/^(?:GPL-3\.0-with-autoconf-exception)/,/^(?:GPL-2\.0-with-autoconf-exception)/,/^(?:BSD-3-Clause-No-Nuclear-License)/,/^(?:MPL-2\.0-no-copyleft-exception)/,/^(?:GPL-2\.0-with-bison-exception)/,/^(?:GPL-2\.0-with-font-exception)/,/^(?:GPL-2\.0-with-GCC-exception)/,/^(?:CNRI-Python-GPL-Compatible)/,/^(?:GPL-3\.0-with-GCC-exception)/,/^(?:BSD-3-Clause-Attribution)/,/^(?:Classpath-exception-2\.0)/,/^(?:WxWindows-exception-3\.1)/,/^(?:freertos-exception-2\.0)/,/^(?:Autoconf-exception-3\.0)/,/^(?:i2p-gpl-java-exception)/,/^(?:gnu-javamail-exception)/,/^(?:Nokia-Qt-exception-1\.1)/,/^(?:Autoconf-exception-2\.0)/,/^(?:BSD-2-Clause-FreeBSD)/,/^(?:u-boot-exception-2\.0)/,/^(?:zlib-acknowledgement)/,/^(?:Bison-exception-2\.2)/,/^(?:BSD-2-Clause-NetBSD)/,/^(?:CLISP-exception-2\.0)/,/^(?:eCos-exception-2\.0)/,/^(?:BSD-3-Clause-Clear)/,/^(?:Font-exception-2\.0)/,/^(?:FLTK-exception-2\.0)/,/^(?:GCC-exception-2\.0)/,/^(?:Qwt-exception-1\.0)/,/^(?:Libtool-exception)/,/^(?:BSD-3-Clause-LBNL)/,/^(?:GCC-exception-3\.1)/,/^(?:Artistic-1\.0-Perl)/,/^(?:Artistic-1\.0-cl8)/,/^(?:CC-BY-NC-SA-2\.5)/,/^(?:MIT-advertising)/,/^(?:BSD-Source-Code)/,/^(?:CC-BY-NC-SA-4\.0)/,/^(?:LiLiQ-Rplus-1\.1)/,/^(?:CC-BY-NC-SA-3\.0)/,/^(?:BSD-4-Clause-UC)/,/^(?:CC-BY-NC-SA-2\.0)/,/^(?:CC-BY-NC-SA-1\.0)/,/^(?:CC-BY-NC-ND-4\.0)/,/^(?:CC-BY-NC-ND-3\.0)/,/^(?:CC-BY-NC-ND-2\.5)/,/^(?:CC-BY-NC-ND-2\.0)/,/^(?:CC-BY-NC-ND-1\.0)/,/^(?:LZMA-exception)/,/^(?:BitTorrent-1\.1)/,/^(?:CrystalStacker)/,/^(?:FLTK-exception)/,/^(?:SugarCRM-1\.1\.3)/,/^(?:BSD-Protection)/,/^(?:BitTorrent-1\.0)/,/^(?:HaskellReport)/,/^(?:Interbase-1\.0)/,/^(?:StandardML-NJ)/,/^(?:mif-exception)/,/^(?:Frameworx-1\.0)/,/^(?:389-exception)/,/^(?:CC-BY-NC-2\.0)/,/^(?:CC-BY-NC-2\.5)/,/^(?:CC-BY-NC-3\.0)/,/^(?:CC-BY-NC-4\.0)/,/^(?:W3C-19980720)/,/^(?:CC-BY-SA-1\.0)/,/^(?:CC-BY-SA-2\.0)/,/^(?:CC-BY-SA-2\.5)/,/^(?:CC-BY-ND-2\.0)/,/^(?:CC-BY-SA-4\.0)/,/^(?:CC-BY-SA-3\.0)/,/^(?:Artistic-1\.0)/,/^(?:Artistic-2\.0)/,/^(?:CC-BY-ND-2\.5)/,/^(?:CC-BY-ND-3\.0)/,/^(?:CC-BY-ND-4\.0)/,/^(?:CC-BY-ND-1\.0)/,/^(?:BSD-4-Clause)/,/^(?:BSD-3-Clause)/,/^(?:BSD-2-Clause)/,/^(?:CC-BY-NC-1\.0)/,/^(?:bzip2-1\.0\.6)/,/^(?:Unicode-TOU)/,/^(?:CNRI-Jython)/,/^(?:ImageMagick)/,/^(?:Adobe-Glyph)/,/^(?:CUA-OPL-1\.0)/,/^(?:OLDAP-2\.2\.2)/,/^(?:LiLiQ-R-1\.1)/,/^(?:bzip2-1\.0\.5)/,/^(?:LiLiQ-P-1\.1)/,/^(?:OLDAP-2\.0\.1)/,/^(?:OLDAP-2\.2\.1)/,/^(?:CNRI-Python)/,/^(?:XFree86-1\.1)/,/^(?:OSET-PL-2\.1)/,/^(?:Apache-2\.0)/,/^(?:Watcom-1\.0)/,/^(?:PostgreSQL)/,/^(?:Python-2\.0)/,/^(?:RHeCos-1\.1)/,/^(?:EUDatagrid)/,/^(?:Spencer-99)/,/^(?:Intel-ACPI)/,/^(?:CECILL-1\.0)/,/^(?:CECILL-1\.1)/,/^(?:JasPer-2\.0)/,/^(?:CECILL-2\.0)/,/^(?:CECILL-2\.1)/,/^(?:gSOAP-1\.3b)/,/^(?:Spencer-94)/,/^(?:Apache-1\.1)/,/^(?:Spencer-86)/,/^(?:Apache-1\.0)/,/^(?:ClArtistic)/,/^(?:TORQUE-1\.1)/,/^(?:CATOSL-1\.1)/,/^(?:Adobe-2006)/,/^(?:Zimbra-1\.4)/,/^(?:Zimbra-1\.3)/,/^(?:Condor-1\.1)/,/^(?:CC-BY-3\.0)/,/^(?:CC-BY-2\.5)/,/^(?:OLDAP-2\.4)/,/^(?:SGI-B-1\.1)/,/^(?:SISSL-1\.2)/,/^(?:SGI-B-1\.0)/,/^(?:OLDAP-2\.3)/,/^(?:CC-BY-4\.0)/,/^(?:Crossword)/,/^(?:SimPL-2\.0)/,/^(?:OLDAP-2\.2)/,/^(?:OLDAP-2\.1)/,/^(?:ErlPL-1\.1)/,/^(?:LPPL-1\.3a)/,/^(?:LPPL-1\.3c)/,/^(?:OLDAP-2\.0)/,/^(?:Leptonica)/,/^(?:CPOL-1\.02)/,/^(?:OLDAP-1\.4)/,/^(?:OLDAP-1\.3)/,/^(?:CC-BY-2\.0)/,/^(?:Unlicense)/,/^(?:OLDAP-2\.8)/,/^(?:OLDAP-1\.2)/,/^(?:MakeIndex)/,/^(?:OLDAP-2\.7)/,/^(?:OLDAP-1\.1)/,/^(?:Sleepycat)/,/^(?:D-FSL-1\.0)/,/^(?:CC-BY-1\.0)/,/^(?:OLDAP-2\.6)/,/^(?:WXwindows)/,/^(?:NPOSL-3\.0)/,/^(?:FreeImage)/,/^(?:SGI-B-2\.0)/,/^(?:OLDAP-2\.5)/,/^(?:Beerware)/,/^(?:Newsletr)/,/^(?:NBPL-1\.0)/,/^(?:NASA-1\.3)/,/^(?:NLOD-1\.0)/,/^(?:AGPL-1\.0)/,/^(?:OCLC-2\.0)/,/^(?:ODbL-1\.0)/,/^(?:PDDL-1\.0)/,/^(?:Motosoto)/,/^(?:Afmparse)/,/^(?:ANTLR-PD)/,/^(?:LPL-1\.02)/,/^(?:Abstyles)/,/^(?:eCos-2\.0)/,/^(?:APSL-1\.0)/,/^(?:LPPL-1\.2)/,/^(?:LPPL-1\.1)/,/^(?:LPPL-1\.0)/,/^(?:APSL-1\.1)/,/^(?:APSL-2\.0)/,/^(?:Info-ZIP)/,/^(?:Zend-2\.0)/,/^(?:IBM-pibs)/,/^(?:LGPL-2\.0)/,/^(?:LGPL-3\.0)/,/^(?:LGPL-2\.1)/,/^(?:GFDL-1\.3)/,/^(?:PHP-3\.01)/,/^(?:GFDL-1\.2)/,/^(?:GFDL-1\.1)/,/^(?:AGPL-3\.0)/,/^(?:Giftware)/,/^(?:EUPL-1\.1)/,/^(?:RPSL-1\.0)/,/^(?:EUPL-1\.0)/,/^(?:MIT-enna)/,/^(?:CECILL-B)/,/^(?:diffmark)/,/^(?:CECILL-C)/,/^(?:CDDL-1\.0)/,/^(?:Sendmail)/,/^(?:CDDL-1\.1)/,/^(?:CPAL-1\.0)/,/^(?:APSL-1\.2)/,/^(?:NPL-1\.1)/,/^(?:AFL-1\.2)/,/^(?:Caldera)/,/^(?:AFL-2\.0)/,/^(?:FSFULLR)/,/^(?:AFL-2\.1)/,/^(?:VSL-1\.0)/,/^(?:VOSTROM)/,/^(?:UPL-1\.0)/,/^(?:Dotseqn)/,/^(?:CPL-1\.0)/,/^(?:dvipdfm)/,/^(?:EPL-1\.0)/,/^(?:OCCT-PL)/,/^(?:ECL-1\.0)/,/^(?:Latex2e)/,/^(?:ECL-2\.0)/,/^(?:GPL-1\.0)/,/^(?:GPL-2\.0)/,/^(?:GPL-3\.0)/,/^(?:AFL-3\.0)/,/^(?:LAL-1\.2)/,/^(?:LAL-1\.3)/,/^(?:EFL-1\.0)/,/^(?:EFL-2\.0)/,/^(?:gnuplot)/,/^(?:Aladdin)/,/^(?:LPL-1\.0)/,/^(?:libtiff)/,/^(?:Entessa)/,/^(?:AMDPLPA)/,/^(?:IPL-1\.0)/,/^(?:OPL-1\.0)/,/^(?:OSL-1\.0)/,/^(?:OSL-1\.1)/,/^(?:OSL-2\.0)/,/^(?:OSL-2\.1)/,/^(?:OSL-3\.0)/,/^(?:OpenSSL)/,/^(?:ZPL-2\.1)/,/^(?:PHP-3\.0)/,/^(?:ZPL-2\.0)/,/^(?:ZPL-1\.1)/,/^(?:CC0-1\.0)/,/^(?:SPL-1\.0)/,/^(?:psutils)/,/^(?:MPL-1\.0)/,/^(?:QPL-1\.0)/,/^(?:MPL-1\.1)/,/^(?:MPL-2\.0)/,/^(?:APL-1\.0)/,/^(?:RPL-1\.1)/,/^(?:RPL-1\.5)/,/^(?:MIT-CMU)/,/^(?:Multics)/,/^(?:Eurosym)/,/^(?:BSL-1\.0)/,/^(?:MIT-feh)/,/^(?:Saxpath)/,/^(?:Borceux)/,/^(?:OFL-1\.1)/,/^(?:OFL-1\.0)/,/^(?:AFL-1\.1)/,/^(?:YPL-1\.1)/,/^(?:YPL-1\.0)/,/^(?:NPL-1\.0)/,/^(?:iMatix)/,/^(?:mpich2)/,/^(?:APAFML)/,/^(?:Bahyph)/,/^(?:RSA-MD)/,/^(?:psfrag)/,/^(?:Plexus)/,/^(?:eGenix)/,/^(?:Glulxe)/,/^(?:SAX-PD)/,/^(?:Imlib2)/,/^(?:Wsuipa)/,/^(?:LGPLLR)/,/^(?:Libpng)/,/^(?:xinetd)/,/^(?:MITNFA)/,/^(?:NetCDF)/,/^(?:Naumen)/,/^(?:SMPPL)/,/^(?:Nunit)/,/^(?:FSFUL)/,/^(?:GL2PS)/,/^(?:SMLNJ)/,/^(?:Rdisc)/,/^(?:Noweb)/,/^(?:Nokia)/,/^(?:SISSL)/,/^(?:Qhull)/,/^(?:Intel)/,/^(?:Glide)/,/^(?:Xerox)/,/^(?:AMPAS)/,/^(?:WTFPL)/,/^(?:MS-PL)/,/^(?:XSkat)/,/^(?:MS-RL)/,/^(?:MirOS)/,/^(?:RSCPL)/,/^(?:TMate)/,/^(?:OGTSL)/,/^(?:FSFAP)/,/^(?:NCSA)/,/^(?:Zlib)/,/^(?:SCEA)/,/^(?:SNIA)/,/^(?:NGPL)/,/^(?:NOSL)/,/^(?:ADSL)/,/^(?:MTLL)/,/^(?:NLPL)/,/^(?:Ruby)/,/^(?:JSON)/,/^(?:Barr)/,/^(?:0BSD)/,/^(?:Xnet)/,/^(?:Cube)/,/^(?:curl)/,/^(?:DSDP)/,/^(?:Fair)/,/^(?:HPND)/,/^(?:TOSL)/,/^(?:IJG)/,/^(?:SWL)/,/^(?:Vim)/,/^(?:FTL)/,/^(?:ICU)/,/^(?:OML)/,/^(?:NRL)/,/^(?:DOC)/,/^(?:TCL)/,/^(?:W3C)/,/^(?:NTP)/,/^(?:IPA)/,/^(?:ISC)/,/^(?:X11)/,/^(?:AAL)/,/^(?:AML)/,/^(?:xpp)/,/^(?:Zed)/,/^(?:MIT)/,/^(?:Mup)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); + + +if (true) { +exports.parser = spdxparse; +exports.Parser = spdxparse.Parser; +exports.parse = function () { return spdxparse.parse.apply(spdxparse, arguments); }; +exports.main = function commonjsMain(args) { + if (!args[1]) { + console.log('Usage: '+args[0]+' FILE'); + process.exit(1); + } + var source = __webpack_require__(23).readFileSync(__webpack_require__(16).normalize(args[1]), "utf8"); + return exports.parser.parse(source); +}; +if ( true && __webpack_require__.c[__webpack_require__.s] === module) { + exports.main(process.argv.slice(1)); +} +} + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(5)(module))) + +/***/ }), +/* 71 */ +/***/ (function(module, exports, __webpack_require__) { + +var licenseIDs = __webpack_require__(72); + +function valid(string) { + return licenseIDs.indexOf(string) > -1; +} + +// Common transpositions of license identifier acronyms +var transpositions = [ + ['APGL', 'AGPL'], + ['Gpl', 'GPL'], + ['GLP', 'GPL'], + ['APL', 'Apache'], + ['ISD', 'ISC'], + ['GLP', 'GPL'], + ['IST', 'ISC'], + ['Claude', 'Clause'], + [' or later', '+'], + [' International', ''], + ['GNU', 'GPL'], + ['GUN', 'GPL'], + ['+', ''], + ['GNU GPL', 'GPL'], + ['GNU/GPL', 'GPL'], + ['GNU GLP', 'GPL'], + ['GNU General Public License', 'GPL'], + ['Gnu public license', 'GPL'], + ['GNU Public License', 'GPL'], + ['GNU GENERAL PUBLIC LICENSE', 'GPL'], + ['MTI', 'MIT'], + ['Mozilla Public License', 'MPL'], + ['WTH', 'WTF'], + ['-License', ''] +]; + +var TRANSPOSED = 0; +var CORRECT = 1; + +// Simple corrections to nearly valid identifiers. +var transforms = [ + // e.g. 'mit' + function(argument) { + return argument.toUpperCase(); + }, + // e.g. 'MIT ' + function(argument) { + return argument.trim(); + }, + // e.g. 'M.I.T.' + function(argument) { + return argument.replace(/\./g, ''); + }, + // e.g. 'Apache- 2.0' + function(argument) { + return argument.replace(/\s+/g, ''); + }, + // e.g. 'CC BY 4.0'' + function(argument) { + return argument.replace(/\s+/g, '-'); + }, + // e.g. 'LGPLv2.1' + function(argument) { + return argument.replace('v', '-'); + }, + // e.g. 'Apache 2.0' + function(argument) { + return argument.replace(/,?\s*(\d)/, '-$1'); + }, + // e.g. 'GPL 2' + function(argument) { + return argument.replace(/,?\s*(\d)/, '-$1.0'); + }, + // e.g. 'Apache Version 2.0' + function(argument) { + return argument.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2'); + }, + // e.g. 'Apache Version 2' + function(argument) { + return argument.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2.0'); + }, + // e.g. 'ZLIB' + function(argument) { + return argument[0].toUpperCase() + argument.slice(1); + }, + // e.g. 'MPL/2.0' + function(argument) { + return argument.replace('/', '-'); + }, + // e.g. 'Apache 2' + function(argument) { + return argument + .replace(/\s*V\s*(\d)/, '-$1') + .replace(/(\d)$/, '$1.0'); + }, + // e.g. 'GPL-2.0-' + function(argument) { + return argument.slice(0, argument.length - 1); + }, + // e.g. 'GPL2' + function(argument) { + return argument.replace(/(\d)$/, '-$1.0'); + }, + // e.g. 'BSD 3' + function(argument) { + return argument.replace(/(-| )?(\d)$/, '-$2-Clause'); + }, + // e.g. 'BSD clause 3' + function(argument) { + return argument.replace(/(-| )clause(-| )(\d)/, '-$3-Clause'); + }, + // e.g. 'BY-NC-4.0' + function(argument) { + return 'CC-' + argument; + }, + // e.g. 'BY-NC' + function(argument) { + return 'CC-' + argument + '-4.0'; + }, + // e.g. 'Attribution-NonCommercial' + function(argument) { + return argument + .replace('Attribution', 'BY') + .replace('NonCommercial', 'NC') + .replace('NoDerivatives', 'ND') + .replace(/ (\d)/, '-$1') + .replace(/ ?International/, ''); + }, + // e.g. 'Attribution-NonCommercial' + function(argument) { + return 'CC-' + + argument + .replace('Attribution', 'BY') + .replace('NonCommercial', 'NC') + .replace('NoDerivatives', 'ND') + .replace(/ (\d)/, '-$1') + .replace(/ ?International/, '') + + '-4.0'; + } +]; + +// If all else fails, guess that strings containing certain substrings +// meant to identify certain licenses. +var lastResorts = [ + ['UNLI', 'Unlicense'], + ['WTF', 'WTFPL'], + ['2 CLAUSE', 'BSD-2-Clause'], + ['2-CLAUSE', 'BSD-2-Clause'], + ['3 CLAUSE', 'BSD-3-Clause'], + ['3-CLAUSE', 'BSD-3-Clause'], + ['AFFERO', 'AGPL-3.0'], + ['AGPL', 'AGPL-3.0'], + ['APACHE', 'Apache-2.0'], + ['ARTISTIC', 'Artistic-2.0'], + ['Affero', 'AGPL-3.0'], + ['BEER', 'Beerware'], + ['BOOST', 'BSL-1.0'], + ['BSD', 'BSD-2-Clause'], + ['ECLIPSE', 'EPL-1.0'], + ['FUCK', 'WTFPL'], + ['GNU', 'GPL-3.0'], + ['LGPL', 'LGPL-3.0'], + ['GPL', 'GPL-3.0'], + ['MIT', 'MIT'], + ['MPL', 'MPL-2.0'], + ['X11', 'X11'], + ['ZLIB', 'Zlib'] +]; + +var SUBSTRING = 0; +var IDENTIFIER = 1; + +var validTransformation = function(identifier) { + for (var i = 0; i < transforms.length; i++) { + var transformed = transforms[i](identifier); + if (transformed !== identifier && valid(transformed)) { + return transformed; + } + } + return null; +}; + +var validLastResort = function(identifier) { + var upperCased = identifier.toUpperCase(); + for (var i = 0; i < lastResorts.length; i++) { + var lastResort = lastResorts[i]; + if (upperCased.indexOf(lastResort[SUBSTRING]) > -1) { + return lastResort[IDENTIFIER]; + } + } + return null; +}; + +var anyCorrection = function(identifier, check) { + for (var i = 0; i < transpositions.length; i++) { + var transposition = transpositions[i]; + var transposed = transposition[TRANSPOSED]; + if (identifier.indexOf(transposed) > -1) { + var corrected = identifier.replace( + transposed, + transposition[CORRECT] + ); + var checked = check(corrected); + if (checked !== null) { + return checked; + } + } + } + return null; +}; + +module.exports = function(identifier) { + identifier = identifier.replace(/\+$/, ''); + if (valid(identifier)) { + return identifier; + } + var transformed = validTransformation(identifier); + if (transformed !== null) { + return transformed; + } + transformed = anyCorrection(identifier, function(argument) { + if (valid(argument)) { + return argument; + } + return validTransformation(argument); + }); + if (transformed !== null) { + return transformed; + } + transformed = validLastResort(identifier); + if (transformed !== null) { + return transformed; + } + transformed = anyCorrection(identifier, validLastResort); + if (transformed !== null) { + return transformed; + } + return null; +}; + + +/***/ }), +/* 72 */ +/***/ (function(module) { + +module.exports = ["Glide","Abstyles","AFL-1.1","AFL-1.2","AFL-2.0","AFL-2.1","AFL-3.0","AMPAS","APL-1.0","Adobe-Glyph","APAFML","Adobe-2006","AGPL-1.0","Afmparse","Aladdin","ADSL","AMDPLPA","ANTLR-PD","Apache-1.0","Apache-1.1","Apache-2.0","AML","APSL-1.0","APSL-1.1","APSL-1.2","APSL-2.0","Artistic-1.0","Artistic-1.0-Perl","Artistic-1.0-cl8","Artistic-2.0","AAL","Bahyph","Barr","Beerware","BitTorrent-1.0","BitTorrent-1.1","BSL-1.0","Borceux","BSD-2-Clause","BSD-2-Clause-FreeBSD","BSD-2-Clause-NetBSD","BSD-3-Clause","BSD-3-Clause-Clear","BSD-4-Clause","BSD-Protection","BSD-Source-Code","BSD-3-Clause-Attribution","0BSD","BSD-4-Clause-UC","bzip2-1.0.5","bzip2-1.0.6","Caldera","CECILL-1.0","CECILL-1.1","CECILL-2.0","CECILL-2.1","CECILL-B","CECILL-C","ClArtistic","MIT-CMU","CNRI-Jython","CNRI-Python","CNRI-Python-GPL-Compatible","CPOL-1.02","CDDL-1.0","CDDL-1.1","CPAL-1.0","CPL-1.0","CATOSL-1.1","Condor-1.1","CC-BY-1.0","CC-BY-2.0","CC-BY-2.5","CC-BY-3.0","CC-BY-4.0","CC-BY-ND-1.0","CC-BY-ND-2.0","CC-BY-ND-2.5","CC-BY-ND-3.0","CC-BY-ND-4.0","CC-BY-NC-1.0","CC-BY-NC-2.0","CC-BY-NC-2.5","CC-BY-NC-3.0","CC-BY-NC-4.0","CC-BY-NC-ND-1.0","CC-BY-NC-ND-2.0","CC-BY-NC-ND-2.5","CC-BY-NC-ND-3.0","CC-BY-NC-ND-4.0","CC-BY-NC-SA-1.0","CC-BY-NC-SA-2.0","CC-BY-NC-SA-2.5","CC-BY-NC-SA-3.0","CC-BY-NC-SA-4.0","CC-BY-SA-1.0","CC-BY-SA-2.0","CC-BY-SA-2.5","CC-BY-SA-3.0","CC-BY-SA-4.0","CC0-1.0","Crossword","CrystalStacker","CUA-OPL-1.0","Cube","curl","D-FSL-1.0","diffmark","WTFPL","DOC","Dotseqn","DSDP","dvipdfm","EPL-1.0","ECL-1.0","ECL-2.0","eGenix","EFL-1.0","EFL-2.0","MIT-advertising","MIT-enna","Entessa","ErlPL-1.1","EUDatagrid","EUPL-1.0","EUPL-1.1","Eurosym","Fair","MIT-feh","Frameworx-1.0","FreeImage","FTL","FSFAP","FSFUL","FSFULLR","Giftware","GL2PS","Glulxe","AGPL-3.0","GFDL-1.1","GFDL-1.2","GFDL-1.3","GPL-1.0","GPL-2.0","GPL-3.0","LGPL-2.1","LGPL-3.0","LGPL-2.0","gnuplot","gSOAP-1.3b","HaskellReport","HPND","IBM-pibs","IPL-1.0","ICU","ImageMagick","iMatix","Imlib2","IJG","Info-ZIP","Intel-ACPI","Intel","Interbase-1.0","IPA","ISC","JasPer-2.0","JSON","LPPL-1.0","LPPL-1.1","LPPL-1.2","LPPL-1.3a","LPPL-1.3c","Latex2e","BSD-3-Clause-LBNL","Leptonica","LGPLLR","Libpng","libtiff","LAL-1.2","LAL-1.3","LiLiQ-P-1.1","LiLiQ-Rplus-1.1","LiLiQ-R-1.1","LPL-1.02","LPL-1.0","MakeIndex","MTLL","MS-PL","MS-RL","MirOS","MITNFA","MIT","Motosoto","MPL-1.0","MPL-1.1","MPL-2.0","MPL-2.0-no-copyleft-exception","mpich2","Multics","Mup","NASA-1.3","Naumen","NBPL-1.0","NetCDF","NGPL","NOSL","NPL-1.0","NPL-1.1","Newsletr","NLPL","Nokia","NPOSL-3.0","NLOD-1.0","Noweb","NRL","NTP","Nunit","OCLC-2.0","ODbL-1.0","PDDL-1.0","OCCT-PL","OGTSL","OLDAP-2.2.2","OLDAP-1.1","OLDAP-1.2","OLDAP-1.3","OLDAP-1.4","OLDAP-2.0","OLDAP-2.0.1","OLDAP-2.1","OLDAP-2.2","OLDAP-2.2.1","OLDAP-2.3","OLDAP-2.4","OLDAP-2.5","OLDAP-2.6","OLDAP-2.7","OLDAP-2.8","OML","OPL-1.0","OSL-1.0","OSL-1.1","OSL-2.0","OSL-2.1","OSL-3.0","OpenSSL","OSET-PL-2.1","PHP-3.0","PHP-3.01","Plexus","PostgreSQL","psfrag","psutils","Python-2.0","QPL-1.0","Qhull","Rdisc","RPSL-1.0","RPL-1.1","RPL-1.5","RHeCos-1.1","RSCPL","RSA-MD","Ruby","SAX-PD","Saxpath","SCEA","SWL","SMPPL","Sendmail","SGI-B-1.0","SGI-B-1.1","SGI-B-2.0","OFL-1.0","OFL-1.1","SimPL-2.0","Sleepycat","SNIA","Spencer-86","Spencer-94","Spencer-99","SMLNJ","SugarCRM-1.1.3","SISSL","SISSL-1.2","SPL-1.0","Watcom-1.0","TCL","Unlicense","TMate","TORQUE-1.1","TOSL","Unicode-TOU","UPL-1.0","NCSA","Vim","VOSTROM","VSL-1.0","W3C-19980720","W3C","Wsuipa","Xnet","X11","Xerox","XFree86-1.1","xinetd","xpp","XSkat","YPL-1.0","YPL-1.1","Zed","Zend-2.0","Zimbra-1.3","Zimbra-1.4","Zlib","zlib-acknowledgement","ZPL-1.1","ZPL-2.0","ZPL-2.1","BSD-3-Clause-No-Nuclear-License","BSD-3-Clause-No-Nuclear-Warranty","BSD-3-Clause-No-Nuclear-License-2014","eCos-2.0","GPL-2.0-with-autoconf-exception","GPL-2.0-with-bison-exception","GPL-2.0-with-classpath-exception","GPL-2.0-with-font-exception","GPL-2.0-with-GCC-exception","GPL-3.0-with-autoconf-exception","GPL-3.0-with-GCC-exception","StandardML-NJ","WXwindows"]; + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var url = __webpack_require__(74) +var gitHosts = __webpack_require__(75) +var GitHost = module.exports = __webpack_require__(76) + +var protocolToRepresentationMap = { + 'git+ssh': 'sshurl', + 'git+https': 'https', + 'ssh': 'sshurl', + 'git': 'git' +} + +function protocolToRepresentation (protocol) { + if (protocol.substr(-1) === ':') protocol = protocol.slice(0, -1) + return protocolToRepresentationMap[protocol] || protocol +} + +var authProtocols = { + 'git:': true, + 'https:': true, + 'git+https:': true, + 'http:': true, + 'git+http:': true +} + +var cache = {} + +module.exports.fromUrl = function (giturl, opts) { + var key = giturl + JSON.stringify(opts || {}) + + if (!(key in cache)) { + cache[key] = fromUrl(giturl, opts) + } + + return cache[key] +} + +function fromUrl (giturl, opts) { + if (giturl == null || giturl === '') return + var url = fixupUnqualifiedGist( + isGitHubShorthand(giturl) ? 'github:' + giturl : giturl + ) + var parsed = parseGitUrl(url) + var shortcutMatch = url.match(new RegExp('^([^:]+):(?:(?:[^@:]+(?:[^@]+)?@)?([^/]*))[/](.+?)(?:[.]git)?($|#)')) + var matches = Object.keys(gitHosts).map(function (gitHostName) { + try { + var gitHostInfo = gitHosts[gitHostName] + var auth = null + if (parsed.auth && authProtocols[parsed.protocol]) { + auth = decodeURIComponent(parsed.auth) + } + var committish = parsed.hash ? decodeURIComponent(parsed.hash.substr(1)) : null + var user = null + var project = null + var defaultRepresentation = null + if (shortcutMatch && shortcutMatch[1] === gitHostName) { + user = shortcutMatch[2] && decodeURIComponent(shortcutMatch[2]) + project = decodeURIComponent(shortcutMatch[3]) + defaultRepresentation = 'shortcut' + } else { + if (parsed.host !== gitHostInfo.domain) return + if (!gitHostInfo.protocols_re.test(parsed.protocol)) return + if (!parsed.path) return + var pathmatch = gitHostInfo.pathmatch + var matched = parsed.path.match(pathmatch) + if (!matched) return + if (matched[1] != null) user = decodeURIComponent(matched[1].replace(/^:/, '')) + if (matched[2] != null) project = decodeURIComponent(matched[2]) + defaultRepresentation = protocolToRepresentation(parsed.protocol) + } + return new GitHost(gitHostName, user, auth, project, committish, defaultRepresentation, opts) + } catch (ex) { + if (!(ex instanceof URIError)) throw ex + } + }).filter(function (gitHostInfo) { return gitHostInfo }) + if (matches.length !== 1) return + return matches[0] +} + +function isGitHubShorthand (arg) { + // Note: This does not fully test the git ref format. + // See https://www.kernel.org/pub/software/scm/git/docs/git-check-ref-format.html + // + // The only way to do this properly would be to shell out to + // git-check-ref-format, and as this is a fast sync function, + // we don't want to do that. Just let git fail if it turns + // out that the commit-ish is invalid. + // GH usernames cannot start with . or - + return /^[^:@%/\s.-][^:@%/\s]*[/][^:@\s/%]+(?:#.*)?$/.test(arg) +} + +function fixupUnqualifiedGist (giturl) { + // necessary for round-tripping gists + var parsed = url.parse(giturl) + if (parsed.protocol === 'gist:' && parsed.host && !parsed.path) { + return parsed.protocol + '/' + parsed.host + } else { + return giturl + } +} + +function parseGitUrl (giturl) { + if (typeof giturl !== 'string') giturl = '' + giturl + var matched = giturl.match(/^([^@]+)@([^:/]+):[/]?((?:[^/]+[/])?[^/]+?)(?:[.]git)?(#.*)?$/) + if (!matched) return url.parse(giturl) + return { + protocol: 'git+ssh:', + slashes: true, + auth: matched[1], + host: matched[2], + port: null, + hostname: matched[2], + hash: matched[4], + search: null, + query: null, + pathname: '/' + matched[3], + path: '/' + matched[3], + href: 'git+ssh://' + matched[1] + '@' + matched[2] + + '/' + matched[3] + (matched[4] || '') + } +} + + +/***/ }), +/* 74 */ +/***/ (function(module, exports) { + +module.exports = require("url"); + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var gitHosts = module.exports = { + github: { + // First two are insecure and generally shouldn't be used any more, but + // they are still supported. + 'protocols': [ 'git', 'http', 'git+ssh', 'git+https', 'ssh', 'https' ], + 'domain': 'github.com', + 'treepath': 'tree', + 'filetemplate': 'https://{auth@}raw.githubusercontent.com/{user}/{project}/{committish}/{path}', + 'bugstemplate': 'https://{domain}/{user}/{project}/issues', + 'gittemplate': 'git://{auth@}{domain}/{user}/{project}.git{#committish}', + 'tarballtemplate': 'https://{domain}/{user}/{project}/archive/{committish}.tar.gz' + }, + bitbucket: { + 'protocols': [ 'git+ssh', 'git+https', 'ssh', 'https' ], + 'domain': 'bitbucket.org', + 'treepath': 'src', + 'tarballtemplate': 'https://{domain}/{user}/{project}/get/{committish}.tar.gz' + }, + gitlab: { + 'protocols': [ 'git+ssh', 'git+https', 'ssh', 'https' ], + 'domain': 'gitlab.com', + 'treepath': 'tree', + 'docstemplate': 'https://{domain}/{user}/{project}{/tree/committish}#README', + 'bugstemplate': 'https://{domain}/{user}/{project}/issues', + 'tarballtemplate': 'https://{domain}/{user}/{project}/repository/archive.tar.gz?ref={committish}' + }, + gist: { + 'protocols': [ 'git', 'git+ssh', 'git+https', 'ssh', 'https' ], + 'domain': 'gist.github.com', + 'pathmatch': /^[/](?:([^/]+)[/])?([a-z0-9]+)(?:[.]git)?$/, + 'filetemplate': 'https://gist.githubusercontent.com/{user}/{project}/raw{/committish}/{path}', + 'bugstemplate': 'https://{domain}/{project}', + 'gittemplate': 'git://{domain}/{project}.git{#committish}', + 'sshtemplate': 'git@{domain}:/{project}.git{#committish}', + 'sshurltemplate': 'git+ssh://git@{domain}/{project}.git{#committish}', + 'browsetemplate': 'https://{domain}/{project}{/committish}', + 'docstemplate': 'https://{domain}/{project}{/committish}', + 'httpstemplate': 'git+https://{domain}/{project}.git{#committish}', + 'shortcuttemplate': '{type}:{project}{#committish}', + 'pathtemplate': '{project}{#committish}', + 'tarballtemplate': 'https://{domain}/{user}/{project}/archive/{committish}.tar.gz' + } +} + +var gitHostDefaults = { + 'sshtemplate': 'git@{domain}:{user}/{project}.git{#committish}', + 'sshurltemplate': 'git+ssh://git@{domain}/{user}/{project}.git{#committish}', + 'browsetemplate': 'https://{domain}/{user}/{project}{/tree/committish}', + 'docstemplate': 'https://{domain}/{user}/{project}{/tree/committish}#readme', + 'httpstemplate': 'git+https://{auth@}{domain}/{user}/{project}.git{#committish}', + 'filetemplate': 'https://{domain}/{user}/{project}/raw/{committish}/{path}', + 'shortcuttemplate': '{type}:{user}/{project}{#committish}', + 'pathtemplate': '{user}/{project}{#committish}', + 'pathmatch': /^[/]([^/]+)[/]([^/]+?)(?:[.]git|[/])?$/ +} + +Object.keys(gitHosts).forEach(function (name) { + Object.keys(gitHostDefaults).forEach(function (key) { + if (gitHosts[name][key]) return + gitHosts[name][key] = gitHostDefaults[key] + }) + gitHosts[name].protocols_re = RegExp('^(' + + gitHosts[name].protocols.map(function (protocol) { + return protocol.replace(/([\\+*{}()[\]$^|])/g, '\\$1') + }).join('|') + '):$') +}) + + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var gitHosts = __webpack_require__(75) +var extend = Object.assign || __webpack_require__(29)._extend + +var GitHost = module.exports = function (type, user, auth, project, committish, defaultRepresentation, opts) { + var gitHostInfo = this + gitHostInfo.type = type + Object.keys(gitHosts[type]).forEach(function (key) { + gitHostInfo[key] = gitHosts[type][key] + }) + gitHostInfo.user = user + gitHostInfo.auth = auth + gitHostInfo.project = project + gitHostInfo.committish = committish + gitHostInfo.default = defaultRepresentation + gitHostInfo.opts = opts || {} +} +GitHost.prototype = {} + +GitHost.prototype.hash = function () { + return this.committish ? '#' + this.committish : '' +} + +GitHost.prototype._fill = function (template, opts) { + if (!template) return + var vars = extend({}, opts) + opts = extend(extend({}, this.opts), opts) + var self = this + Object.keys(this).forEach(function (key) { + if (self[key] != null && vars[key] == null) vars[key] = self[key] + }) + var rawAuth = vars.auth + var rawComittish = vars.committish + Object.keys(vars).forEach(function (key) { + vars[key] = encodeURIComponent(vars[key]) + }) + vars['auth@'] = rawAuth ? rawAuth + '@' : '' + if (opts.noCommittish) { + vars['#committish'] = '' + vars['/tree/committish'] = '' + vars['/comittish'] = '' + vars.comittish = '' + } else { + vars['#committish'] = rawComittish ? '#' + rawComittish : '' + vars['/tree/committish'] = vars.committish + ? '/' + vars.treepath + '/' + vars.committish + : '' + vars['/committish'] = vars.committish ? '/' + vars.committish : '' + vars.committish = vars.committish || 'master' + } + var res = template + Object.keys(vars).forEach(function (key) { + res = res.replace(new RegExp('[{]' + key + '[}]', 'g'), vars[key]) + }) + if (opts.noGitPlus) { + return res.replace(/^git[+]/, '') + } else { + return res + } +} + +GitHost.prototype.ssh = function (opts) { + return this._fill(this.sshtemplate, opts) +} + +GitHost.prototype.sshurl = function (opts) { + return this._fill(this.sshurltemplate, opts) +} + +GitHost.prototype.browse = function (opts) { + return this._fill(this.browsetemplate, opts) +} + +GitHost.prototype.docs = function (opts) { + return this._fill(this.docstemplate, opts) +} + +GitHost.prototype.bugs = function (opts) { + return this._fill(this.bugstemplate, opts) +} + +GitHost.prototype.https = function (opts) { + return this._fill(this.httpstemplate, opts) +} + +GitHost.prototype.git = function (opts) { + return this._fill(this.gittemplate, opts) +} + +GitHost.prototype.shortcut = function (opts) { + return this._fill(this.shortcuttemplate, opts) +} + +GitHost.prototype.path = function (opts) { + return this._fill(this.pathtemplate, opts) +} + +GitHost.prototype.tarball = function (opts) { + return this._fill(this.tarballtemplate, opts) +} + +GitHost.prototype.file = function (P, opts) { + return this._fill(this.filetemplate, extend({ + path: P.replace(/^[/]+/g, '') + }, opts)) +} + +GitHost.prototype.getDefaultRepresentation = function () { + return this.default +} + +GitHost.prototype.toString = function (opts) { + return (this[this.default] || this.sshurl).call(this, opts) +} + + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var builtinModules = __webpack_require__(78); + +module.exports = function (str) { + if (typeof str !== 'string') { + throw new TypeError('Expected a string'); + } + + return builtinModules.indexOf(str) !== -1; +}; + + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var blacklist = [ + 'freelist', + 'sys' +]; + +module.exports = Object.keys(process.binding('natives')).filter(function (el) { + return !/^_|^internal|\//.test(el) && blacklist.indexOf(el) === -1; +}).sort(); + + +/***/ }), +/* 79 */ +/***/ (function(module, exports) { + +module.exports = extractDescription + +// Extracts description from contents of a readme file in markdown format +function extractDescription (d) { + if (!d) return; + if (d === "ERROR: No README data found!") return; + // the first block of text before the first heading + // that isn't the first line heading + d = d.trim().split('\n') + for (var s = 0; d[s] && d[s].trim().match(/^(#|$)/); s ++); + var l = d.length + for (var e = s + 1; e < l && d[e].trim(); e ++); + return d.slice(s, e).join(' ').trim() +} + + +/***/ }), +/* 80 */ +/***/ (function(module) { + +module.exports = {"topLevel":{"dependancies":"dependencies","dependecies":"dependencies","depdenencies":"dependencies","devEependencies":"devDependencies","depends":"dependencies","dev-dependencies":"devDependencies","devDependences":"devDependencies","devDepenencies":"devDependencies","devdependencies":"devDependencies","repostitory":"repository","repo":"repository","prefereGlobal":"preferGlobal","hompage":"homepage","hampage":"homepage","autohr":"author","autor":"author","contributers":"contributors","publicationConfig":"publishConfig","script":"scripts"},"bugs":{"web":"url","name":"url"},"script":{"server":"start","tests":"test"}}; + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __webpack_require__) { + +var util = __webpack_require__(29) +var messages = __webpack_require__(82) + +module.exports = function() { + var args = Array.prototype.slice.call(arguments, 0) + var warningName = args.shift() + if (warningName == "typo") { + return makeTypoWarning.apply(null,args) + } + else { + var msgTemplate = messages[warningName] ? messages[warningName] : warningName + ": '%s'" + args.unshift(msgTemplate) + return util.format.apply(null, args) + } +} + +function makeTypoWarning (providedName, probableName, field) { + if (field) { + providedName = field + "['" + providedName + "']" + probableName = field + "['" + probableName + "']" + } + return util.format(messages.typo, providedName, probableName) +} + + +/***/ }), +/* 82 */ +/***/ (function(module) { + +module.exports = {"repositories":"'repositories' (plural) Not supported. Please pick one as the 'repository' field","missingRepository":"No repository field.","brokenGitUrl":"Probably broken git url: %s","nonObjectScripts":"scripts must be an object","nonStringScript":"script values must be string commands","nonArrayFiles":"Invalid 'files' member","invalidFilename":"Invalid filename in 'files' list: %s","nonArrayBundleDependencies":"Invalid 'bundleDependencies' list. Must be array of package names","nonStringBundleDependency":"Invalid bundleDependencies member: %s","nonDependencyBundleDependency":"Non-dependency in bundleDependencies: %s","nonObjectDependencies":"%s field must be an object","nonStringDependency":"Invalid dependency: %s %s","deprecatedArrayDependencies":"specifying %s as array is deprecated","deprecatedModules":"modules field is deprecated","nonArrayKeywords":"keywords should be an array of strings","nonStringKeyword":"keywords should be an array of strings","conflictingName":"%s is also the name of a node core module.","nonStringDescription":"'description' field should be a string","missingDescription":"No description","missingReadme":"No README data","missingLicense":"No license field.","nonEmailUrlBugsString":"Bug string field must be url, email, or {email,url}","nonUrlBugsUrlField":"bugs.url field must be a string url. Deleted.","nonEmailBugsEmailField":"bugs.email field must be a string email. Deleted.","emptyNormalizedBugs":"Normalized value of bugs field is an empty object. Deleted.","nonUrlHomepage":"homepage field must be a string url. Deleted.","invalidLicense":"license should be a valid SPDX license expression","typo":"%s should probably be %s."}; + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const path = __webpack_require__(16); +const writeJsonFile = __webpack_require__(84); +const sortKeys = __webpack_require__(89); + +const opts = {detectIndent: true}; + +const dependencyKeys = new Set([ + 'dependencies', + 'devDependencies', + 'optionalDependencies', + 'peerDependencies' +]); + +function normalize(pkg) { + const ret = {}; + + for (const key of Object.keys(pkg)) { + if (!dependencyKeys.has(key)) { + ret[key] = pkg[key]; + } else if (Object.keys(pkg[key]).length !== 0) { + ret[key] = sortKeys(pkg[key]); + } + } + + return ret; +} + +module.exports = (fp, data) => { + if (typeof fp !== 'string') { + data = fp; + fp = '.'; + } + + fp = path.basename(fp) === 'package.json' ? fp : path.join(fp, 'package.json'); + + data = normalize(data); + + return writeJsonFile(fp, data, opts); +}; + +module.exports.sync = (fp, data) => { + if (typeof fp !== 'string') { + data = fp; + fp = '.'; + } + + fp = path.basename(fp) === 'package.json' ? fp : path.join(fp, 'package.json'); + + data = normalize(data); + + writeJsonFile.sync(fp, data, opts); +}; + + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const path = __webpack_require__(16); +const fs = __webpack_require__(22); +const writeFileAtomic = __webpack_require__(85); +const sortKeys = __webpack_require__(89); +const makeDir = __webpack_require__(91); +const pify = __webpack_require__(93); +const detectIndent = __webpack_require__(94); + +const init = (fn, fp, data, opts) => { + if (!fp) { + throw new TypeError('Expected a filepath'); + } + + if (data === undefined) { + throw new TypeError('Expected data to stringify'); + } + + opts = Object.assign({ + indent: '\t', + sortKeys: false + }, opts); + + if (opts.sortKeys) { + data = sortKeys(data, { + deep: true, + compare: typeof opts.sortKeys === 'function' && opts.sortKeys + }); + } + + return fn(fp, data, opts); +}; + +const readFile = fp => pify(fs.readFile)(fp, 'utf8').catch(() => {}); + +const main = (fp, data, opts) => { + return (opts.detectIndent ? readFile(fp) : Promise.resolve()) + .then(str => { + const indent = str ? detectIndent(str).indent : opts.indent; + const json = JSON.stringify(data, opts.replacer, indent); + + return pify(writeFileAtomic)(fp, `${json}\n`, {mode: opts.mode}); + }); +}; + +const mainSync = (fp, data, opts) => { + let indent = opts.indent; + + if (opts.detectIndent) { + try { + const file = fs.readFileSync(fp, 'utf8'); + indent = detectIndent(file).indent; + } catch (err) { + if (err.code !== 'ENOENT') { + throw err; + } + } + } + + const json = JSON.stringify(data, opts.replacer, indent); + + return writeFileAtomic.sync(fp, `${json}\n`, {mode: opts.mode}); +}; + +module.exports = (fp, data, opts) => { + return makeDir(path.dirname(fp), {fs}) + .then(() => init(main, fp, data, opts)); +}; + +module.exports.sync = (fp, data, opts) => { + makeDir.sync(path.dirname(fp), {fs}); + init(mainSync, fp, data, opts); +}; + + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +module.exports = writeFile +module.exports.sync = writeFileSync +module.exports._getTmpname = getTmpname // for testing +module.exports._cleanupOnExit = cleanupOnExit + +var fs = __webpack_require__(22) +var MurmurHash3 = __webpack_require__(86) +var onExit = __webpack_require__(87) +var path = __webpack_require__(16) +var activeFiles = {} + +var invocations = 0 +function getTmpname (filename) { + return filename + '.' + + MurmurHash3(__filename) + .hash(String(process.pid)) + .hash(String(++invocations)) + .result() +} + +function cleanupOnExit (tmpfile) { + return function () { + try { + fs.unlinkSync(typeof tmpfile === 'function' ? tmpfile() : tmpfile) + } catch (_) {} + } +} + +function writeFile (filename, data, options, callback) { + if (options instanceof Function) { + callback = options + options = null + } + if (!options) options = {} + + var Promise = options.Promise || global.Promise + var truename + var fd + var tmpfile + var removeOnExit = cleanupOnExit(() => tmpfile) + var absoluteName = path.resolve(filename) + + new Promise(function serializeSameFile (resolve) { + // make a queue if it doesn't already exist + if (!activeFiles[absoluteName]) activeFiles[absoluteName] = [] + + activeFiles[absoluteName].push(resolve) // add this job to the queue + if (activeFiles[absoluteName].length === 1) resolve() // kick off the first one + }).then(function getRealPath () { + return new Promise(function (resolve) { + fs.realpath(filename, function (_, realname) { + truename = realname || filename + tmpfile = getTmpname(truename) + resolve() + }) + }) + }).then(function stat () { + return new Promise(function stat (resolve) { + if (options.mode && options.chown) resolve() + else { + // Either mode or chown is not explicitly set + // Default behavior is to copy it from original file + fs.stat(truename, function (err, stats) { + if (err || !stats) resolve() + else { + options = Object.assign({}, options) + + if (!options.mode) { + options.mode = stats.mode + } + if (!options.chown && process.getuid) { + options.chown = { uid: stats.uid, gid: stats.gid } + } + resolve() + } + }) + } + }) + }).then(function thenWriteFile () { + return new Promise(function (resolve, reject) { + fs.open(tmpfile, 'w', options.mode, function (err, _fd) { + fd = _fd + if (err) reject(err) + else resolve() + }) + }) + }).then(function write () { + return new Promise(function (resolve, reject) { + if (Buffer.isBuffer(data)) { + fs.write(fd, data, 0, data.length, 0, function (err) { + if (err) reject(err) + else resolve() + }) + } else if (data != null) { + fs.write(fd, String(data), 0, String(options.encoding || 'utf8'), function (err) { + if (err) reject(err) + else resolve() + }) + } else resolve() + }) + }).then(function syncAndClose () { + if (options.fsync !== false) { + return new Promise(function (resolve, reject) { + fs.fsync(fd, function (err) { + if (err) reject(err) + else fs.close(fd, resolve) + }) + }) + } + }).then(function chown () { + if (options.chown) { + return new Promise(function (resolve, reject) { + fs.chown(tmpfile, options.chown.uid, options.chown.gid, function (err) { + if (err) reject(err) + else resolve() + }) + }) + } + }).then(function chmod () { + if (options.mode) { + return new Promise(function (resolve, reject) { + fs.chmod(tmpfile, options.mode, function (err) { + if (err) reject(err) + else resolve() + }) + }) + } + }).then(function rename () { + return new Promise(function (resolve, reject) { + fs.rename(tmpfile, truename, function (err) { + if (err) reject(err) + else resolve() + }) + }) + }).then(function success () { + removeOnExit() + callback() + }).catch(function fail (err) { + removeOnExit() + fs.unlink(tmpfile, function () { + callback(err) + }) + }).then(function checkQueue () { + activeFiles[absoluteName].shift() // remove the element added by serializeSameFile + if (activeFiles[absoluteName].length > 0) { + activeFiles[absoluteName][0]() // start next job if one is pending + } else delete activeFiles[absoluteName] + }) +} + +function writeFileSync (filename, data, options) { + if (!options) options = {} + try { + filename = fs.realpathSync(filename) + } catch (ex) { + // it's ok, it'll happen on a not yet existing file + } + var tmpfile = getTmpname(filename) + + try { + if (!options.mode || !options.chown) { + // Either mode or chown is not explicitly set + // Default behavior is to copy it from original file + try { + var stats = fs.statSync(filename) + options = Object.assign({}, options) + if (!options.mode) { + options.mode = stats.mode + } + if (!options.chown && process.getuid) { + options.chown = { uid: stats.uid, gid: stats.gid } + } + } catch (ex) { + // ignore stat errors + } + } + + var removeOnExit = onExit(cleanupOnExit(tmpfile)) + var fd = fs.openSync(tmpfile, 'w', options.mode) + if (Buffer.isBuffer(data)) { + fs.writeSync(fd, data, 0, data.length, 0) + } else if (data != null) { + fs.writeSync(fd, String(data), 0, String(options.encoding || 'utf8')) + } + if (options.fsync !== false) { + fs.fsyncSync(fd) + } + fs.closeSync(fd) + if (options.chown) fs.chownSync(tmpfile, options.chown.uid, options.chown.gid) + if (options.mode) fs.chmodSync(tmpfile, options.mode) + fs.renameSync(tmpfile, filename) + removeOnExit() + } catch (err) { + removeOnExit() + try { fs.unlinkSync(tmpfile) } catch (e) {} + throw err + } +} + + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __webpack_require__) { + +/** + * @preserve + * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013) + * + * @author Jens Taylor + * @see http://github.com/homebrewing/brauhaus-diff + * @author Gary Court + * @see http://github.com/garycourt/murmurhash-js + * @author Austin Appleby + * @see http://sites.google.com/site/murmurhash/ + */ +(function(){ + var cache; + + // Call this function without `new` to use the cached object (good for + // single-threaded environments), or with `new` to create a new object. + // + // @param {string} key A UTF-16 or ASCII string + // @param {number} seed An optional positive integer + // @return {object} A MurmurHash3 object for incremental hashing + function MurmurHash3(key, seed) { + var m = this instanceof MurmurHash3 ? this : cache; + m.reset(seed) + if (typeof key === 'string' && key.length > 0) { + m.hash(key); + } + + if (m !== this) { + return m; + } + }; + + // Incrementally add a string to this hash + // + // @param {string} key A UTF-16 or ASCII string + // @return {object} this + MurmurHash3.prototype.hash = function(key) { + var h1, k1, i, top, len; + + len = key.length; + this.len += len; + + k1 = this.k1; + i = 0; + switch (this.rem) { + case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0; + case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0; + case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0; + case 3: + k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0; + k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0; + } + + this.rem = (len + this.rem) & 3; // & 3 is same as % 4 + len -= this.rem; + if (len > 0) { + h1 = this.h1; + while (1) { + k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; + k1 = (k1 << 15) | (k1 >>> 17); + k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; + + h1 ^= k1; + h1 = (h1 << 13) | (h1 >>> 19); + h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff; + + if (i >= len) { + break; + } + + k1 = ((key.charCodeAt(i++) & 0xffff)) ^ + ((key.charCodeAt(i++) & 0xffff) << 8) ^ + ((key.charCodeAt(i++) & 0xffff) << 16); + top = key.charCodeAt(i++); + k1 ^= ((top & 0xff) << 24) ^ + ((top & 0xff00) >> 8); + } + + k1 = 0; + switch (this.rem) { + case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16; + case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8; + case 1: k1 ^= (key.charCodeAt(i) & 0xffff); + } + + this.h1 = h1; + } + + this.k1 = k1; + return this; + }; + + // Get the result of this hash + // + // @return {number} The 32-bit hash + MurmurHash3.prototype.result = function() { + var k1, h1; + + k1 = this.k1; + h1 = this.h1; + + if (k1 > 0) { + k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; + k1 = (k1 << 15) | (k1 >>> 17); + k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; + h1 ^= k1; + } + + h1 ^= this.len; + + h1 ^= h1 >>> 16; + h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff; + h1 ^= h1 >>> 13; + h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff; + h1 ^= h1 >>> 16; + + return h1 >>> 0; + }; + + // Reset the hash object for reuse + // + // @param {number} seed An optional positive integer + MurmurHash3.prototype.reset = function(seed) { + this.h1 = typeof seed === 'number' ? seed : 0; + this.rem = this.k1 = this.len = 0; + return this; + }; + + // A cached object to use. This can be safely used if you're in a single- + // threaded environment, otherwise you need to create new hashes to use. + cache = new MurmurHash3(); + + if (true) { + module.exports = MurmurHash3; + } else {} +}()); + + +/***/ }), +/* 87 */ +/***/ (function(module, exports, __webpack_require__) { + +// Note: since nyc uses this module to output coverage, any lines +// that are in the direct sync flow of nyc's outputCoverage are +// ignored, since we can never get coverage for them. +var assert = __webpack_require__(30) +var signals = __webpack_require__(88) + +var EE = __webpack_require__(45) +/* istanbul ignore if */ +if (typeof EE !== 'function') { + EE = EE.EventEmitter +} + +var emitter +if (process.__signal_exit_emitter__) { + emitter = process.__signal_exit_emitter__ +} else { + emitter = process.__signal_exit_emitter__ = new EE() + emitter.count = 0 + emitter.emitted = {} +} + +// Because this emitter is a global, we have to check to see if a +// previous version of this library failed to enable infinite listeners. +// I know what you're about to say. But literally everything about +// signal-exit is a compromise with evil. Get used to it. +if (!emitter.infinite) { + emitter.setMaxListeners(Infinity) + emitter.infinite = true +} + +module.exports = function (cb, opts) { + assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler') + + if (loaded === false) { + load() + } + + var ev = 'exit' + if (opts && opts.alwaysLast) { + ev = 'afterexit' + } + + var remove = function () { + emitter.removeListener(ev, cb) + if (emitter.listeners('exit').length === 0 && + emitter.listeners('afterexit').length === 0) { + unload() + } + } + emitter.on(ev, cb) + + return remove +} + +module.exports.unload = unload +function unload () { + if (!loaded) { + return + } + loaded = false + + signals.forEach(function (sig) { + try { + process.removeListener(sig, sigListeners[sig]) + } catch (er) {} + }) + process.emit = originalProcessEmit + process.reallyExit = originalProcessReallyExit + emitter.count -= 1 +} + +function emit (event, code, signal) { + if (emitter.emitted[event]) { + return + } + emitter.emitted[event] = true + emitter.emit(event, code, signal) +} + +// { : , ... } +var sigListeners = {} +signals.forEach(function (sig) { + sigListeners[sig] = function listener () { + // If there are no other listeners, an exit is coming! + // Simplest way: remove us and then re-send the signal. + // We know that this will kill the process, so we can + // safely emit now. + var listeners = process.listeners(sig) + if (listeners.length === emitter.count) { + unload() + emit('exit', null, sig) + /* istanbul ignore next */ + emit('afterexit', null, sig) + /* istanbul ignore next */ + process.kill(process.pid, sig) + } + } +}) + +module.exports.signals = function () { + return signals +} + +module.exports.load = load + +var loaded = false + +function load () { + if (loaded) { + return + } + loaded = true + + // This is the number of onSignalExit's that are in play. + // It's important so that we can count the correct number of + // listeners on signals, and don't wait for the other one to + // handle it instead of us. + emitter.count += 1 + + signals = signals.filter(function (sig) { + try { + process.on(sig, sigListeners[sig]) + return true + } catch (er) { + return false + } + }) + + process.emit = processEmit + process.reallyExit = processReallyExit +} + +var originalProcessReallyExit = process.reallyExit +function processReallyExit (code) { + process.exitCode = code || 0 + emit('exit', process.exitCode, null) + /* istanbul ignore next */ + emit('afterexit', process.exitCode, null) + /* istanbul ignore next */ + originalProcessReallyExit.call(process, process.exitCode) +} + +var originalProcessEmit = process.emit +function processEmit (ev, arg) { + if (ev === 'exit') { + if (arg !== undefined) { + process.exitCode = arg + } + var ret = originalProcessEmit.apply(this, arguments) + emit('exit', process.exitCode, null) + /* istanbul ignore next */ + emit('afterexit', process.exitCode, null) + return ret + } else { + return originalProcessEmit.apply(this, arguments) + } +} + + +/***/ }), +/* 88 */ +/***/ (function(module, exports) { + +// This is not the set of all possible signals. +// +// It IS, however, the set of all signals that trigger +// an exit on either Linux or BSD systems. Linux is a +// superset of the signal names supported on BSD, and +// the unknown signals just fail to register, so we can +// catch that easily enough. +// +// Don't bother with SIGKILL. It's uncatchable, which +// means that we can't fire any callbacks anyway. +// +// If a user does happen to register a handler on a non- +// fatal signal like SIGWINCH or something, and then +// exit, it'll end up firing `process.emit('exit')`, so +// the handler will be fired anyway. +// +// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised +// artificially, inherently leave the process in a +// state from which it is not safe to try and enter JS +// listeners. +module.exports = [ + 'SIGABRT', + 'SIGALRM', + 'SIGHUP', + 'SIGINT', + 'SIGTERM' +] + +if (process.platform !== 'win32') { + module.exports.push( + 'SIGVTALRM', + 'SIGXCPU', + 'SIGXFSZ', + 'SIGUSR2', + 'SIGTRAP', + 'SIGSYS', + 'SIGQUIT', + 'SIGIOT' + // should detect profiler and enable/disable accordingly. + // see #21 + // 'SIGPROF' + ) +} + +if (process.platform === 'linux') { + module.exports.push( + 'SIGIO', + 'SIGPOLL', + 'SIGPWR', + 'SIGSTKFLT', + 'SIGUNUSED' + ) +} + + +/***/ }), +/* 89 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const isPlainObj = __webpack_require__(90); + +module.exports = (obj, opts) => { + if (!isPlainObj(obj)) { + throw new TypeError('Expected a plain object'); + } + + opts = opts || {}; + + // DEPRECATED + if (typeof opts === 'function') { + throw new TypeError('Specify the compare function as an option instead'); + } + + const deep = opts.deep; + const seenInput = []; + const seenOutput = []; + + const sortKeys = x => { + const seenIndex = seenInput.indexOf(x); + + if (seenIndex !== -1) { + return seenOutput[seenIndex]; + } + + const ret = {}; + const keys = Object.keys(x).sort(opts.compare); + + seenInput.push(x); + seenOutput.push(ret); + + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const val = x[key]; + + if (deep && Array.isArray(val)) { + const retArr = []; + + for (let j = 0; j < val.length; j++) { + retArr[j] = isPlainObj(val[j]) ? sortKeys(val[j]) : val[j]; + } + + ret[key] = retArr; + continue; + } + + ret[key] = deep && isPlainObj(val) ? sortKeys(val) : val; + } + + return ret; + }; + + return sortKeys(obj); +}; + + +/***/ }), +/* 90 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var toString = Object.prototype.toString; + +module.exports = function (x) { + var prototype; + return toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({})); +}; + + +/***/ }), +/* 91 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const fs = __webpack_require__(23); +const path = __webpack_require__(16); +const pify = __webpack_require__(92); + +const defaults = { + mode: 0o777 & (~process.umask()), + fs +}; + +// https://github.com/nodejs/node/issues/8987 +// https://github.com/libuv/libuv/pull/1088 +const checkPath = pth => { + if (process.platform === 'win32') { + const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path.parse(pth).root, '')); + + if (pathHasInvalidWinCharacters) { + const err = new Error(`Path contains invalid characters: ${pth}`); + err.code = 'EINVAL'; + throw err; + } + } +}; + +module.exports = (input, opts) => Promise.resolve().then(() => { + checkPath(input); + opts = Object.assign({}, defaults, opts); + + const mkdir = pify(opts.fs.mkdir); + const stat = pify(opts.fs.stat); + + const make = pth => { + return mkdir(pth, opts.mode) + .then(() => pth) + .catch(err => { + if (err.code === 'ENOENT') { + if (err.message.includes('null bytes') || path.dirname(pth) === pth) { + throw err; + } + + return make(path.dirname(pth)).then(() => make(pth)); + } + + return stat(pth) + .then(stats => stats.isDirectory() ? pth : Promise.reject()) + .catch(() => { + throw err; + }); + }); + }; + + return make(path.resolve(input)); +}); + +module.exports.sync = (input, opts) => { + checkPath(input); + opts = Object.assign({}, defaults, opts); + + const make = pth => { + try { + opts.fs.mkdirSync(pth, opts.mode); + } catch (err) { + if (err.code === 'ENOENT') { + if (err.message.includes('null bytes') || path.dirname(pth) === pth) { + throw err; + } + + make(path.dirname(pth)); + return make(pth); + } + + try { + if (!opts.fs.statSync(pth).isDirectory()) { + throw new Error('The path is not a directory'); + } + } catch (_) { + throw err; + } + } + + return pth; + }; + + return make(path.resolve(input)); +}; + + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +const processFn = (fn, opts) => function () { + const P = opts.promiseModule; + const args = new Array(arguments.length); + + for (let i = 0; i < arguments.length; i++) { + args[i] = arguments[i]; + } + + return new P((resolve, reject) => { + if (opts.errorFirst) { + args.push(function (err, result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); + + for (let i = 1; i < arguments.length; i++) { + results[i - 1] = arguments[i]; + } + + if (err) { + results.unshift(err); + reject(results); + } else { + resolve(results); + } + } else if (err) { + reject(err); + } else { + resolve(result); + } + }); + } else { + args.push(function (result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); + + for (let i = 0; i < arguments.length; i++) { + results[i] = arguments[i]; + } + + resolve(results); + } else { + resolve(result); + } + }); + } + + fn.apply(this, args); + }); +}; + +module.exports = (obj, opts) => { + opts = Object.assign({ + exclude: [/.+(Sync|Stream)$/], + errorFirst: true, + promiseModule: Promise + }, opts); + + const filter = key => { + const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); + return opts.include ? opts.include.some(match) : !opts.exclude.some(match); + }; + + let ret; + if (typeof obj === 'function') { + ret = function () { + if (opts.excludeMain) { + return obj.apply(this, arguments); + } + + return processFn(obj, opts).apply(this, arguments); + }; + } else { + ret = Object.create(Object.getPrototypeOf(obj)); + } + + for (const key in obj) { // eslint-disable-line guard-for-in + const x = obj[key]; + ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; + } + + return ret; +}; + + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +const processFn = (fn, opts) => function () { + const P = opts.promiseModule; + const args = new Array(arguments.length); + + for (let i = 0; i < arguments.length; i++) { + args[i] = arguments[i]; + } + + return new P((resolve, reject) => { + if (opts.errorFirst) { + args.push(function (err, result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); + + for (let i = 1; i < arguments.length; i++) { + results[i - 1] = arguments[i]; + } + + if (err) { + results.unshift(err); + reject(results); + } else { + resolve(results); + } + } else if (err) { + reject(err); + } else { + resolve(result); + } + }); + } else { + args.push(function (result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); + + for (let i = 0; i < arguments.length; i++) { + results[i] = arguments[i]; + } + + resolve(results); + } else { + resolve(result); + } + }); + } + + fn.apply(this, args); + }); +}; + +module.exports = (obj, opts) => { + opts = Object.assign({ + exclude: [/.+(Sync|Stream)$/], + errorFirst: true, + promiseModule: Promise + }, opts); + + const filter = key => { + const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); + return opts.include ? opts.include.some(match) : !opts.exclude.some(match); + }; + + let ret; + if (typeof obj === 'function') { + ret = function () { + if (opts.excludeMain) { + return obj.apply(this, arguments); + } + + return processFn(obj, opts).apply(this, arguments); + }; + } else { + ret = Object.create(Object.getPrototypeOf(obj)); + } + + for (const key in obj) { // eslint-disable-line guard-for-in + const x = obj[key]; + ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; + } + + return ret; +}; + + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +// detect either spaces or tabs but not both to properly handle tabs +// for indentation and spaces for alignment +const INDENT_RE = /^(?:( )+|\t+)/; + +function getMostUsed(indents) { + let result = 0; + let maxUsed = 0; + let maxWeight = 0; + + for (const entry of indents) { + // TODO: use destructuring when targeting Node.js 6 + const key = entry[0]; + const val = entry[1]; + + const u = val[0]; + const w = val[1]; + + if (u > maxUsed || (u === maxUsed && w > maxWeight)) { + maxUsed = u; + maxWeight = w; + result = Number(key); + } + } + + return result; +} + +module.exports = str => { + if (typeof str !== 'string') { + throw new TypeError('Expected a string'); + } + + // used to see if tabs or spaces are the most used + let tabs = 0; + let spaces = 0; + + // remember the size of previous line's indentation + let prev = 0; + + // remember how many indents/unindents as occurred for a given size + // and how much lines follow a given indentation + // + // indents = { + // 3: [1, 0], + // 4: [1, 5], + // 5: [1, 0], + // 12: [1, 0], + // } + const indents = new Map(); + + // pointer to the array of last used indent + let current; + + // whether the last action was an indent (opposed to an unindent) + let isIndent; + + for (const line of str.split(/\n/g)) { + if (!line) { + // ignore empty lines + continue; + } + + let indent; + const matches = line.match(INDENT_RE); + + if (matches) { + indent = matches[0].length; + + if (matches[1]) { + spaces++; + } else { + tabs++; + } + } else { + indent = 0; + } + + const diff = indent - prev; + prev = indent; + + if (diff) { + // an indent or unindent has been detected + + isIndent = diff > 0; + + current = indents.get(isIndent ? diff : -diff); + + if (current) { + current[0]++; + } else { + current = [1, 0]; + indents.set(diff, current); + } + } else if (current) { + // if the last action was an indent, increment the weight + current[1] += Number(isIndent); + } + } + + const amount = getMostUsed(indents); + + let type; + let indent; + if (!amount) { + type = null; + indent = ''; + } else if (spaces >= tabs) { + type = 'space'; + indent = ' '.repeat(amount); + } else { + type = 'tab'; + indent = '\t'.repeat(amount); + } + + return { + amount, + type, + indent + }; +}; + + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.runScriptInPackage = exports.installInDir = undefined; + +/** + * Install all dependencies in the given directory + */ +let installInDir = exports.installInDir = (() => { + var _ref = _asyncToGenerator(function* (directory, extraArgs = []) { + const options = ['install', '--non-interactive', ...extraArgs]; + // We pass the mutex flag to ensure only one instance of yarn runs at any + // given time (e.g. to avoid conflicts). + yield (0, _child_process.spawn)('yarn', options, { + cwd: directory + }); + }); + + return function installInDir(_x) { + return _ref.apply(this, arguments); + }; +})(); +/** + * Run script in the given directory + */ + + +let runScriptInPackage = exports.runScriptInPackage = (() => { + var _ref2 = _asyncToGenerator(function* (script, args, pkg) { + const execOpts = { + cwd: pkg.path + }; + yield (0, _child_process.spawn)('yarn', ['run', script, ...args], execOpts); + }); + + return function runScriptInPackage(_x2, _x3, _x4) { + return _ref2.apply(this, arguments); + }; +})(); +/** + * Run script in the given directory + */ + + +exports.runScriptInPackageStreaming = runScriptInPackageStreaming; + +var _child_process = __webpack_require__(96); + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + + +function runScriptInPackageStreaming(script, args, pkg) { + const execOpts = { + cwd: pkg.path + }; + return (0, _child_process.spawnStreaming)('yarn', ['run', script, ...args], execOpts, { + prefix: pkg.name + }); +} + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + + +exports.spawn = spawn; +exports.spawnStreaming = spawnStreaming; + +var _chalk = __webpack_require__(2); + +var _chalk2 = _interopRequireDefault(_chalk); + +var _execa = __webpack_require__(97); + +var _execa2 = _interopRequireDefault(_execa); + +var _logSymbols = __webpack_require__(125); + +var _logSymbols2 = _interopRequireDefault(_logSymbols); + +var _strongLogTransformer = __webpack_require__(126); + +var _strongLogTransformer2 = _interopRequireDefault(_strongLogTransformer); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function generateColors() { + const colorWheel = [_chalk2.default.cyan, _chalk2.default.magenta, _chalk2.default.blue, _chalk2.default.yellow, _chalk2.default.green]; + const count = colorWheel.length; + let children = 0; + return () => colorWheel[children++ % count]; +} +function spawn(command, args, opts) { + return (0, _execa2.default)(command, args, _extends({}, opts, { + stdio: 'inherit' + })); +} +const nextColor = generateColors(); +function spawnStreaming(command, args, opts, { prefix }) { + const spawned = (0, _execa2.default)(command, args, _extends({}, opts, { + stdio: ['ignore', 'pipe', 'pipe'] + })); + const color = nextColor(); + const prefixedStdout = (0, _strongLogTransformer2.default)({ tag: `${color.bold(prefix)}:` }); + const prefixedStderr = (0, _strongLogTransformer2.default)({ + mergeMultiline: true, + tag: `${_logSymbols2.default.error} ${color.bold(prefix)}:` + }); + spawned.stdout.pipe(prefixedStdout).pipe(process.stdout); + spawned.stderr.pipe(prefixedStderr).pipe(process.stderr); + return spawned; +} + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const path = __webpack_require__(16); +const childProcess = __webpack_require__(98); +const crossSpawn = __webpack_require__(99); +const stripEof = __webpack_require__(114); +const npmRunPath = __webpack_require__(115); +const isStream = __webpack_require__(117); +const _getStream = __webpack_require__(118); +const pFinally = __webpack_require__(122); +const onExit = __webpack_require__(87); +const errname = __webpack_require__(123); +const stdio = __webpack_require__(124); + +const TEN_MEGABYTES = 1000 * 1000 * 10; + +function handleArgs(cmd, args, opts) { + let parsed; + + opts = Object.assign({ + extendEnv: true, + env: {} + }, opts); + + if (opts.extendEnv) { + opts.env = Object.assign({}, process.env, opts.env); + } + + if (opts.__winShell === true) { + delete opts.__winShell; + parsed = { + command: cmd, + args, + options: opts, + file: cmd, + original: { + cmd, + args + } + }; + } else { + parsed = crossSpawn._parse(cmd, args, opts); + } + + opts = Object.assign({ + maxBuffer: TEN_MEGABYTES, + buffer: true, + stripEof: true, + preferLocal: true, + localDir: parsed.options.cwd || process.cwd(), + encoding: 'utf8', + reject: true, + cleanup: true + }, parsed.options); + + opts.stdio = stdio(opts); + + if (opts.preferLocal) { + opts.env = npmRunPath.env(Object.assign({}, opts, {cwd: opts.localDir})); + } + + if (opts.detached) { + // #115 + opts.cleanup = false; + } + + if (process.platform === 'win32' && path.basename(parsed.command) === 'cmd.exe') { + // #116 + parsed.args.unshift('/q'); + } + + return { + cmd: parsed.command, + args: parsed.args, + opts, + parsed + }; +} + +function handleInput(spawned, input) { + if (input === null || input === undefined) { + return; + } + + if (isStream(input)) { + input.pipe(spawned.stdin); + } else { + spawned.stdin.end(input); + } +} + +function handleOutput(opts, val) { + if (val && opts.stripEof) { + val = stripEof(val); + } + + return val; +} + +function handleShell(fn, cmd, opts) { + let file = '/bin/sh'; + let args = ['-c', cmd]; + + opts = Object.assign({}, opts); + + if (process.platform === 'win32') { + opts.__winShell = true; + file = process.env.comspec || 'cmd.exe'; + args = ['/s', '/c', `"${cmd}"`]; + opts.windowsVerbatimArguments = true; + } + + if (opts.shell) { + file = opts.shell; + delete opts.shell; + } + + return fn(file, args, opts); +} + +function getStream(process, stream, {encoding, buffer, maxBuffer}) { + if (!process[stream]) { + return null; + } + + let ret; + + if (!buffer) { + // TODO: Use `ret = util.promisify(stream.finished)(process[stream]);` when targeting Node.js 10 + ret = new Promise((resolve, reject) => { + process[stream] + .once('end', resolve) + .once('error', reject); + }); + } else if (encoding) { + ret = _getStream(process[stream], { + encoding, + maxBuffer + }); + } else { + ret = _getStream.buffer(process[stream], {maxBuffer}); + } + + return ret.catch(err => { + err.stream = stream; + err.message = `${stream} ${err.message}`; + throw err; + }); +} + +function makeError(result, options) { + const {stdout, stderr} = result; + + let err = result.error; + const {code, signal} = result; + + const {parsed, joinedCmd} = options; + const timedOut = options.timedOut || false; + + if (!err) { + let output = ''; + + if (Array.isArray(parsed.opts.stdio)) { + if (parsed.opts.stdio[2] !== 'inherit') { + output += output.length > 0 ? stderr : `\n${stderr}`; + } + + if (parsed.opts.stdio[1] !== 'inherit') { + output += `\n${stdout}`; + } + } else if (parsed.opts.stdio !== 'inherit') { + output = `\n${stderr}${stdout}`; + } + + err = new Error(`Command failed: ${joinedCmd}${output}`); + err.code = code < 0 ? errname(code) : code; + } + + err.stdout = stdout; + err.stderr = stderr; + err.failed = true; + err.signal = signal || null; + err.cmd = joinedCmd; + err.timedOut = timedOut; + + return err; +} + +function joinCmd(cmd, args) { + let joinedCmd = cmd; + + if (Array.isArray(args) && args.length > 0) { + joinedCmd += ' ' + args.join(' '); + } + + return joinedCmd; +} + +module.exports = (cmd, args, opts) => { + const parsed = handleArgs(cmd, args, opts); + const {encoding, buffer, maxBuffer} = parsed.opts; + const joinedCmd = joinCmd(cmd, args); + + let spawned; + try { + spawned = childProcess.spawn(parsed.cmd, parsed.args, parsed.opts); + } catch (err) { + return Promise.reject(err); + } + + let removeExitHandler; + if (parsed.opts.cleanup) { + removeExitHandler = onExit(() => { + spawned.kill(); + }); + } + + let timeoutId = null; + let timedOut = false; + + const cleanup = () => { + if (timeoutId) { + clearTimeout(timeoutId); + timeoutId = null; + } + + if (removeExitHandler) { + removeExitHandler(); + } + }; + + if (parsed.opts.timeout > 0) { + timeoutId = setTimeout(() => { + timeoutId = null; + timedOut = true; + spawned.kill(parsed.opts.killSignal); + }, parsed.opts.timeout); + } + + const processDone = new Promise(resolve => { + spawned.on('exit', (code, signal) => { + cleanup(); + resolve({code, signal}); + }); + + spawned.on('error', err => { + cleanup(); + resolve({error: err}); + }); + + if (spawned.stdin) { + spawned.stdin.on('error', err => { + cleanup(); + resolve({error: err}); + }); + } + }); + + function destroy() { + if (spawned.stdout) { + spawned.stdout.destroy(); + } + + if (spawned.stderr) { + spawned.stderr.destroy(); + } + } + + const handlePromise = () => pFinally(Promise.all([ + processDone, + getStream(spawned, 'stdout', {encoding, buffer, maxBuffer}), + getStream(spawned, 'stderr', {encoding, buffer, maxBuffer}) + ]).then(arr => { + const result = arr[0]; + result.stdout = arr[1]; + result.stderr = arr[2]; + + if (result.error || result.code !== 0 || result.signal !== null) { + const err = makeError(result, { + joinedCmd, + parsed, + timedOut + }); + + // TODO: missing some timeout logic for killed + // https://github.com/nodejs/node/blob/master/lib/child_process.js#L203 + // err.killed = spawned.killed || killed; + err.killed = err.killed || spawned.killed; + + if (!parsed.opts.reject) { + return err; + } + + throw err; + } + + return { + stdout: handleOutput(parsed.opts, result.stdout), + stderr: handleOutput(parsed.opts, result.stderr), + code: 0, + failed: false, + killed: false, + signal: null, + cmd: joinedCmd, + timedOut: false + }; + }), destroy); + + crossSpawn._enoent.hookChildProcess(spawned, parsed.parsed); + + handleInput(spawned, parsed.opts.input); + + spawned.then = (onfulfilled, onrejected) => handlePromise().then(onfulfilled, onrejected); + spawned.catch = onrejected => handlePromise().catch(onrejected); + + return spawned; +}; + +// TODO: set `stderr: 'ignore'` when that option is implemented +module.exports.stdout = (...args) => module.exports(...args).then(x => x.stdout); + +// TODO: set `stdout: 'ignore'` when that option is implemented +module.exports.stderr = (...args) => module.exports(...args).then(x => x.stderr); + +module.exports.shell = (cmd, opts) => handleShell(module.exports, cmd, opts); + +module.exports.sync = (cmd, args, opts) => { + const parsed = handleArgs(cmd, args, opts); + const joinedCmd = joinCmd(cmd, args); + + if (isStream(parsed.opts.input)) { + throw new TypeError('The `input` option cannot be a stream in sync mode'); + } + + const result = childProcess.spawnSync(parsed.cmd, parsed.args, parsed.opts); + result.code = result.status; + + if (result.error || result.status !== 0 || result.signal !== null) { + const err = makeError(result, { + joinedCmd, + parsed + }); + + if (!parsed.opts.reject) { + return err; + } + + throw err; + } + + return { + stdout: handleOutput(parsed.opts, result.stdout), + stderr: handleOutput(parsed.opts, result.stderr), + code: 0, + failed: false, + signal: null, + cmd: joinedCmd, + timedOut: false + }; +}; + +module.exports.shellSync = (cmd, opts) => handleShell(module.exports.sync, cmd, opts); + + +/***/ }), +/* 98 */ +/***/ (function(module, exports) { + +module.exports = require("child_process"); + +/***/ }), +/* 99 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +const cp = __webpack_require__(98); +const parse = __webpack_require__(100); +const enoent = __webpack_require__(113); + +function spawn(command, args, options) { + // Parse the arguments + const parsed = parse(command, args, options); + + // Spawn the child process + const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); + + // Hook into child process "exit" event to emit an error if the command + // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 + enoent.hookChildProcess(spawned, parsed); + + return spawned; +} + +function spawnSync(command, args, options) { + // Parse the arguments + const parsed = parse(command, args, options); + + // Spawn the child process + const result = cp.spawnSync(parsed.command, parsed.args, parsed.options); + + // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 + result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); + + return result; +} + +module.exports = spawn; +module.exports.spawn = spawn; +module.exports.sync = spawnSync; + +module.exports._parse = parse; +module.exports._enoent = enoent; + + +/***/ }), +/* 100 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +const path = __webpack_require__(16); +const niceTry = __webpack_require__(101); +const resolveCommand = __webpack_require__(102); +const escape = __webpack_require__(108); +const readShebang = __webpack_require__(109); +const semver = __webpack_require__(112); + +const isWin = process.platform === 'win32'; +const isExecutableRegExp = /\.(?:com|exe)$/i; +const isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; + +// `options.shell` is supported in Node ^4.8.0, ^5.7.0 and >= 6.0.0 +const supportsShellOption = niceTry(() => semver.satisfies(process.version, '^4.8.0 || ^5.7.0 || >= 6.0.0', true)) || false; + +function detectShebang(parsed) { + parsed.file = resolveCommand(parsed); + + const shebang = parsed.file && readShebang(parsed.file); + + if (shebang) { + parsed.args.unshift(parsed.file); + parsed.command = shebang; + + return resolveCommand(parsed); + } + + return parsed.file; +} + +function parseNonShell(parsed) { + if (!isWin) { + return parsed; + } + + // Detect & add support for shebangs + const commandFile = detectShebang(parsed); + + // We don't need a shell if the command filename is an executable + const needsShell = !isExecutableRegExp.test(commandFile); + + // If a shell is required, use cmd.exe and take care of escaping everything correctly + // Note that `forceShell` is an hidden option used only in tests + if (parsed.options.forceShell || needsShell) { + // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/` + // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument + // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called, + // we need to double escape them + const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile); + + // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\bar) + // This is necessary otherwise it will always fail with ENOENT in those cases + parsed.command = path.normalize(parsed.command); + + // Escape command & arguments + parsed.command = escape.command(parsed.command); + parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars)); + + const shellCommand = [parsed.command].concat(parsed.args).join(' '); + + parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`]; + parsed.command = process.env.comspec || 'cmd.exe'; + parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped + } + + return parsed; +} + +function parseShell(parsed) { + // If node supports the shell option, there's no need to mimic its behavior + if (supportsShellOption) { + return parsed; + } + + // Mimic node shell option + // See https://github.com/nodejs/node/blob/b9f6a2dc059a1062776133f3d4fd848c4da7d150/lib/child_process.js#L335 + const shellCommand = [parsed.command].concat(parsed.args).join(' '); + + if (isWin) { + parsed.command = typeof parsed.options.shell === 'string' ? parsed.options.shell : process.env.comspec || 'cmd.exe'; + parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`]; + parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped + } else { + if (typeof parsed.options.shell === 'string') { + parsed.command = parsed.options.shell; + } else if (process.platform === 'android') { + parsed.command = '/system/bin/sh'; + } else { + parsed.command = '/bin/sh'; + } + + parsed.args = ['-c', shellCommand]; + } + + return parsed; +} + +function parse(command, args, options) { + // Normalize arguments, similar to nodejs + if (args && !Array.isArray(args)) { + options = args; + args = null; + } + + args = args ? args.slice(0) : []; // Clone array to avoid changing the original + options = Object.assign({}, options); // Clone object to avoid changing the original + + // Build our parsed object + const parsed = { + command, + args, + options, + file: undefined, + original: { + command, + args, + }, + }; + + // Delegate further parsing to shell or non-shell + return options.shell ? parseShell(parsed) : parseNonShell(parsed); +} + +module.exports = parse; + + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * Tries to execute a function and discards any error that occurs. + * @param {Function} fn - Function that might or might not throw an error. + * @returns {?*} Return-value of the function when no error occurred. + */ +module.exports = function(fn) { + + try { return fn() } + catch (e) {} + +} + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +const path = __webpack_require__(16); +const which = __webpack_require__(103); +const pathKey = __webpack_require__(107)(); + +function resolveCommandAttempt(parsed, withoutPathExt) { + const cwd = process.cwd(); + const hasCustomCwd = parsed.options.cwd != null; + + // If a custom `cwd` was specified, we need to change the process cwd + // because `which` will do stat calls but does not support a custom cwd + if (hasCustomCwd) { + try { + process.chdir(parsed.options.cwd); + } catch (err) { + /* Empty */ + } + } + + let resolved; + + try { + resolved = which.sync(parsed.command, { + path: (parsed.options.env || process.env)[pathKey], + pathExt: withoutPathExt ? path.delimiter : undefined, + }); + } catch (e) { + /* Empty */ + } finally { + process.chdir(cwd); + } + + // If we successfully resolved, ensure that an absolute path is returned + // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it + if (resolved) { + resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved); + } + + return resolved; +} + +function resolveCommand(parsed) { + return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true); +} + +module.exports = resolveCommand; + + +/***/ }), +/* 103 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = which +which.sync = whichSync + +var isWindows = process.platform === 'win32' || + process.env.OSTYPE === 'cygwin' || + process.env.OSTYPE === 'msys' + +var path = __webpack_require__(16) +var COLON = isWindows ? ';' : ':' +var isexe = __webpack_require__(104) + +function getNotFoundError (cmd) { + var er = new Error('not found: ' + cmd) + er.code = 'ENOENT' + + return er +} + +function getPathInfo (cmd, opt) { + var colon = opt.colon || COLON + var pathEnv = opt.path || process.env.PATH || '' + var pathExt = [''] + + pathEnv = pathEnv.split(colon) + + var pathExtExe = '' + if (isWindows) { + pathEnv.unshift(process.cwd()) + pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM') + pathExt = pathExtExe.split(colon) + + + // Always test the cmd itself first. isexe will check to make sure + // it's found in the pathExt set. + if (cmd.indexOf('.') !== -1 && pathExt[0] !== '') + pathExt.unshift('') + } + + // If it has a slash, then we don't bother searching the pathenv. + // just check the file itself, and that's it. + if (cmd.match(/\//) || isWindows && cmd.match(/\\/)) + pathEnv = [''] + + return { + env: pathEnv, + ext: pathExt, + extExe: pathExtExe + } +} + +function which (cmd, opt, cb) { + if (typeof opt === 'function') { + cb = opt + opt = {} + } + + var info = getPathInfo(cmd, opt) + var pathEnv = info.env + var pathExt = info.ext + var pathExtExe = info.extExe + var found = [] + + ;(function F (i, l) { + if (i === l) { + if (opt.all && found.length) + return cb(null, found) + else + return cb(getNotFoundError(cmd)) + } + + var pathPart = pathEnv[i] + if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"') + pathPart = pathPart.slice(1, -1) + + var p = path.join(pathPart, cmd) + if (!pathPart && (/^\.[\\\/]/).test(cmd)) { + p = cmd.slice(0, 2) + p + } + ;(function E (ii, ll) { + if (ii === ll) return F(i + 1, l) + var ext = pathExt[ii] + isexe(p + ext, { pathExt: pathExtExe }, function (er, is) { + if (!er && is) { + if (opt.all) + found.push(p + ext) + else + return cb(null, p + ext) + } + return E(ii + 1, ll) + }) + })(0, pathExt.length) + })(0, pathEnv.length) +} + +function whichSync (cmd, opt) { + opt = opt || {} + + var info = getPathInfo(cmd, opt) + var pathEnv = info.env + var pathExt = info.ext + var pathExtExe = info.extExe + var found = [] + + for (var i = 0, l = pathEnv.length; i < l; i ++) { + var pathPart = pathEnv[i] + if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"') + pathPart = pathPart.slice(1, -1) + + var p = path.join(pathPart, cmd) + if (!pathPart && /^\.[\\\/]/.test(cmd)) { + p = cmd.slice(0, 2) + p + } + for (var j = 0, ll = pathExt.length; j < ll; j ++) { + var cur = p + pathExt[j] + var is + try { + is = isexe.sync(cur, { pathExt: pathExtExe }) + if (is) { + if (opt.all) + found.push(cur) + else + return cur + } + } catch (ex) {} + } + } + + if (opt.all && found.length) + return found + + if (opt.nothrow) + return null + + throw getNotFoundError(cmd) +} + + +/***/ }), +/* 104 */ +/***/ (function(module, exports, __webpack_require__) { + +var fs = __webpack_require__(23) +var core +if (process.platform === 'win32' || global.TESTING_WINDOWS) { + core = __webpack_require__(105) +} else { + core = __webpack_require__(106) +} + +module.exports = isexe +isexe.sync = sync + +function isexe (path, options, cb) { + if (typeof options === 'function') { + cb = options + options = {} + } + + if (!cb) { + if (typeof Promise !== 'function') { + throw new TypeError('callback not provided') + } + + return new Promise(function (resolve, reject) { + isexe(path, options || {}, function (er, is) { + if (er) { + reject(er) + } else { + resolve(is) + } + }) + }) + } + + core(path, options || {}, function (er, is) { + // ignore EACCES because that just means we aren't allowed to run it + if (er) { + if (er.code === 'EACCES' || options && options.ignoreErrors) { + er = null + is = false + } + } + cb(er, is) + }) +} + +function sync (path, options) { + // my kingdom for a filtered catch + try { + return core.sync(path, options || {}) + } catch (er) { + if (options && options.ignoreErrors || er.code === 'EACCES') { + return false + } else { + throw er + } + } +} + + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = isexe +isexe.sync = sync + +var fs = __webpack_require__(23) + +function checkPathExt (path, options) { + var pathext = options.pathExt !== undefined ? + options.pathExt : process.env.PATHEXT + + if (!pathext) { + return true + } + + pathext = pathext.split(';') + if (pathext.indexOf('') !== -1) { + return true + } + for (var i = 0; i < pathext.length; i++) { + var p = pathext[i].toLowerCase() + if (p && path.substr(-p.length).toLowerCase() === p) { + return true + } + } + return false +} + +function checkStat (stat, path, options) { + if (!stat.isSymbolicLink() && !stat.isFile()) { + return false + } + return checkPathExt(path, options) +} + +function isexe (path, options, cb) { + fs.stat(path, function (er, stat) { + cb(er, er ? false : checkStat(stat, path, options)) + }) +} + +function sync (path, options) { + return checkStat(fs.statSync(path), path, options) +} + + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = isexe +isexe.sync = sync + +var fs = __webpack_require__(23) + +function isexe (path, options, cb) { + fs.stat(path, function (er, stat) { + cb(er, er ? false : checkStat(stat, options)) + }) +} + +function sync (path, options) { + return checkStat(fs.statSync(path), options) +} + +function checkStat (stat, options) { + return stat.isFile() && checkMode(stat, options) +} + +function checkMode (stat, options) { + var mod = stat.mode + var uid = stat.uid + var gid = stat.gid + + var myUid = options.uid !== undefined ? + options.uid : process.getuid && process.getuid() + var myGid = options.gid !== undefined ? + options.gid : process.getgid && process.getgid() + + var u = parseInt('100', 8) + var g = parseInt('010', 8) + var o = parseInt('001', 8) + var ug = u | g + + var ret = (mod & o) || + (mod & g) && gid === myGid || + (mod & u) && uid === myUid || + (mod & ug) && myUid === 0 + + return ret +} + + +/***/ }), +/* 107 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +module.exports = opts => { + opts = opts || {}; + + const env = opts.env || process.env; + const platform = opts.platform || process.platform; + + if (platform !== 'win32') { + return 'PATH'; + } + + return Object.keys(env).find(x => x.toUpperCase() === 'PATH') || 'Path'; +}; + + +/***/ }), +/* 108 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +// See http://www.robvanderwoude.com/escapechars.php +const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g; + +function escapeCommand(arg) { + // Escape meta chars + arg = arg.replace(metaCharsRegExp, '^$1'); + + return arg; +} + +function escapeArgument(arg, doubleEscapeMetaChars) { + // Convert to string + arg = `${arg}`; + + // Algorithm below is based on https://qntm.org/cmd + + // Sequence of backslashes followed by a double quote: + // double up all the backslashes and escape the double quote + arg = arg.replace(/(\\*)"/g, '$1$1\\"'); + + // Sequence of backslashes followed by the end of the string + // (which will become a double quote later): + // double up all the backslashes + arg = arg.replace(/(\\*)$/, '$1$1'); + + // All other backslashes occur literally + + // Quote the whole thing: + arg = `"${arg}"`; + + // Escape meta chars + arg = arg.replace(metaCharsRegExp, '^$1'); + + // Double escape meta chars if necessary + if (doubleEscapeMetaChars) { + arg = arg.replace(metaCharsRegExp, '^$1'); + } + + return arg; +} + +module.exports.command = escapeCommand; +module.exports.argument = escapeArgument; + + +/***/ }), +/* 109 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +const fs = __webpack_require__(23); +const shebangCommand = __webpack_require__(110); + +function readShebang(command) { + // Read the first 150 bytes from the file + const size = 150; + let buffer; + + if (Buffer.alloc) { + // Node.js v4.5+ / v5.10+ + buffer = Buffer.alloc(size); + } else { + // Old Node.js API + buffer = new Buffer(size); + buffer.fill(0); // zero-fill + } + + let fd; + + try { + fd = fs.openSync(command, 'r'); + fs.readSync(fd, buffer, 0, size, 0); + fs.closeSync(fd); + } catch (e) { /* Empty */ } + + // Attempt to extract shebang (null is returned if not a shebang) + return shebangCommand(buffer.toString()); +} + +module.exports = readShebang; + + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var shebangRegex = __webpack_require__(111); + +module.exports = function (str) { + var match = str.match(shebangRegex); + + if (!match) { + return null; + } + + var arr = match[0].replace(/#! ?/, '').split(' '); + var bin = arr[0].split('/').pop(); + var arg = arr[1]; + + return (bin === 'env' ? + arg : + bin + (arg ? ' ' + arg : '') + ); +}; + + +/***/ }), +/* 111 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +module.exports = /^#!.*/; + + +/***/ }), +/* 112 */ +/***/ (function(module, exports) { + +exports = module.exports = SemVer; + +// The debug function is excluded entirely from the minified version. +/* nomin */ var debug; +/* nomin */ if (typeof process === 'object' && + /* nomin */ process.env && + /* nomin */ process.env.NODE_DEBUG && + /* nomin */ /\bsemver\b/i.test(process.env.NODE_DEBUG)) + /* nomin */ debug = function() { + /* nomin */ var args = Array.prototype.slice.call(arguments, 0); + /* nomin */ args.unshift('SEMVER'); + /* nomin */ console.log.apply(console, args); + /* nomin */ }; +/* nomin */ else + /* nomin */ debug = function() {}; + +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +exports.SEMVER_SPEC_VERSION = '2.0.0'; + +var MAX_LENGTH = 256; +var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; + +// Max safe segment length for coercion. +var MAX_SAFE_COMPONENT_LENGTH = 16; + +// The actual regexps go on exports.re +var re = exports.re = []; +var src = exports.src = []; +var R = 0; + +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. + +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. + +var NUMERICIDENTIFIER = R++; +src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'; +var NUMERICIDENTIFIERLOOSE = R++; +src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'; + + +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. + +var NONNUMERICIDENTIFIER = R++; +src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'; + + +// ## Main Version +// Three dot-separated numeric identifiers. + +var MAINVERSION = R++; +src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' + + '(' + src[NUMERICIDENTIFIER] + ')\\.' + + '(' + src[NUMERICIDENTIFIER] + ')'; + +var MAINVERSIONLOOSE = R++; +src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[NUMERICIDENTIFIERLOOSE] + ')'; + +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. + +var PRERELEASEIDENTIFIER = R++; +src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] + + '|' + src[NONNUMERICIDENTIFIER] + ')'; + +var PRERELEASEIDENTIFIERLOOSE = R++; +src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] + + '|' + src[NONNUMERICIDENTIFIER] + ')'; + + +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. + +var PRERELEASE = R++; +src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] + + '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'; + +var PRERELEASELOOSE = R++; +src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] + + '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'; + +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. + +var BUILDIDENTIFIER = R++; +src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'; + +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. + +var BUILD = R++; +src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] + + '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'; + + +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. + +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. + +var FULL = R++; +var FULLPLAIN = 'v?' + src[MAINVERSION] + + src[PRERELEASE] + '?' + + src[BUILD] + '?'; + +src[FULL] = '^' + FULLPLAIN + '$'; + +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] + + src[PRERELEASELOOSE] + '?' + + src[BUILD] + '?'; + +var LOOSE = R++; +src[LOOSE] = '^' + LOOSEPLAIN + '$'; + +var GTLT = R++; +src[GTLT] = '((?:<|>)?=?)'; + +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifer, meaning "any version" +// Only the first item is strictly required. +var XRANGEIDENTIFIERLOOSE = R++; +src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'; +var XRANGEIDENTIFIER = R++; +src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'; + +var XRANGEPLAIN = R++; +src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + + '(?:' + src[PRERELEASE] + ')?' + + src[BUILD] + '?' + + ')?)?'; + +var XRANGEPLAINLOOSE = R++; +src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + + '(?:' + src[PRERELEASELOOSE] + ')?' + + src[BUILD] + '?' + + ')?)?'; + +var XRANGE = R++; +src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'; +var XRANGELOOSE = R++; +src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'; + +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +var COERCE = R++; +src[COERCE] = '(?:^|[^\\d])' + + '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' + + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + + '(?:$|[^\\d])'; + +// Tilde ranges. +// Meaning is "reasonably at or greater than" +var LONETILDE = R++; +src[LONETILDE] = '(?:~>?)'; + +var TILDETRIM = R++; +src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'; +re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g'); +var tildeTrimReplace = '$1~'; + +var TILDE = R++; +src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'; +var TILDELOOSE = R++; +src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'; + +// Caret ranges. +// Meaning is "at least and backwards compatible with" +var LONECARET = R++; +src[LONECARET] = '(?:\\^)'; + +var CARETTRIM = R++; +src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'; +re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g'); +var caretTrimReplace = '$1^'; + +var CARET = R++; +src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'; +var CARETLOOSE = R++; +src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'; + +// A simple gt/lt/eq thing, or just "" to indicate "any version" +var COMPARATORLOOSE = R++; +src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'; +var COMPARATOR = R++; +src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'; + + +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +var COMPARATORTRIM = R++; +src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + + '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'; + +// this one has to use the /g flag +re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g'); +var comparatorTrimReplace = '$1$2$3'; + + +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +var HYPHENRANGE = R++; +src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + + '\\s+-\\s+' + + '(' + src[XRANGEPLAIN] + ')' + + '\\s*$'; + +var HYPHENRANGELOOSE = R++; +src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + + '\\s+-\\s+' + + '(' + src[XRANGEPLAINLOOSE] + ')' + + '\\s*$'; + +// Star ranges basically just allow anything at all. +var STAR = R++; +src[STAR] = '(<|>)?=?\\s*\\*'; + +// Compile to actual regexp objects. +// All are flag-free, unless they were created above with a flag. +for (var i = 0; i < R; i++) { + debug(i, src[i]); + if (!re[i]) + re[i] = new RegExp(src[i]); +} + +exports.parse = parse; +function parse(version, loose) { + if (version instanceof SemVer) + return version; + + if (typeof version !== 'string') + return null; + + if (version.length > MAX_LENGTH) + return null; + + var r = loose ? re[LOOSE] : re[FULL]; + if (!r.test(version)) + return null; + + try { + return new SemVer(version, loose); + } catch (er) { + return null; + } +} + +exports.valid = valid; +function valid(version, loose) { + var v = parse(version, loose); + return v ? v.version : null; +} + + +exports.clean = clean; +function clean(version, loose) { + var s = parse(version.trim().replace(/^[=v]+/, ''), loose); + return s ? s.version : null; +} + +exports.SemVer = SemVer; + +function SemVer(version, loose) { + if (version instanceof SemVer) { + if (version.loose === loose) + return version; + else + version = version.version; + } else if (typeof version !== 'string') { + throw new TypeError('Invalid Version: ' + version); + } + + if (version.length > MAX_LENGTH) + throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') + + if (!(this instanceof SemVer)) + return new SemVer(version, loose); + + debug('SemVer', version, loose); + this.loose = loose; + var m = version.trim().match(loose ? re[LOOSE] : re[FULL]); + + if (!m) + throw new TypeError('Invalid Version: ' + version); + + this.raw = version; + + // these are actually numbers + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) + throw new TypeError('Invalid major version') + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) + throw new TypeError('Invalid minor version') + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) + throw new TypeError('Invalid patch version') + + // numberify any prerelease numeric ids + if (!m[4]) + this.prerelease = []; + else + this.prerelease = m[4].split('.').map(function(id) { + if (/^[0-9]+$/.test(id)) { + var num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) + return num; + } + return id; + }); + + this.build = m[5] ? m[5].split('.') : []; + this.format(); +} + +SemVer.prototype.format = function() { + this.version = this.major + '.' + this.minor + '.' + this.patch; + if (this.prerelease.length) + this.version += '-' + this.prerelease.join('.'); + return this.version; +}; + +SemVer.prototype.toString = function() { + return this.version; +}; + +SemVer.prototype.compare = function(other) { + debug('SemVer.compare', this.version, this.loose, other); + if (!(other instanceof SemVer)) + other = new SemVer(other, this.loose); + + return this.compareMain(other) || this.comparePre(other); +}; + +SemVer.prototype.compareMain = function(other) { + if (!(other instanceof SemVer)) + other = new SemVer(other, this.loose); + + return compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch); +}; + +SemVer.prototype.comparePre = function(other) { + if (!(other instanceof SemVer)) + other = new SemVer(other, this.loose); + + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) + return -1; + else if (!this.prerelease.length && other.prerelease.length) + return 1; + else if (!this.prerelease.length && !other.prerelease.length) + return 0; + + var i = 0; + do { + var a = this.prerelease[i]; + var b = other.prerelease[i]; + debug('prerelease compare', i, a, b); + if (a === undefined && b === undefined) + return 0; + else if (b === undefined) + return 1; + else if (a === undefined) + return -1; + else if (a === b) + continue; + else + return compareIdentifiers(a, b); + } while (++i); +}; + +// preminor will bump the version up to the next minor release, and immediately +// down to pre-release. premajor and prepatch work the same way. +SemVer.prototype.inc = function(release, identifier) { + switch (release) { + case 'premajor': + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc('pre', identifier); + break; + case 'preminor': + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc('pre', identifier); + break; + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0; + this.inc('patch', identifier); + this.inc('pre', identifier); + break; + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) + this.inc('patch', identifier); + this.inc('pre', identifier); + break; + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) + this.major++; + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) + this.minor++; + this.patch = 0; + this.prerelease = []; + break; + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) + this.patch++; + this.prerelease = []; + break; + // This probably shouldn't be used publicly. + // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. + case 'pre': + if (this.prerelease.length === 0) + this.prerelease = [0]; + else { + var i = this.prerelease.length; + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++; + i = -2; + } + } + if (i === -1) // didn't increment anything + this.prerelease.push(0); + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + if (this.prerelease[0] === identifier) { + if (isNaN(this.prerelease[1])) + this.prerelease = [identifier, 0]; + } else + this.prerelease = [identifier, 0]; + } + break; + + default: + throw new Error('invalid increment argument: ' + release); + } + this.format(); + this.raw = this.version; + return this; +}; + +exports.inc = inc; +function inc(version, release, loose, identifier) { + if (typeof(loose) === 'string') { + identifier = loose; + loose = undefined; + } + + try { + return new SemVer(version, loose).inc(release, identifier).version; + } catch (er) { + return null; + } +} + +exports.diff = diff; +function diff(version1, version2) { + if (eq(version1, version2)) { + return null; + } else { + var v1 = parse(version1); + var v2 = parse(version2); + if (v1.prerelease.length || v2.prerelease.length) { + for (var key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key] !== v2[key]) { + return 'pre'+key; + } + } + } + return 'prerelease'; + } + for (var key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key] !== v2[key]) { + return key; + } + } + } + } +} + +exports.compareIdentifiers = compareIdentifiers; + +var numeric = /^[0-9]+$/; +function compareIdentifiers(a, b) { + var anum = numeric.test(a); + var bnum = numeric.test(b); + + if (anum && bnum) { + a = +a; + b = +b; + } + + return (anum && !bnum) ? -1 : + (bnum && !anum) ? 1 : + a < b ? -1 : + a > b ? 1 : + 0; +} + +exports.rcompareIdentifiers = rcompareIdentifiers; +function rcompareIdentifiers(a, b) { + return compareIdentifiers(b, a); +} + +exports.major = major; +function major(a, loose) { + return new SemVer(a, loose).major; +} + +exports.minor = minor; +function minor(a, loose) { + return new SemVer(a, loose).minor; +} + +exports.patch = patch; +function patch(a, loose) { + return new SemVer(a, loose).patch; +} + +exports.compare = compare; +function compare(a, b, loose) { + return new SemVer(a, loose).compare(new SemVer(b, loose)); +} + +exports.compareLoose = compareLoose; +function compareLoose(a, b) { + return compare(a, b, true); +} + +exports.rcompare = rcompare; +function rcompare(a, b, loose) { + return compare(b, a, loose); +} + +exports.sort = sort; +function sort(list, loose) { + return list.sort(function(a, b) { + return exports.compare(a, b, loose); + }); +} + +exports.rsort = rsort; +function rsort(list, loose) { + return list.sort(function(a, b) { + return exports.rcompare(a, b, loose); + }); +} + +exports.gt = gt; +function gt(a, b, loose) { + return compare(a, b, loose) > 0; +} + +exports.lt = lt; +function lt(a, b, loose) { + return compare(a, b, loose) < 0; +} + +exports.eq = eq; +function eq(a, b, loose) { + return compare(a, b, loose) === 0; +} + +exports.neq = neq; +function neq(a, b, loose) { + return compare(a, b, loose) !== 0; +} + +exports.gte = gte; +function gte(a, b, loose) { + return compare(a, b, loose) >= 0; +} + +exports.lte = lte; +function lte(a, b, loose) { + return compare(a, b, loose) <= 0; +} + +exports.cmp = cmp; +function cmp(a, op, b, loose) { + var ret; + switch (op) { + case '===': + if (typeof a === 'object') a = a.version; + if (typeof b === 'object') b = b.version; + ret = a === b; + break; + case '!==': + if (typeof a === 'object') a = a.version; + if (typeof b === 'object') b = b.version; + ret = a !== b; + break; + case '': case '=': case '==': ret = eq(a, b, loose); break; + case '!=': ret = neq(a, b, loose); break; + case '>': ret = gt(a, b, loose); break; + case '>=': ret = gte(a, b, loose); break; + case '<': ret = lt(a, b, loose); break; + case '<=': ret = lte(a, b, loose); break; + default: throw new TypeError('Invalid operator: ' + op); + } + return ret; +} + +exports.Comparator = Comparator; +function Comparator(comp, loose) { + if (comp instanceof Comparator) { + if (comp.loose === loose) + return comp; + else + comp = comp.value; + } + + if (!(this instanceof Comparator)) + return new Comparator(comp, loose); + + debug('comparator', comp, loose); + this.loose = loose; + this.parse(comp); + + if (this.semver === ANY) + this.value = ''; + else + this.value = this.operator + this.semver.version; + + debug('comp', this); +} + +var ANY = {}; +Comparator.prototype.parse = function(comp) { + var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; + var m = comp.match(r); + + if (!m) + throw new TypeError('Invalid comparator: ' + comp); + + this.operator = m[1]; + if (this.operator === '=') + this.operator = ''; + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) + this.semver = ANY; + else + this.semver = new SemVer(m[2], this.loose); +}; + +Comparator.prototype.toString = function() { + return this.value; +}; + +Comparator.prototype.test = function(version) { + debug('Comparator.test', version, this.loose); + + if (this.semver === ANY) + return true; + + if (typeof version === 'string') + version = new SemVer(version, this.loose); + + return cmp(version, this.operator, this.semver, this.loose); +}; + +Comparator.prototype.intersects = function(comp, loose) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required'); + } + + var rangeTmp; + + if (this.operator === '') { + rangeTmp = new Range(comp.value, loose); + return satisfies(this.value, rangeTmp, loose); + } else if (comp.operator === '') { + rangeTmp = new Range(this.value, loose); + return satisfies(comp.semver, rangeTmp, loose); + } + + var sameDirectionIncreasing = + (this.operator === '>=' || this.operator === '>') && + (comp.operator === '>=' || comp.operator === '>'); + var sameDirectionDecreasing = + (this.operator === '<=' || this.operator === '<') && + (comp.operator === '<=' || comp.operator === '<'); + var sameSemVer = this.semver.version === comp.semver.version; + var differentDirectionsInclusive = + (this.operator === '>=' || this.operator === '<=') && + (comp.operator === '>=' || comp.operator === '<='); + var oppositeDirectionsLessThan = + cmp(this.semver, '<', comp.semver, loose) && + ((this.operator === '>=' || this.operator === '>') && + (comp.operator === '<=' || comp.operator === '<')); + var oppositeDirectionsGreaterThan = + cmp(this.semver, '>', comp.semver, loose) && + ((this.operator === '<=' || this.operator === '<') && + (comp.operator === '>=' || comp.operator === '>')); + + return sameDirectionIncreasing || sameDirectionDecreasing || + (sameSemVer && differentDirectionsInclusive) || + oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; +}; + + +exports.Range = Range; +function Range(range, loose) { + if (range instanceof Range) { + if (range.loose === loose) { + return range; + } else { + return new Range(range.raw, loose); + } + } + + if (range instanceof Comparator) { + return new Range(range.value, loose); + } + + if (!(this instanceof Range)) + return new Range(range, loose); + + this.loose = loose; + + // First, split based on boolean or || + this.raw = range; + this.set = range.split(/\s*\|\|\s*/).map(function(range) { + return this.parseRange(range.trim()); + }, this).filter(function(c) { + // throw out any that are not relevant for whatever reason + return c.length; + }); + + if (!this.set.length) { + throw new TypeError('Invalid SemVer Range: ' + range); + } + + this.format(); +} + +Range.prototype.format = function() { + this.range = this.set.map(function(comps) { + return comps.join(' ').trim(); + }).join('||').trim(); + return this.range; +}; + +Range.prototype.toString = function() { + return this.range; +}; + +Range.prototype.parseRange = function(range) { + var loose = this.loose; + range = range.trim(); + debug('range', range, loose); + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]; + range = range.replace(hr, hyphenReplace); + debug('hyphen replace', range); + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace); + debug('comparator trim', range, re[COMPARATORTRIM]); + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[TILDETRIM], tildeTrimReplace); + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[CARETTRIM], caretTrimReplace); + + // normalize spaces + range = range.split(/\s+/).join(' '); + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; + var set = range.split(' ').map(function(comp) { + return parseComparator(comp, loose); + }).join(' ').split(/\s+/); + if (this.loose) { + // in loose mode, throw out any that are not valid comparators + set = set.filter(function(comp) { + return !!comp.match(compRe); + }); + } + set = set.map(function(comp) { + return new Comparator(comp, loose); + }); + + return set; +}; + +Range.prototype.intersects = function(range, loose) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required'); + } + + return this.set.some(function(thisComparators) { + return thisComparators.every(function(thisComparator) { + return range.set.some(function(rangeComparators) { + return rangeComparators.every(function(rangeComparator) { + return thisComparator.intersects(rangeComparator, loose); + }); + }); + }); + }); +}; + +// Mostly just for testing and legacy API reasons +exports.toComparators = toComparators; +function toComparators(range, loose) { + return new Range(range, loose).set.map(function(comp) { + return comp.map(function(c) { + return c.value; + }).join(' ').trim().split(' '); + }); +} + +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +function parseComparator(comp, loose) { + debug('comp', comp); + comp = replaceCarets(comp, loose); + debug('caret', comp); + comp = replaceTildes(comp, loose); + debug('tildes', comp); + comp = replaceXRanges(comp, loose); + debug('xrange', comp); + comp = replaceStars(comp, loose); + debug('stars', comp); + return comp; +} + +function isX(id) { + return !id || id.toLowerCase() === 'x' || id === '*'; +} + +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 +function replaceTildes(comp, loose) { + return comp.trim().split(/\s+/).map(function(comp) { + return replaceTilde(comp, loose); + }).join(' '); +} + +function replaceTilde(comp, loose) { + var r = loose ? re[TILDELOOSE] : re[TILDE]; + return comp.replace(r, function(_, M, m, p, pr) { + debug('tilde', comp, _, M, m, p, pr); + var ret; + + if (isX(M)) + ret = ''; + else if (isX(m)) + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; + else if (isX(p)) + // ~1.2 == >=1.2.0 <1.3.0 + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; + else if (pr) { + debug('replaceTilde pr', pr); + if (pr.charAt(0) !== '-') + pr = '-' + pr; + ret = '>=' + M + '.' + m + '.' + p + pr + + ' <' + M + '.' + (+m + 1) + '.0'; + } else + // ~1.2.3 == >=1.2.3 <1.3.0 + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0'; + + debug('tilde return', ret); + return ret; + }); +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 +// ^1.2.3 --> >=1.2.3 <2.0.0 +// ^1.2.0 --> >=1.2.0 <2.0.0 +function replaceCarets(comp, loose) { + return comp.trim().split(/\s+/).map(function(comp) { + return replaceCaret(comp, loose); + }).join(' '); +} + +function replaceCaret(comp, loose) { + debug('caret', comp, loose); + var r = loose ? re[CARETLOOSE] : re[CARET]; + return comp.replace(r, function(_, M, m, p, pr) { + debug('caret', comp, _, M, m, p, pr); + var ret; + + if (isX(M)) + ret = ''; + else if (isX(m)) + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; + else if (isX(p)) { + if (M === '0') + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; + else + ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'; + } else if (pr) { + debug('replaceCaret pr', pr); + if (pr.charAt(0) !== '-') + pr = '-' + pr; + if (M === '0') { + if (m === '0') + ret = '>=' + M + '.' + m + '.' + p + pr + + ' <' + M + '.' + m + '.' + (+p + 1); + else + ret = '>=' + M + '.' + m + '.' + p + pr + + ' <' + M + '.' + (+m + 1) + '.0'; + } else + ret = '>=' + M + '.' + m + '.' + p + pr + + ' <' + (+M + 1) + '.0.0'; + } else { + debug('no pr'); + if (M === '0') { + if (m === '0') + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + m + '.' + (+p + 1); + else + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0'; + } else + ret = '>=' + M + '.' + m + '.' + p + + ' <' + (+M + 1) + '.0.0'; + } + + debug('caret return', ret); + return ret; + }); +} + +function replaceXRanges(comp, loose) { + debug('replaceXRanges', comp, loose); + return comp.split(/\s+/).map(function(comp) { + return replaceXRange(comp, loose); + }).join(' '); +} + +function replaceXRange(comp, loose) { + comp = comp.trim(); + var r = loose ? re[XRANGELOOSE] : re[XRANGE]; + return comp.replace(r, function(ret, gtlt, M, m, p, pr) { + debug('xRange', comp, ret, gtlt, M, m, p, pr); + var xM = isX(M); + var xm = xM || isX(m); + var xp = xm || isX(p); + var anyX = xp; + + if (gtlt === '=' && anyX) + gtlt = ''; + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0'; + } else { + // nothing is forbidden + ret = '*'; + } + } else if (gtlt && anyX) { + // replace X with 0 + if (xm) + m = 0; + if (xp) + p = 0; + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + // >1.2.3 => >= 1.2.4 + gtlt = '>='; + if (xm) { + M = +M + 1; + m = 0; + p = 0; + } else if (xp) { + m = +m + 1; + p = 0; + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<'; + if (xm) + M = +M + 1; + else + m = +m + 1; + } + + ret = gtlt + M + '.' + m + '.' + p; + } else if (xm) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; + } else if (xp) { + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; + } + + debug('xRange return', ret); + + return ret; + }); +} + +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +function replaceStars(comp, loose) { + debug('replaceStars', comp, loose); + // Looseness is ignored here. star is always as loose as it gets! + return comp.trim().replace(re[STAR], ''); +} + +// This function is passed to string.replace(re[HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0 +function hyphenReplace($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr, tb) { + + if (isX(fM)) + from = ''; + else if (isX(fm)) + from = '>=' + fM + '.0.0'; + else if (isX(fp)) + from = '>=' + fM + '.' + fm + '.0'; + else + from = '>=' + from; + + if (isX(tM)) + to = ''; + else if (isX(tm)) + to = '<' + (+tM + 1) + '.0.0'; + else if (isX(tp)) + to = '<' + tM + '.' + (+tm + 1) + '.0'; + else if (tpr) + to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr; + else + to = '<=' + to; + + return (from + ' ' + to).trim(); +} + + +// if ANY of the sets match ALL of its comparators, then pass +Range.prototype.test = function(version) { + if (!version) + return false; + + if (typeof version === 'string') + version = new SemVer(version, this.loose); + + for (var i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version)) + return true; + } + return false; +}; + +function testSet(set, version) { + for (var i = 0; i < set.length; i++) { + if (!set[i].test(version)) + return false; + } + + if (version.prerelease.length) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (var i = 0; i < set.length; i++) { + debug(set[i].semver); + if (set[i].semver === ANY) + continue; + + if (set[i].semver.prerelease.length > 0) { + var allowed = set[i].semver; + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) + return true; + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false; + } + + return true; +} + +exports.satisfies = satisfies; +function satisfies(version, range, loose) { + try { + range = new Range(range, loose); + } catch (er) { + return false; + } + return range.test(version); +} + +exports.maxSatisfying = maxSatisfying; +function maxSatisfying(versions, range, loose) { + var max = null; + var maxSV = null; + try { + var rangeObj = new Range(range, loose); + } catch (er) { + return null; + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { // satisfies(v, range, loose) + if (!max || maxSV.compare(v) === -1) { // compare(max, v, true) + max = v; + maxSV = new SemVer(max, loose); + } + } + }) + return max; +} + +exports.minSatisfying = minSatisfying; +function minSatisfying(versions, range, loose) { + var min = null; + var minSV = null; + try { + var rangeObj = new Range(range, loose); + } catch (er) { + return null; + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { // satisfies(v, range, loose) + if (!min || minSV.compare(v) === 1) { // compare(min, v, true) + min = v; + minSV = new SemVer(min, loose); + } + } + }) + return min; +} + +exports.validRange = validRange; +function validRange(range, loose) { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, loose).range || '*'; + } catch (er) { + return null; + } +} + +// Determine if version is less than all the versions possible in the range +exports.ltr = ltr; +function ltr(version, range, loose) { + return outside(version, range, '<', loose); +} + +// Determine if version is greater than all the versions possible in the range. +exports.gtr = gtr; +function gtr(version, range, loose) { + return outside(version, range, '>', loose); +} + +exports.outside = outside; +function outside(version, range, hilo, loose) { + version = new SemVer(version, loose); + range = new Range(range, loose); + + var gtfn, ltefn, ltfn, comp, ecomp; + switch (hilo) { + case '>': + gtfn = gt; + ltefn = lte; + ltfn = lt; + comp = '>'; + ecomp = '>='; + break; + case '<': + gtfn = lt; + ltefn = gte; + ltfn = gt; + comp = '<'; + ecomp = '<='; + break; + default: + throw new TypeError('Must provide a hilo val of "<" or ">"'); + } + + // If it satisifes the range it is not outside + if (satisfies(version, range, loose)) { + return false; + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i]; + + var high = null; + var low = null; + + comparators.forEach(function(comparator) { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator; + low = low || comparator; + if (gtfn(comparator.semver, high.semver, loose)) { + high = comparator; + } else if (ltfn(comparator.semver, low.semver, loose)) { + low = comparator; + } + }); + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false; + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false; + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false; + } + } + return true; +} + +exports.prerelease = prerelease; +function prerelease(version, loose) { + var parsed = parse(version, loose); + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null; +} + +exports.intersects = intersects; +function intersects(r1, r2, loose) { + r1 = new Range(r1, loose) + r2 = new Range(r2, loose) + return r1.intersects(r2) +} + +exports.coerce = coerce; +function coerce(version) { + if (version instanceof SemVer) + return version; + + if (typeof version !== 'string') + return null; + + var match = version.match(re[COERCE]); + + if (match == null) + return null; + + return parse((match[1] || '0') + '.' + (match[2] || '0') + '.' + (match[3] || '0')); +} + + +/***/ }), +/* 113 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +const isWin = process.platform === 'win32'; + +function notFoundError(original, syscall) { + return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), { + code: 'ENOENT', + errno: 'ENOENT', + syscall: `${syscall} ${original.command}`, + path: original.command, + spawnargs: original.args, + }); +} + +function hookChildProcess(cp, parsed) { + if (!isWin) { + return; + } + + const originalEmit = cp.emit; + + cp.emit = function (name, arg1) { + // If emitting "exit" event and exit code is 1, we need to check if + // the command exists and emit an "error" instead + // See https://github.com/IndigoUnited/node-cross-spawn/issues/16 + if (name === 'exit') { + const err = verifyENOENT(arg1, parsed, 'spawn'); + + if (err) { + return originalEmit.call(cp, 'error', err); + } + } + + return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params + }; +} + +function verifyENOENT(status, parsed) { + if (isWin && status === 1 && !parsed.file) { + return notFoundError(parsed.original, 'spawn'); + } + + return null; +} + +function verifyENOENTSync(status, parsed) { + if (isWin && status === 1 && !parsed.file) { + return notFoundError(parsed.original, 'spawnSync'); + } + + return null; +} + +module.exports = { + hookChildProcess, + verifyENOENT, + verifyENOENTSync, + notFoundError, +}; + + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +module.exports = function (x) { + var lf = typeof x === 'string' ? '\n' : '\n'.charCodeAt(); + var cr = typeof x === 'string' ? '\r' : '\r'.charCodeAt(); + + if (x[x.length - 1] === lf) { + x = x.slice(0, x.length - 1); + } + + if (x[x.length - 1] === cr) { + x = x.slice(0, x.length - 1); + } + + return x; +}; + + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const path = __webpack_require__(16); +const pathKey = __webpack_require__(116); + +module.exports = opts => { + opts = Object.assign({ + cwd: process.cwd(), + path: process.env[pathKey()] + }, opts); + + let prev; + let pth = path.resolve(opts.cwd); + const ret = []; + + while (prev !== pth) { + ret.push(path.join(pth, 'node_modules/.bin')); + prev = pth; + pth = path.resolve(pth, '..'); + } + + // ensure the running `node` binary is used + ret.push(path.dirname(process.execPath)); + + return ret.concat(opts.path).join(path.delimiter); +}; + +module.exports.env = opts => { + opts = Object.assign({ + env: process.env + }, opts); + + const env = Object.assign({}, opts.env); + const path = pathKey({env}); + + opts.path = env[path]; + env[path] = module.exports(opts); + + return env; +}; + + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +module.exports = opts => { + opts = opts || {}; + + const env = opts.env || process.env; + const platform = opts.platform || process.platform; + + if (platform !== 'win32') { + return 'PATH'; + } + + return Object.keys(env).find(x => x.toUpperCase() === 'PATH') || 'Path'; +}; + + +/***/ }), +/* 117 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isStream = module.exports = function (stream) { + return stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function'; +}; + +isStream.writable = function (stream) { + return isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object'; +}; + +isStream.readable = function (stream) { + return isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object'; +}; + +isStream.duplex = function (stream) { + return isStream.writable(stream) && isStream.readable(stream); +}; + +isStream.transform = function (stream) { + return isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object'; +}; + + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const pump = __webpack_require__(119); +const bufferStream = __webpack_require__(121); + +class MaxBufferError extends Error { + constructor() { + super('maxBuffer exceeded'); + this.name = 'MaxBufferError'; + } +} + +function getStream(inputStream, options) { + if (!inputStream) { + return Promise.reject(new Error('Expected a stream')); + } + + options = Object.assign({maxBuffer: Infinity}, options); + + const {maxBuffer} = options; + + let stream; + return new Promise((resolve, reject) => { + const rejectPromise = error => { + if (error) { // A null check + error.bufferedData = stream.getBufferedValue(); + } + reject(error); + }; + + stream = pump(inputStream, bufferStream(options), error => { + if (error) { + rejectPromise(error); + return; + } + + resolve(); + }); + + stream.on('data', () => { + if (stream.getBufferedLength() > maxBuffer) { + rejectPromise(new MaxBufferError()); + } + }); + }).then(() => stream.getBufferedValue()); +} + +module.exports = getStream; +module.exports.buffer = (stream, options) => getStream(stream, Object.assign({}, options, {encoding: 'buffer'})); +module.exports.array = (stream, options) => getStream(stream, Object.assign({}, options, {array: true})); +module.exports.MaxBufferError = MaxBufferError; + + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __webpack_require__) { + +var once = __webpack_require__(51) +var eos = __webpack_require__(120) +var fs = __webpack_require__(23) // we only need fs to get the ReadStream and WriteStream prototypes + +var noop = function () {} +var ancient = /^v?\.0/.test(process.version) + +var isFn = function (fn) { + return typeof fn === 'function' +} + +var isFS = function (stream) { + if (!ancient) return false // newer node version do not need to care about fs is a special way + if (!fs) return false // browser + return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close) +} + +var isRequest = function (stream) { + return stream.setHeader && isFn(stream.abort) +} + +var destroyer = function (stream, reading, writing, callback) { + callback = once(callback) + + var closed = false + stream.on('close', function () { + closed = true + }) + + eos(stream, {readable: reading, writable: writing}, function (err) { + if (err) return callback(err) + closed = true + callback() + }) + + var destroyed = false + return function (err) { + if (closed) return + if (destroyed) return + destroyed = true + + if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks + if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want + + if (isFn(stream.destroy)) return stream.destroy() + + callback(err || new Error('stream was destroyed')) + } +} + +var call = function (fn) { + fn() +} + +var pipe = function (from, to) { + return from.pipe(to) +} + +var pump = function () { + var streams = Array.prototype.slice.call(arguments) + var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop + + if (Array.isArray(streams[0])) streams = streams[0] + if (streams.length < 2) throw new Error('pump requires two streams per minimum') + + var error + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1 + var writing = i > 0 + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err + if (err) destroys.forEach(call) + if (reading) return + destroys.forEach(call) + callback(error) + }) + }) + + return streams.reduce(pipe) +} + +module.exports = pump + + +/***/ }), +/* 120 */ +/***/ (function(module, exports, __webpack_require__) { + +var once = __webpack_require__(51); + +var noop = function() {}; + +var isRequest = function(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +}; + +var isChildProcess = function(stream) { + return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 +}; + +var eos = function(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + + callback = once(callback || noop); + + var ws = stream._writableState; + var rs = stream._readableState; + var readable = opts.readable || (opts.readable !== false && stream.readable); + var writable = opts.writable || (opts.writable !== false && stream.writable); + + var onlegacyfinish = function() { + if (!stream.writable) onfinish(); + }; + + var onfinish = function() { + writable = false; + if (!readable) callback.call(stream); + }; + + var onend = function() { + readable = false; + if (!writable) callback.call(stream); + }; + + var onexit = function(exitCode) { + callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null); + }; + + var onerror = function(err) { + callback.call(stream, err); + }; + + var onclose = function() { + if (readable && !(rs && rs.ended)) return callback.call(stream, new Error('premature close')); + if (writable && !(ws && ws.ended)) return callback.call(stream, new Error('premature close')); + }; + + var onrequest = function() { + stream.req.on('finish', onfinish); + }; + + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest(); + else stream.on('request', onrequest); + } else if (writable && !ws) { // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } + + if (isChildProcess(stream)) stream.on('exit', onexit); + + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + + return function() { + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('exit', onexit); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +}; + +module.exports = eos; + + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const {PassThrough} = __webpack_require__(28); + +module.exports = options => { + options = Object.assign({}, options); + + const {array} = options; + let {encoding} = options; + const buffer = encoding === 'buffer'; + let objectMode = false; + + if (array) { + objectMode = !(encoding || buffer); + } else { + encoding = encoding || 'utf8'; + } + + if (buffer) { + encoding = null; + } + + let len = 0; + const ret = []; + const stream = new PassThrough({objectMode}); + + if (encoding) { + stream.setEncoding(encoding); + } + + stream.on('data', chunk => { + ret.push(chunk); + + if (objectMode) { + len = ret.length; + } else { + len += chunk.length; + } + }); + + stream.getBufferedValue = () => { + if (array) { + return ret; + } + + return buffer ? Buffer.concat(ret, len) : ret.join(''); + }; + + stream.getBufferedLength = () => len; + + return stream; +}; + + +/***/ }), +/* 122 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +module.exports = (promise, onFinally) => { + onFinally = onFinally || (() => {}); + + return promise.then( + val => new Promise(resolve => { + resolve(onFinally()); + }).then(() => val), + err => new Promise(resolve => { + resolve(onFinally()); + }).then(() => { + throw err; + }) + ); +}; + + +/***/ }), +/* 123 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// Older verions of Node.js might not have `util.getSystemErrorName()`. +// In that case, fall back to a deprecated internal. +const util = __webpack_require__(29); + +let uv; + +if (typeof util.getSystemErrorName === 'function') { + module.exports = util.getSystemErrorName; +} else { + try { + uv = process.binding('uv'); + + if (typeof uv.errname !== 'function') { + throw new TypeError('uv.errname is not a function'); + } + } catch (err) { + console.error('execa/lib/errname: unable to establish process.binding(\'uv\')', err); + uv = null; + } + + module.exports = code => errname(uv, code); +} + +// Used for testing the fallback behavior +module.exports.__test__ = errname; + +function errname(uv, code) { + if (uv) { + return uv.errname(code); + } + + if (!(code < 0)) { + throw new Error('err >= 0'); + } + + return `Unknown system error ${code}`; +} + + + +/***/ }), +/* 124 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const alias = ['stdin', 'stdout', 'stderr']; + +const hasAlias = opts => alias.some(x => Boolean(opts[x])); + +module.exports = opts => { + if (!opts) { + return null; + } + + if (opts.stdio && hasAlias(opts)) { + throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${alias.map(x => `\`${x}\``).join(', ')}`); + } + + if (typeof opts.stdio === 'string') { + return opts.stdio; + } + + const stdio = opts.stdio || []; + + if (!Array.isArray(stdio)) { + throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``); + } + + const result = []; + const len = Math.max(stdio.length, alias.length); + + for (let i = 0; i < len; i++) { + let value = null; + + if (stdio[i] !== undefined) { + value = stdio[i]; + } else if (opts[alias[i]] !== undefined) { + value = opts[alias[i]]; + } + + result[i] = value; + } + + return result; +}; + + +/***/ }), +/* 125 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const chalk = __webpack_require__(2); + +const isSupported = process.platform !== 'win32' || process.env.CI || process.env.TERM === 'xterm-256color'; + +const main = { + info: chalk.blue('ℹ'), + success: chalk.green('✔'), + warning: chalk.yellow('⚠'), + error: chalk.red('✖') +}; + +const fallbacks = { + info: chalk.blue('i'), + success: chalk.green('√'), + warning: chalk.yellow('‼'), + error: chalk.red('×') +}; + +module.exports = isSupported ? main : fallbacks; + + +/***/ }), +/* 126 */ +/***/ (function(module, exports, __webpack_require__) { + +// Copyright IBM Corp. 2014,2018. All Rights Reserved. +// Node module: strong-log-transformer +// This file is licensed under the Apache License 2.0. +// License text available at https://opensource.org/licenses/Apache-2.0 + +module.exports = __webpack_require__(127); +module.exports.cli = __webpack_require__(132); + + +/***/ }), +/* 127 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// Copyright IBM Corp. 2014,2018. All Rights Reserved. +// Node module: strong-log-transformer +// This file is licensed under the Apache License 2.0. +// License text available at https://opensource.org/licenses/Apache-2.0 + + + +var stream = __webpack_require__(28); +var util = __webpack_require__(29); +var fs = __webpack_require__(23); + +var byline = __webpack_require__(128); +var through = __webpack_require__(130); +var duplexer = __webpack_require__(131); + +module.exports = Logger; + +Logger.DEFAULTS = { + format: 'text', + tag: '', + mergeMultiline: false, + timeStamp: false, +}; + +var formatters = { + text: textFormatter, + json: jsonFormatter, +} + +function Logger(options) { + var defaults = JSON.parse(JSON.stringify(Logger.DEFAULTS)); + options = util._extend(defaults, options || {}); + var catcher = new byline.LineStream; + var emitter = catcher; + var transforms = [ + objectifier(), + ]; + + if (options.tag) { + transforms.push(staticTagger(options.tag)); + } + + if (options.mergeMultiline) { + transforms.push(lineMerger()); + } + + // TODO + // if (options.pidStamp) { + // transforms.push(pidStamper(options.pid)); + // } + + // TODO + // if (options.workerStamp) { + // transforms.push(workerStamper(options.worker)); + // } + + transforms.push(formatters[options.format](options)); + + // restore line endings that were removed by byline + transforms.push(reLiner()); + + for (var t in transforms) { + emitter = emitter.pipe(transforms[t]); + } + + return duplexer(catcher, emitter); +} + +function reLiner() { + return through(appendNewline); + + function appendNewline(line) { + this.emit('data', line + '\n'); + } +} + +function objectifier() { + return through(objectify, null, {autoDestroy: false}); + + function objectify(line) { + this.emit('data', { + msg: line, + time: Date.now(), + }); + } +} + +function staticTagger(tag) { + return through(tagger); + + function tagger(logEvent) { + logEvent.tag = tag; + this.emit('data', logEvent); + } +} + +function textFormatter(options) { + return through(textify); + + function textify(logEvent) { + var line = util.format('%s%s', textifyTags(logEvent.tag), + logEvent.msg.toString()); + if (options.timeStamp) { + line = util.format('%s %s', new Date(logEvent.time).toISOString(), line); + } + this.emit('data', line.replace(/\n/g, '\\n')); + } + + function textifyTags(tags) { + var str = ''; + if (typeof tags === 'string') { + str = tags + ' '; + } else if (typeof tags === 'object') { + for (var t in tags) { + str += t + ':' + tags[t] + ' '; + } + } + return str; + } +} + +function jsonFormatter(options) { + return through(jsonify); + + function jsonify(logEvent) { + if (options.timeStamp) { + logEvent.time = new Date(logEvent.time).toISOString(); + } else { + delete logEvent.time; + } + logEvent.msg = logEvent.msg.toString(); + this.emit('data', JSON.stringify(logEvent)); + } +} + +function lineMerger(host) { + var previousLine = null; + var flushTimer = null; + var stream = through(lineMergerWrite, lineMergerEnd); + var flush = _flush.bind(stream); + + return stream; + + function lineMergerWrite(line) { + if (/^\s+/.test(line.msg)) { + if (previousLine) { + previousLine.msg += '\n' + line.msg; + } else { + previousLine = line; + } + } else { + flush(); + previousLine = line; + } + // rolling timeout + clearTimeout(flushTimer); + flushTimer = setTimeout(flush.bind(this), 10); + } + + function _flush() { + if (previousLine) { + this.emit('data', previousLine); + previousLine = null; + } + } + + function lineMergerEnd() { + flush.call(this); + this.emit('end'); + } +} + + +/***/ }), +/* 128 */ +/***/ (function(module, exports, __webpack_require__) { + +// Copyright (C) 2011-2015 John Hewson +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +var stream = __webpack_require__(28), + util = __webpack_require__(29), + timers = __webpack_require__(129); + +// convinience API +module.exports = function(readStream, options) { + return module.exports.createStream(readStream, options); +}; + +// basic API +module.exports.createStream = function(readStream, options) { + if (readStream) { + return createLineStream(readStream, options); + } else { + return new LineStream(options); + } +}; + +// deprecated API +module.exports.createLineStream = function(readStream) { + console.log('WARNING: byline#createLineStream is deprecated and will be removed soon'); + return createLineStream(readStream); +}; + +function createLineStream(readStream, options) { + if (!readStream) { + throw new Error('expected readStream'); + } + if (!readStream.readable) { + throw new Error('readStream must be readable'); + } + var ls = new LineStream(options); + readStream.pipe(ls); + return ls; +} + +// +// using the new node v0.10 "streams2" API +// + +module.exports.LineStream = LineStream; + +function LineStream(options) { + stream.Transform.call(this, options); + options = options || {}; + + // use objectMode to stop the output from being buffered + // which re-concatanates the lines, just without newlines. + this._readableState.objectMode = true; + this._lineBuffer = []; + this._keepEmptyLines = options.keepEmptyLines || false; + this._lastChunkEndedWithCR = false; + + // take the source's encoding if we don't have one + var self = this; + this.on('pipe', function(src) { + if (!self.encoding) { + // but we can't do this for old-style streams + if (src instanceof stream.Readable) { + self.encoding = src._readableState.encoding; + } + } + }); +} +util.inherits(LineStream, stream.Transform); + +LineStream.prototype._transform = function(chunk, encoding, done) { + // decode binary chunks as UTF-8 + encoding = encoding || 'utf8'; + + if (Buffer.isBuffer(chunk)) { + if (encoding == 'buffer') { + chunk = chunk.toString(); // utf8 + encoding = 'utf8'; + } + else { + chunk = chunk.toString(encoding); + } + } + this._chunkEncoding = encoding; + + // see: http://www.unicode.org/reports/tr18/#Line_Boundaries + var lines = chunk.split(/\r\n|[\n\v\f\r\x85\u2028\u2029]/g); + + // don't split CRLF which spans chunks + if (this._lastChunkEndedWithCR && chunk[0] == '\n') { + lines.shift(); + } + + if (this._lineBuffer.length > 0) { + this._lineBuffer[this._lineBuffer.length - 1] += lines[0]; + lines.shift(); + } + + this._lastChunkEndedWithCR = chunk[chunk.length - 1] == '\r'; + this._lineBuffer = this._lineBuffer.concat(lines); + this._pushBuffer(encoding, 1, done); +}; + +LineStream.prototype._pushBuffer = function(encoding, keep, done) { + // always buffer the last (possibly partial) line + while (this._lineBuffer.length > keep) { + var line = this._lineBuffer.shift(); + // skip empty lines + if (this._keepEmptyLines || line.length > 0 ) { + if (!this.push(this._reencode(line, encoding))) { + // when the high-water mark is reached, defer pushes until the next tick + var self = this; + timers.setImmediate(function() { + self._pushBuffer(encoding, keep, done); + }); + return; + } + } + } + done(); +}; + +LineStream.prototype._flush = function(done) { + this._pushBuffer(this._chunkEncoding, 0, done); +}; + +// see Readable::push +LineStream.prototype._reencode = function(line, chunkEncoding) { + if (this.encoding && this.encoding != chunkEncoding) { + return new Buffer(line, chunkEncoding).toString(this.encoding); + } + else if (this.encoding) { + // this should be the most common case, i.e. we're using an encoded source stream + return line; + } + else { + return new Buffer(line, chunkEncoding); + } +}; + + +/***/ }), +/* 129 */ +/***/ (function(module, exports) { + +module.exports = require("timers"); + +/***/ }), +/* 130 */ +/***/ (function(module, exports, __webpack_require__) { + +var Stream = __webpack_require__(28) + +// through +// +// a stream that does nothing but re-emit the input. +// useful for aggregating a series of changing but not ending streams into one stream) + +exports = module.exports = through +through.through = through + +//create a readable writable stream. + +function through (write, end, opts) { + write = write || function (data) { this.queue(data) } + end = end || function () { this.queue(null) } + + var ended = false, destroyed = false, buffer = [], _ended = false + var stream = new Stream() + stream.readable = stream.writable = true + stream.paused = false + +// stream.autoPause = !(opts && opts.autoPause === false) + stream.autoDestroy = !(opts && opts.autoDestroy === false) + + stream.write = function (data) { + write.call(this, data) + return !stream.paused + } + + function drain() { + while(buffer.length && !stream.paused) { + var data = buffer.shift() + if(null === data) + return stream.emit('end') + else + stream.emit('data', data) + } + } + + stream.queue = stream.push = function (data) { +// console.error(ended) + if(_ended) return stream + if(data === null) _ended = true + buffer.push(data) + drain() + return stream + } + + //this will be registered as the first 'end' listener + //must call destroy next tick, to make sure we're after any + //stream piped from here. + //this is only a problem if end is not emitted synchronously. + //a nicer way to do this is to make sure this is the last listener for 'end' + + stream.on('end', function () { + stream.readable = false + if(!stream.writable && stream.autoDestroy) + process.nextTick(function () { + stream.destroy() + }) + }) + + function _end () { + stream.writable = false + end.call(stream) + if(!stream.readable && stream.autoDestroy) + stream.destroy() + } + + stream.end = function (data) { + if(ended) return + ended = true + if(arguments.length) stream.write(data) + _end() // will emit or queue + return stream + } + + stream.destroy = function () { + if(destroyed) return + destroyed = true + ended = true + buffer.length = 0 + stream.writable = stream.readable = false + stream.emit('close') + return stream + } + + stream.pause = function () { + if(stream.paused) return + stream.paused = true + return stream + } + + stream.resume = function () { + if(stream.paused) { + stream.paused = false + stream.emit('resume') + } + drain() + //may have become paused again, + //as drain emits 'data'. + if(!stream.paused) + stream.emit('drain') + return stream + } + return stream +} + + + +/***/ }), +/* 131 */ +/***/ (function(module, exports, __webpack_require__) { + +var Stream = __webpack_require__(28) +var writeMethods = ["write", "end", "destroy"] +var readMethods = ["resume", "pause"] +var readEvents = ["data", "close"] +var slice = Array.prototype.slice + +module.exports = duplex + +function forEach (arr, fn) { + if (arr.forEach) { + return arr.forEach(fn) + } + + for (var i = 0; i < arr.length; i++) { + fn(arr[i], i) + } +} + +function duplex(writer, reader) { + var stream = new Stream() + var ended = false + + forEach(writeMethods, proxyWriter) + + forEach(readMethods, proxyReader) + + forEach(readEvents, proxyStream) + + reader.on("end", handleEnd) + + writer.on("drain", function() { + stream.emit("drain") + }) + + writer.on("error", reemit) + reader.on("error", reemit) + + stream.writable = writer.writable + stream.readable = reader.readable + + return stream + + function proxyWriter(methodName) { + stream[methodName] = method + + function method() { + return writer[methodName].apply(writer, arguments) + } + } + + function proxyReader(methodName) { + stream[methodName] = method + + function method() { + stream.emit(methodName) + var func = reader[methodName] + if (func) { + return func.apply(reader, arguments) + } + reader.emit(methodName) + } + } + + function proxyStream(methodName) { + reader.on(methodName, reemit) + + function reemit() { + var args = slice.call(arguments) + args.unshift(methodName) + stream.emit.apply(stream, args) + } + } + + function handleEnd() { + if (ended) { + return + } + ended = true + var args = slice.call(arguments) + args.unshift("end") + stream.emit.apply(stream, args) + } + + function reemit(err) { + stream.emit("error", err) + } +} + + +/***/ }), +/* 132 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// Copyright IBM Corp. 2014,2018. All Rights Reserved. +// Node module: strong-log-transformer +// This file is licensed under the Apache License 2.0. +// License text available at https://opensource.org/licenses/Apache-2.0 + + + +var minimist = __webpack_require__(133); +var path = __webpack_require__(16); + +var Logger = __webpack_require__(127); +var pkg = __webpack_require__(134); + +module.exports = cli; + +function cli(args) { + var opts = minimist(args.slice(2)); + var $0 = path.basename(args[1]); + var p = console.log.bind(console); + if (opts.v || opts.version) { + version($0, p); + } else if (opts.h || opts.help) { + usage($0, p); + } else if (args.length < 3) { + process.stdin.pipe(Logger()).pipe(process.stdout); + } else { + process.stdin.pipe(Logger(opts)).pipe(process.stdout); + } +} + +function version($0, p) { + p('%s v%s', pkg.name, pkg.version); +} + +function usage($0, p) { + var PADDING = ' '; + var opt, def; + p('Usage: %s [options]', $0); + p(''); + p('%s', pkg.description); + p(''); + p('OPTIONS:'); + for (opt in Logger.DEFAULTS) { + def = Logger.DEFAULTS[opt]; + if (typeof def === 'boolean') + boolOpt(opt, Logger.DEFAULTS[opt]); + else + stdOpt(opt, Logger.DEFAULTS[opt]); + } + p(''); + + function boolOpt(name, def) { + name = name + PADDING.slice(0, 20-name.length); + p(' --%s default: %s', name, def); + } + + function stdOpt(name, def) { + var value = name.toUpperCase() + + PADDING.slice(0, 19 - name.length*2); + p(' --%s %s default: %j', name, value, def); + } +} + + +/***/ }), +/* 133 */ +/***/ (function(module, exports) { + +module.exports = function (args, opts) { + if (!opts) opts = {}; + + var flags = { bools : {}, strings : {}, unknownFn: null }; + + if (typeof opts['unknown'] === 'function') { + flags.unknownFn = opts['unknown']; + } + + if (typeof opts['boolean'] === 'boolean' && opts['boolean']) { + flags.allBools = true; + } else { + [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { + flags.bools[key] = true; + }); + } + + var aliases = {}; + Object.keys(opts.alias || {}).forEach(function (key) { + aliases[key] = [].concat(opts.alias[key]); + aliases[key].forEach(function (x) { + aliases[x] = [key].concat(aliases[key].filter(function (y) { + return x !== y; + })); + }); + }); + + [].concat(opts.string).filter(Boolean).forEach(function (key) { + flags.strings[key] = true; + if (aliases[key]) { + flags.strings[aliases[key]] = true; + } + }); + + var defaults = opts['default'] || {}; + + var argv = { _ : [] }; + Object.keys(flags.bools).forEach(function (key) { + setArg(key, defaults[key] === undefined ? false : defaults[key]); + }); + + var notFlags = []; + + if (args.indexOf('--') !== -1) { + notFlags = args.slice(args.indexOf('--')+1); + args = args.slice(0, args.indexOf('--')); + } + + function argDefined(key, arg) { + return (flags.allBools && /^--[^=]+$/.test(arg)) || + flags.strings[key] || flags.bools[key] || aliases[key]; + } + + function setArg (key, val, arg) { + if (arg && flags.unknownFn && !argDefined(key, arg)) { + if (flags.unknownFn(arg) === false) return; + } + + var value = !flags.strings[key] && isNumber(val) + ? Number(val) : val + ; + setKey(argv, key.split('.'), value); + + (aliases[key] || []).forEach(function (x) { + setKey(argv, x.split('.'), value); + }); + } + + function setKey (obj, keys, value) { + var o = obj; + keys.slice(0,-1).forEach(function (key) { + if (o[key] === undefined) o[key] = {}; + o = o[key]; + }); + + var key = keys[keys.length - 1]; + if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') { + o[key] = value; + } + else if (Array.isArray(o[key])) { + o[key].push(value); + } + else { + o[key] = [ o[key], value ]; + } + } + + function aliasIsBoolean(key) { + return aliases[key].some(function (x) { + return flags.bools[x]; + }); + } + + for (var i = 0; i < args.length; i++) { + var arg = args[i]; + + if (/^--.+=/.test(arg)) { + // Using [\s\S] instead of . because js doesn't support the + // 'dotall' regex modifier. See: + // http://stackoverflow.com/a/1068308/13216 + var m = arg.match(/^--([^=]+)=([\s\S]*)$/); + var key = m[1]; + var value = m[2]; + if (flags.bools[key]) { + value = value !== 'false'; + } + setArg(key, value, arg); + } + else if (/^--no-.+/.test(arg)) { + var key = arg.match(/^--no-(.+)/)[1]; + setArg(key, false, arg); + } + else if (/^--.+/.test(arg)) { + var key = arg.match(/^--(.+)/)[1]; + var next = args[i + 1]; + if (next !== undefined && !/^-/.test(next) + && !flags.bools[key] + && !flags.allBools + && (aliases[key] ? !aliasIsBoolean(key) : true)) { + setArg(key, next, arg); + i++; + } + else if (/^(true|false)$/.test(next)) { + setArg(key, next === 'true', arg); + i++; + } + else { + setArg(key, flags.strings[key] ? '' : true, arg); + } + } + else if (/^-[^-]+/.test(arg)) { + var letters = arg.slice(1,-1).split(''); + + var broken = false; + for (var j = 0; j < letters.length; j++) { + var next = arg.slice(j+2); + + if (next === '-') { + setArg(letters[j], next, arg) + continue; + } + + if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) { + setArg(letters[j], next.split('=')[1], arg); + broken = true; + break; + } + + if (/[A-Za-z]/.test(letters[j]) + && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { + setArg(letters[j], next, arg); + broken = true; + break; + } + + if (letters[j+1] && letters[j+1].match(/\W/)) { + setArg(letters[j], arg.slice(j+2), arg); + broken = true; + break; + } + else { + setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg); + } + } + + var key = arg.slice(-1)[0]; + if (!broken && key !== '-') { + if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1]) + && !flags.bools[key] + && (aliases[key] ? !aliasIsBoolean(key) : true)) { + setArg(key, args[i+1], arg); + i++; + } + else if (args[i+1] && /true|false/.test(args[i+1])) { + setArg(key, args[i+1] === 'true', arg); + i++; + } + else { + setArg(key, flags.strings[key] ? '' : true, arg); + } + } + } + else { + if (!flags.unknownFn || flags.unknownFn(arg) !== false) { + argv._.push( + flags.strings['_'] || !isNumber(arg) ? arg : Number(arg) + ); + } + if (opts.stopEarly) { + argv._.push.apply(argv._, args.slice(i + 1)); + break; + } + } + } + + Object.keys(defaults).forEach(function (key) { + if (!hasKey(argv, key.split('.'))) { + setKey(argv, key.split('.'), defaults[key]); + + (aliases[key] || []).forEach(function (x) { + setKey(argv, x.split('.'), defaults[key]); + }); + } + }); + + if (opts['--']) { + argv['--'] = new Array(); + notFlags.forEach(function(key) { + argv['--'].push(key); + }); + } + else { + notFlags.forEach(function(key) { + argv._.push(key); + }); + } + + return argv; +}; + +function hasKey (obj, keys) { + var o = obj; + keys.slice(0,-1).forEach(function (key) { + o = (o[key] || {}); + }); + + var key = keys[keys.length - 1]; + return key in o; +} + +function isNumber (x) { + if (typeof x === 'number') return true; + if (/^0x[0-9a-f]+$/i.test(x)) return true; + return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); +} + + + +/***/ }), +/* 134 */ +/***/ (function(module) { + +module.exports = {"name":"strong-log-transformer","version":"2.0.0","description":"Stream transformer that prefixes lines with timestamps and other things.","author":"Ryan Graham ","license":"Apache-2.0","repository":{"type":"git","url":"git://github.com/strongloop/strong-log-transformer"},"keywords":["logging","streams"],"bugs":{"url":"https://github.com/strongloop/strong-log-transformer/issues"},"homepage":"https://github.com/strongloop/strong-log-transformer","directories":{"test":"test"},"bin":{"sl-log-transformer":"bin/sl-log-transformer.js"},"main":"index.js","scripts":{"test":"tap --100 test/test-*"},"dependencies":{"byline":"^5.0.0","duplexer":"^0.1.1","minimist":"^1.2.0","through":"^2.3.4"},"devDependencies":{"tap":"^12.0.1"},"engines":{"node":">=4"}}; + +/***/ }), +/* 135 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.copyWorkspacePackages = exports.workspacePackagePaths = undefined; + +let workspacePackagePaths = exports.workspacePackagePaths = (() => { + var _ref = _asyncToGenerator(function* (rootPath) { + const rootPkgJson = yield (0, _package_json.readPackageJson)(_path2.default.join(rootPath, 'package.json')); + if (!rootPkgJson.workspaces) { + return []; + } + const workspacesPathsPatterns = rootPkgJson.workspaces.packages; + let workspaceProjectsPaths = []; + for (const pattern of workspacesPathsPatterns) { + workspaceProjectsPaths = workspaceProjectsPaths.concat((yield packagesFromGlobPattern({ pattern, rootPath }))); + } + // Filter out exclude glob patterns + for (const pattern of workspacesPathsPatterns) { + if (pattern.startsWith('!')) { + const pathToRemove = _path2.default.join(rootPath, pattern.slice(1), 'package.json'); + workspaceProjectsPaths = workspaceProjectsPaths.filter(function (p) { + return p !== pathToRemove; + }); + } + } + return workspaceProjectsPaths; + }); + + return function workspacePackagePaths(_x) { + return _ref.apply(this, arguments); + }; +})(); + +let copyWorkspacePackages = exports.copyWorkspacePackages = (() => { + var _ref2 = _asyncToGenerator(function* (rootPath) { + const workspaceProjects = yield getWorkspaceProjects(rootPath); + for (const project of workspaceProjects.values()) { + const dest = _path2.default.resolve(rootPath, 'node_modules', project.name); + // Remove the symlink + yield (0, _fs.unlink)(dest); + // Copy in the package + yield (0, _fs.copyDirectory)(project.path, dest); + } + }); + + return function copyWorkspacePackages(_x2) { + return _ref2.apply(this, arguments); + }; +})(); + +let getWorkspaceProjects = (() => { + var _ref3 = _asyncToGenerator(function* (rootPath) { + const projectPaths = (0, _config.getProjectPaths)(rootPath, {}); + const projects = yield (0, _projects.getProjects)(rootPath, projectPaths); + for (const [key, project] of projects.entries()) { + if (!project.isWorkspaceProject) { + projects.delete(key); + } + } + return projects; + }); + + return function getWorkspaceProjects(_x3) { + return _ref3.apply(this, arguments); + }; +})(); + +var _glob = __webpack_require__(36); + +var _glob2 = _interopRequireDefault(_glob); + +var _path = __webpack_require__(16); + +var _path2 = _interopRequireDefault(_path); + +var _util = __webpack_require__(29); + +var _config = __webpack_require__(136); + +var _fs = __webpack_require__(20); + +var _package_json = __webpack_require__(54); + +var _projects = __webpack_require__(35); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + + +const glob = (0, _util.promisify)(_glob2.default); + +function packagesFromGlobPattern({ pattern, rootPath }) { + const globOptions = { + cwd: rootPath, + // Should throw in case of unusual errors when reading the file system + strict: true, + // Always returns absolute paths for matched files + absolute: true, + // Do not match ** against multiple filenames + // (This is only specified because we currently don't have a need for it.) + noglobstar: true + }; + return glob(_path2.default.join(pattern, 'package.json'), globOptions); +} + +/***/ }), +/* 136 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getProjectPaths = getProjectPaths; + +var _path = __webpack_require__(16); + +/** + * Returns all the paths where plugins are located + */ +function getProjectPaths(rootPath, options) { + const skipKibanaExtra = Boolean(options['skip-kibana-extra']); + const ossOnly = Boolean(options.oss); + const projectPaths = [rootPath, (0, _path.resolve)(rootPath, 'packages/*')]; + // This is needed in order to install the dependencies for the declared + // plugin functional used in the selenium functional tests. + // As we are now using the webpack dll for the client vendors dependencies + // when we run the plugin functional tests against the distributable + // dependencies used by such plugins like @eui, react and react-dom can't + // be loaded from the dll as the context is different from the one declared + // into the webpack dll reference plugin. + // In anyway, have a plugin declaring their own dependencies is the + // correct and the expect behavior. + projectPaths.push((0, _path.resolve)(rootPath, 'test/plugin_functional/plugins/*')); + if (!ossOnly) { + projectPaths.push((0, _path.resolve)(rootPath, 'x-pack')); + projectPaths.push((0, _path.resolve)(rootPath, 'x-pack/plugins/*')); + } + if (!skipKibanaExtra) { + projectPaths.push((0, _path.resolve)(rootPath, '../kibana-extra/*')); + projectPaths.push((0, _path.resolve)(rootPath, '../kibana-extra/*/packages/*')); + projectPaths.push((0, _path.resolve)(rootPath, '../kibana-extra/*/plugins/*')); + } + return projectPaths; +} /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/***/ }), +/* 137 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CleanCommand = undefined; + +var _chalk = __webpack_require__(2); + +var _chalk2 = _interopRequireDefault(_chalk); + +var _del = __webpack_require__(138); + +var _del2 = _interopRequireDefault(_del); + +var _ora = __webpack_require__(153); + +var _ora2 = _interopRequireDefault(_ora); + +var _path = __webpack_require__(16); + +var _fs = __webpack_require__(20); + +var _log = __webpack_require__(33); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + + +const CleanCommand = exports.CleanCommand = { + description: 'Remove the node_modules and target directories from all projects.', + name: 'clean', + run(projects) { + return _asyncToGenerator(function* () { + const toDelete = []; + for (const project of projects.values()) { + if (yield (0, _fs.isDirectory)(project.nodeModulesLocation)) { + toDelete.push({ + cwd: project.path, + pattern: (0, _path.relative)(project.path, project.nodeModulesLocation) + }); + } + if (yield (0, _fs.isDirectory)(project.targetLocation)) { + toDelete.push({ + cwd: project.path, + pattern: (0, _path.relative)(project.path, project.targetLocation) + }); + } + const { extraPatterns } = project.getCleanConfig(); + if (extraPatterns) { + toDelete.push({ + cwd: project.path, + pattern: extraPatterns + }); + } + } + if (toDelete.length === 0) { + _log.log.write(_chalk2.default.bold.green('\n\nNothing to delete')); + } else { + _log.log.write(_chalk2.default.bold.red('\n\nDeleting:\n')); + /** + * In order to avoid patterns like `/build` in packages from accidentally + * impacting files outside the package we use `process.chdir()` to change + * the cwd to the package and execute `del()` without the `force` option + * so it will check that each file being deleted is within the package. + * + * `del()` does support a `cwd` option, but it's only for resolving the + * patterns and does not impact the cwd check. + */ + const originalCwd = process.cwd(); + try { + for (const _ref of toDelete) { + const { pattern, cwd } = _ref; + + process.chdir(cwd); + const promise = (0, _del2.default)(pattern); + _ora2.default.promise(promise, (0, _path.relative)(originalCwd, (0, _path.join)(cwd, String(pattern)))); + yield promise; + } + } finally { + process.chdir(originalCwd); + } + } + })(); + } +}; + +/***/ }), +/* 138 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const path = __webpack_require__(16); +const globby = __webpack_require__(139); +const isPathCwd = __webpack_require__(146); +const isPathInCwd = __webpack_require__(147); +const pify = __webpack_require__(150); +const rimraf = __webpack_require__(151); +const pMap = __webpack_require__(152); + +const rimrafP = pify(rimraf); + +function safeCheck(file) { + if (isPathCwd(file)) { + throw new Error('Cannot delete the current working directory. Can be overriden with the `force` option.'); + } + + if (!isPathInCwd(file)) { + throw new Error('Cannot delete files/folders outside the current working directory. Can be overriden with the `force` option.'); + } +} + +module.exports = (patterns, opts) => { + opts = Object.assign({}, opts); + + const force = opts.force; + delete opts.force; + + const dryRun = opts.dryRun; + delete opts.dryRun; + + const mapper = file => { + if (!force) { + safeCheck(file); + } + + file = path.resolve(opts.cwd || '', file); + + if (dryRun) { + return file; + } + + return rimrafP(file, {glob: false}).then(() => file); + }; + + return globby(patterns, opts).then(files => pMap(files, mapper, opts)); +}; + +module.exports.sync = (patterns, opts) => { + opts = Object.assign({}, opts); + + const force = opts.force; + delete opts.force; + + const dryRun = opts.dryRun; + delete opts.dryRun; + + return globby.sync(patterns, opts).map(file => { + if (!force) { + safeCheck(file); + } + + file = path.resolve(opts.cwd || '', file); + + if (!dryRun) { + rimraf.sync(file, {glob: false}); + } + + return file; + }); +}; + + +/***/ }), +/* 139 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var Promise = __webpack_require__(140); +var arrayUnion = __webpack_require__(142); +var objectAssign = __webpack_require__(144); +var glob = __webpack_require__(36); +var pify = __webpack_require__(145); + +var globP = pify(glob, Promise).bind(glob); + +function isNegative(pattern) { + return pattern[0] === '!'; +} + +function isString(value) { + return typeof value === 'string'; +} + +function assertPatternsInput(patterns) { + if (!patterns.every(isString)) { + throw new TypeError('patterns must be a string or an array of strings'); + } +} + +function generateGlobTasks(patterns, opts) { + patterns = [].concat(patterns); + assertPatternsInput(patterns); + + var globTasks = []; + + opts = objectAssign({ + cache: Object.create(null), + statCache: Object.create(null), + realpathCache: Object.create(null), + symlinks: Object.create(null), + ignore: [] + }, opts); + + patterns.forEach(function (pattern, i) { + if (isNegative(pattern)) { + return; + } + + var ignore = patterns.slice(i).filter(isNegative).map(function (pattern) { + return pattern.slice(1); + }); + + globTasks.push({ + pattern: pattern, + opts: objectAssign({}, opts, { + ignore: opts.ignore.concat(ignore) + }) + }); + }); + + return globTasks; +} + +module.exports = function (patterns, opts) { + var globTasks; + + try { + globTasks = generateGlobTasks(patterns, opts); + } catch (err) { + return Promise.reject(err); + } + + return Promise.all(globTasks.map(function (task) { + return globP(task.pattern, task.opts); + })).then(function (paths) { + return arrayUnion.apply(null, paths); + }); +}; + +module.exports.sync = function (patterns, opts) { + var globTasks = generateGlobTasks(patterns, opts); + + return globTasks.reduce(function (matches, task) { + return arrayUnion(matches, glob.sync(task.pattern, task.opts)); + }, []); +}; + +module.exports.generateGlobTasks = generateGlobTasks; + +module.exports.hasMagic = function (patterns, opts) { + return [].concat(patterns).some(function (pattern) { + return glob.hasMagic(pattern, opts); + }); +}; + + +/***/ }), +/* 140 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = typeof Promise === 'function' ? Promise : __webpack_require__(141); + + +/***/ }), +/* 141 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var PENDING = 'pending'; +var SETTLED = 'settled'; +var FULFILLED = 'fulfilled'; +var REJECTED = 'rejected'; +var NOOP = function () {}; +var isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function'; + +var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate; +var asyncQueue = []; +var asyncTimer; + +function asyncFlush() { + // run promise callbacks + for (var i = 0; i < asyncQueue.length; i++) { + asyncQueue[i][0](asyncQueue[i][1]); + } + + // reset async asyncQueue + asyncQueue = []; + asyncTimer = false; +} + +function asyncCall(callback, arg) { + asyncQueue.push([callback, arg]); + + if (!asyncTimer) { + asyncTimer = true; + asyncSetTimer(asyncFlush, 0); + } +} + +function invokeResolver(resolver, promise) { + function resolvePromise(value) { + resolve(promise, value); + } + + function rejectPromise(reason) { + reject(promise, reason); + } + + try { + resolver(resolvePromise, rejectPromise); + } catch (e) { + rejectPromise(e); + } +} + +function invokeCallback(subscriber) { + var owner = subscriber.owner; + var settled = owner._state; + var value = owner._data; + var callback = subscriber[settled]; + var promise = subscriber.then; + + if (typeof callback === 'function') { + settled = FULFILLED; + try { + value = callback(value); + } catch (e) { + reject(promise, e); + } + } + + if (!handleThenable(promise, value)) { + if (settled === FULFILLED) { + resolve(promise, value); + } + + if (settled === REJECTED) { + reject(promise, value); + } + } +} + +function handleThenable(promise, value) { + var resolved; + + try { + if (promise === value) { + throw new TypeError('A promises callback cannot return that same promise.'); + } + + if (value && (typeof value === 'function' || typeof value === 'object')) { + // then should be retrieved only once + var then = value.then; + + if (typeof then === 'function') { + then.call(value, function (val) { + if (!resolved) { + resolved = true; + + if (value === val) { + fulfill(promise, val); + } else { + resolve(promise, val); + } + } + }, function (reason) { + if (!resolved) { + resolved = true; + + reject(promise, reason); + } + }); + + return true; + } + } + } catch (e) { + if (!resolved) { + reject(promise, e); + } + + return true; + } + + return false; +} + +function resolve(promise, value) { + if (promise === value || !handleThenable(promise, value)) { + fulfill(promise, value); + } +} + +function fulfill(promise, value) { + if (promise._state === PENDING) { + promise._state = SETTLED; + promise._data = value; + + asyncCall(publishFulfillment, promise); + } +} + +function reject(promise, reason) { + if (promise._state === PENDING) { + promise._state = SETTLED; + promise._data = reason; + + asyncCall(publishRejection, promise); + } +} + +function publish(promise) { + promise._then = promise._then.forEach(invokeCallback); +} + +function publishFulfillment(promise) { + promise._state = FULFILLED; + publish(promise); +} + +function publishRejection(promise) { + promise._state = REJECTED; + publish(promise); + if (!promise._handled && isNode) { + global.process.emit('unhandledRejection', promise._data, promise); + } +} + +function notifyRejectionHandled(promise) { + global.process.emit('rejectionHandled', promise); +} + +/** + * @class + */ +function Promise(resolver) { + if (typeof resolver !== 'function') { + throw new TypeError('Promise resolver ' + resolver + ' is not a function'); + } + + if (this instanceof Promise === false) { + throw new TypeError('Failed to construct \'Promise\': Please use the \'new\' operator, this object constructor cannot be called as a function.'); + } + + this._then = []; + + invokeResolver(resolver, this); +} + +Promise.prototype = { + constructor: Promise, + + _state: PENDING, + _then: null, + _data: undefined, + _handled: false, + + then: function (onFulfillment, onRejection) { + var subscriber = { + owner: this, + then: new this.constructor(NOOP), + fulfilled: onFulfillment, + rejected: onRejection + }; + + if ((onRejection || onFulfillment) && !this._handled) { + this._handled = true; + if (this._state === REJECTED && isNode) { + asyncCall(notifyRejectionHandled, this); + } + } + + if (this._state === FULFILLED || this._state === REJECTED) { + // already resolved, call callback async + asyncCall(invokeCallback, subscriber); + } else { + // subscribe + this._then.push(subscriber); + } + + return subscriber.then; + }, + + catch: function (onRejection) { + return this.then(null, onRejection); + } +}; + +Promise.all = function (promises) { + if (!Array.isArray(promises)) { + throw new TypeError('You must pass an array to Promise.all().'); + } + + return new Promise(function (resolve, reject) { + var results = []; + var remaining = 0; + + function resolver(index) { + remaining++; + return function (value) { + results[index] = value; + if (!--remaining) { + resolve(results); + } + }; + } + + for (var i = 0, promise; i < promises.length; i++) { + promise = promises[i]; + + if (promise && typeof promise.then === 'function') { + promise.then(resolver(i), reject); + } else { + results[i] = promise; + } + } + + if (!remaining) { + resolve(results); + } + }); +}; + +Promise.race = function (promises) { + if (!Array.isArray(promises)) { + throw new TypeError('You must pass an array to Promise.race().'); + } + + return new Promise(function (resolve, reject) { + for (var i = 0, promise; i < promises.length; i++) { + promise = promises[i]; + + if (promise && typeof promise.then === 'function') { + promise.then(resolve, reject); + } else { + resolve(promise); + } + } + }); +}; + +Promise.resolve = function (value) { + if (value && typeof value === 'object' && value.constructor === Promise) { + return value; + } + + return new Promise(function (resolve) { + resolve(value); + }); +}; + +Promise.reject = function (reason) { + return new Promise(function (resolve, reject) { + reject(reason); + }); +}; + +module.exports = Promise; + + +/***/ }), +/* 142 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var arrayUniq = __webpack_require__(143); + +module.exports = function () { + return arrayUniq([].concat.apply([], arguments)); +}; + + +/***/ }), +/* 143 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +// there's 3 implementations written in increasing order of efficiency + +// 1 - no Set type is defined +function uniqNoSet(arr) { + var ret = []; + + for (var i = 0; i < arr.length; i++) { + if (ret.indexOf(arr[i]) === -1) { + ret.push(arr[i]); + } + } + + return ret; +} + +// 2 - a simple Set type is defined +function uniqSet(arr) { + var seen = new Set(); + return arr.filter(function (el) { + if (!seen.has(el)) { + seen.add(el); + return true; + } + + return false; + }); +} + +// 3 - a standard Set type is defined and it has a forEach method +function uniqSetWithForEach(arr) { + var ret = []; + + (new Set(arr)).forEach(function (el) { + ret.push(el); + }); + + return ret; +} + +// V8 currently has a broken implementation +// https://github.com/joyent/node/issues/8449 +function doesForEachActuallyWork() { + var ret = false; + + (new Set([true])).forEach(function (el) { + ret = el; + }); + + return ret === true; +} + +if ('Set' in global) { + if (typeof Set.prototype.forEach === 'function' && doesForEachActuallyWork()) { + module.exports = uniqSetWithForEach; + } else { + module.exports = uniqSet; + } +} else { + module.exports = uniqNoSet; +} + + +/***/ }), +/* 144 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + + +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + + +/***/ }), +/* 145 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var processFn = function (fn, P, opts) { + return function () { + var that = this; + var args = new Array(arguments.length); + + for (var i = 0; i < arguments.length; i++) { + args[i] = arguments[i]; + } + + return new P(function (resolve, reject) { + args.push(function (err, result) { + if (err) { + reject(err); + } else if (opts.multiArgs) { + var results = new Array(arguments.length - 1); + + for (var i = 1; i < arguments.length; i++) { + results[i - 1] = arguments[i]; + } + + resolve(results); + } else { + resolve(result); + } + }); + + fn.apply(that, args); + }); + }; +}; + +var pify = module.exports = function (obj, P, opts) { + if (typeof P !== 'function') { + opts = P; + P = Promise; + } + + opts = opts || {}; + opts.exclude = opts.exclude || [/.+Sync$/]; + + var filter = function (key) { + var match = function (pattern) { + return typeof pattern === 'string' ? key === pattern : pattern.test(key); + }; + + return opts.include ? opts.include.some(match) : !opts.exclude.some(match); + }; + + var ret = typeof obj === 'function' ? function () { + if (opts.excludeMain) { + return obj.apply(this, arguments); + } + + return processFn(obj, P, opts).apply(this, arguments); + } : {}; + + return Object.keys(obj).reduce(function (ret, key) { + var x = obj[key]; + + ret[key] = typeof x === 'function' && filter(key) ? processFn(x, P, opts) : x; + + return ret; + }, ret); +}; + +pify.all = pify; + + +/***/ }), +/* 146 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var path = __webpack_require__(16); + +module.exports = function (str) { + return path.resolve(str) === path.resolve(process.cwd()); +}; + + +/***/ }), +/* 147 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var isPathInside = __webpack_require__(148); + +module.exports = function (str) { + return isPathInside(str, process.cwd()); +}; + + +/***/ }), +/* 148 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var path = __webpack_require__(16); +var pathIsInside = __webpack_require__(149); + +module.exports = function (a, b) { + a = path.resolve(a); + b = path.resolve(b); + + if (a === b) { + return false; + } + + return pathIsInside(a, b); +}; + + +/***/ }), +/* 149 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var path = __webpack_require__(16); + +module.exports = function (thePath, potentialParent) { + // For inside-directory checking, we want to allow trailing slashes, so normalize. + thePath = stripTrailingSep(thePath); + potentialParent = stripTrailingSep(potentialParent); + + // Node treats only Windows as case-insensitive in its path module; we follow those conventions. + if (process.platform === "win32") { + thePath = thePath.toLowerCase(); + potentialParent = potentialParent.toLowerCase(); + } + + return thePath.lastIndexOf(potentialParent, 0) === 0 && + ( + thePath[potentialParent.length] === path.sep || + thePath[potentialParent.length] === undefined + ); +}; + +function stripTrailingSep(thePath) { + if (thePath[thePath.length - 1] === path.sep) { + return thePath.slice(0, -1); + } + return thePath; +} + + +/***/ }), +/* 150 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +const processFn = (fn, opts) => function () { + const P = opts.promiseModule; + const args = new Array(arguments.length); + + for (let i = 0; i < arguments.length; i++) { + args[i] = arguments[i]; + } + + return new P((resolve, reject) => { + if (opts.errorFirst) { + args.push(function (err, result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); + + for (let i = 1; i < arguments.length; i++) { + results[i - 1] = arguments[i]; + } + + if (err) { + results.unshift(err); + reject(results); + } else { + resolve(results); + } + } else if (err) { + reject(err); + } else { + resolve(result); + } + }); + } else { + args.push(function (result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); + + for (let i = 0; i < arguments.length; i++) { + results[i] = arguments[i]; + } + + resolve(results); + } else { + resolve(result); + } + }); + } + + fn.apply(this, args); + }); +}; + +module.exports = (obj, opts) => { + opts = Object.assign({ + exclude: [/.+(Sync|Stream)$/], + errorFirst: true, + promiseModule: Promise + }, opts); + + const filter = key => { + const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); + return opts.include ? opts.include.some(match) : !opts.exclude.some(match); + }; + + let ret; + if (typeof obj === 'function') { + ret = function () { + if (opts.excludeMain) { + return obj.apply(this, arguments); + } + + return processFn(obj, opts).apply(this, arguments); + }; + } else { + ret = Object.create(Object.getPrototypeOf(obj)); + } + + for (const key in obj) { // eslint-disable-line guard-for-in + const x = obj[key]; + ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; + } + + return ret; +}; + + +/***/ }), +/* 151 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = rimraf +rimraf.sync = rimrafSync + +var assert = __webpack_require__(30) +var path = __webpack_require__(16) +var fs = __webpack_require__(23) +var glob = __webpack_require__(36) +var _0666 = parseInt('666', 8) + +var defaultGlobOpts = { + nosort: true, + silent: true +} + +// for EMFILE handling +var timeout = 0 + +var isWindows = (process.platform === "win32") + +function defaults (options) { + var methods = [ + 'unlink', + 'chmod', + 'stat', + 'lstat', + 'rmdir', + 'readdir' + ] + methods.forEach(function(m) { + options[m] = options[m] || fs[m] + m = m + 'Sync' + options[m] = options[m] || fs[m] + }) + + options.maxBusyTries = options.maxBusyTries || 3 + options.emfileWait = options.emfileWait || 1000 + if (options.glob === false) { + options.disableGlob = true + } + options.disableGlob = options.disableGlob || false + options.glob = options.glob || defaultGlobOpts +} + +function rimraf (p, options, cb) { + if (typeof options === 'function') { + cb = options + options = {} + } + + assert(p, 'rimraf: missing path') + assert.equal(typeof p, 'string', 'rimraf: path should be a string') + assert.equal(typeof cb, 'function', 'rimraf: callback function required') + assert(options, 'rimraf: invalid options argument provided') + assert.equal(typeof options, 'object', 'rimraf: options should be object') + + defaults(options) + + var busyTries = 0 + var errState = null + var n = 0 + + if (options.disableGlob || !glob.hasMagic(p)) + return afterGlob(null, [p]) + + options.lstat(p, function (er, stat) { + if (!er) + return afterGlob(null, [p]) + + glob(p, options.glob, afterGlob) + }) + + function next (er) { + errState = errState || er + if (--n === 0) + cb(errState) + } + + function afterGlob (er, results) { + if (er) + return cb(er) + + n = results.length + if (n === 0) + return cb() + + results.forEach(function (p) { + rimraf_(p, options, function CB (er) { + if (er) { + if ((er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") && + busyTries < options.maxBusyTries) { + busyTries ++ + var time = busyTries * 100 + // try again, with the same exact callback as this one. + return setTimeout(function () { + rimraf_(p, options, CB) + }, time) + } + + // this one won't happen if graceful-fs is used. + if (er.code === "EMFILE" && timeout < options.emfileWait) { + return setTimeout(function () { + rimraf_(p, options, CB) + }, timeout ++) + } + + // already gone + if (er.code === "ENOENT") er = null + } + + timeout = 0 + next(er) + }) + }) + } +} + +// Two possible strategies. +// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR +// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR +// +// Both result in an extra syscall when you guess wrong. However, there +// are likely far more normal files in the world than directories. This +// is based on the assumption that a the average number of files per +// directory is >= 1. +// +// If anyone ever complains about this, then I guess the strategy could +// be made configurable somehow. But until then, YAGNI. +function rimraf_ (p, options, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + // sunos lets the root user unlink directories, which is... weird. + // so we have to lstat here and make sure it's not a dir. + options.lstat(p, function (er, st) { + if (er && er.code === "ENOENT") + return cb(null) + + // Windows can EPERM on stat. Life is suffering. + if (er && er.code === "EPERM" && isWindows) + fixWinEPERM(p, options, er, cb) + + if (st && st.isDirectory()) + return rmdir(p, options, er, cb) + + options.unlink(p, function (er) { + if (er) { + if (er.code === "ENOENT") + return cb(null) + if (er.code === "EPERM") + return (isWindows) + ? fixWinEPERM(p, options, er, cb) + : rmdir(p, options, er, cb) + if (er.code === "EISDIR") + return rmdir(p, options, er, cb) + } + return cb(er) + }) + }) +} + +function fixWinEPERM (p, options, er, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + if (er) + assert(er instanceof Error) + + options.chmod(p, _0666, function (er2) { + if (er2) + cb(er2.code === "ENOENT" ? null : er) + else + options.stat(p, function(er3, stats) { + if (er3) + cb(er3.code === "ENOENT" ? null : er) + else if (stats.isDirectory()) + rmdir(p, options, er, cb) + else + options.unlink(p, cb) + }) + }) +} + +function fixWinEPERMSync (p, options, er) { + assert(p) + assert(options) + if (er) + assert(er instanceof Error) + + try { + options.chmodSync(p, _0666) + } catch (er2) { + if (er2.code === "ENOENT") + return + else + throw er + } + + try { + var stats = options.statSync(p) + } catch (er3) { + if (er3.code === "ENOENT") + return + else + throw er + } + + if (stats.isDirectory()) + rmdirSync(p, options, er) + else + options.unlinkSync(p) +} + +function rmdir (p, options, originalEr, cb) { + assert(p) + assert(options) + if (originalEr) + assert(originalEr instanceof Error) + assert(typeof cb === 'function') + + // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) + // if we guessed wrong, and it's not a directory, then + // raise the original error. + options.rmdir(p, function (er) { + if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")) + rmkids(p, options, cb) + else if (er && er.code === "ENOTDIR") + cb(originalEr) + else + cb(er) + }) +} + +function rmkids(p, options, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + options.readdir(p, function (er, files) { + if (er) + return cb(er) + var n = files.length + if (n === 0) + return options.rmdir(p, cb) + var errState + files.forEach(function (f) { + rimraf(path.join(p, f), options, function (er) { + if (errState) + return + if (er) + return cb(errState = er) + if (--n === 0) + options.rmdir(p, cb) + }) + }) + }) +} + +// this looks simpler, and is strictly *faster*, but will +// tie up the JavaScript thread and fail on excessively +// deep directory trees. +function rimrafSync (p, options) { + options = options || {} + defaults(options) + + assert(p, 'rimraf: missing path') + assert.equal(typeof p, 'string', 'rimraf: path should be a string') + assert(options, 'rimraf: missing options') + assert.equal(typeof options, 'object', 'rimraf: options should be object') + + var results + + if (options.disableGlob || !glob.hasMagic(p)) { + results = [p] + } else { + try { + options.lstatSync(p) + results = [p] + } catch (er) { + results = glob.sync(p, options.glob) + } + } + + if (!results.length) + return + + for (var i = 0; i < results.length; i++) { + var p = results[i] + + try { + var st = options.lstatSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + + // Windows can EPERM on stat. Life is suffering. + if (er.code === "EPERM" && isWindows) + fixWinEPERMSync(p, options, er) + } + + try { + // sunos lets the root user unlink directories, which is... weird. + if (st && st.isDirectory()) + rmdirSync(p, options, null) + else + options.unlinkSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + if (er.code === "EPERM") + return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er) + if (er.code !== "EISDIR") + throw er + + rmdirSync(p, options, er) + } + } +} + +function rmdirSync (p, options, originalEr) { + assert(p) + assert(options) + if (originalEr) + assert(originalEr instanceof Error) + + try { + options.rmdirSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + if (er.code === "ENOTDIR") + throw originalEr + if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM") + rmkidsSync(p, options) + } +} + +function rmkidsSync (p, options) { + assert(p) + assert(options) + options.readdirSync(p).forEach(function (f) { + rimrafSync(path.join(p, f), options) + }) + + // We only end up here once we got ENOTEMPTY at least once, and + // at this point, we are guaranteed to have removed all the kids. + // So, we know that it won't be ENOENT or ENOTDIR or anything else. + // try really hard to delete stuff on windows, because it has a + // PROFOUNDLY annoying habit of not closing handles promptly when + // files are deleted, resulting in spurious ENOTEMPTY errors. + var retries = isWindows ? 100 : 1 + var i = 0 + do { + var threw = true + try { + var ret = options.rmdirSync(p, options) + threw = false + return ret + } finally { + if (++i < retries && threw) + continue + } + } while (true) +} + + +/***/ }), +/* 152 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +module.exports = (iterable, mapper, opts) => new Promise((resolve, reject) => { + opts = Object.assign({ + concurrency: Infinity + }, opts); + + if (typeof mapper !== 'function') { + throw new TypeError('Mapper function is required'); + } + + const concurrency = opts.concurrency; + + if (!(typeof concurrency === 'number' && concurrency >= 1)) { + throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${concurrency}\` (${typeof concurrency})`); + } + + const ret = []; + const iterator = iterable[Symbol.iterator](); + let isRejected = false; + let iterableDone = false; + let resolvingCount = 0; + let currentIdx = 0; + + const next = () => { + if (isRejected) { + return; + } + + const nextItem = iterator.next(); + const i = currentIdx; + currentIdx++; + + if (nextItem.done) { + iterableDone = true; + + if (resolvingCount === 0) { + resolve(ret); + } + + return; + } + + resolvingCount++; + + Promise.resolve(nextItem.value) + .then(el => mapper(el, i)) + .then( + val => { + ret[i] = val; + resolvingCount--; + next(); + }, + err => { + isRejected = true; + reject(err); + } + ); + }; + + for (let i = 0; i < concurrency; i++) { + next(); + + if (iterableDone) { + break; + } + } +}); + + +/***/ }), +/* 153 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const chalk = __webpack_require__(2); +const cliCursor = __webpack_require__(154); +const cliSpinners = __webpack_require__(158); +const logSymbols = __webpack_require__(125); + +class Ora { + constructor(options) { + if (typeof options === 'string') { + options = { + text: options + }; + } + + this.options = Object.assign({ + text: '', + color: 'cyan', + stream: process.stderr + }, options); + + const sp = this.options.spinner; + this.spinner = typeof sp === 'object' ? sp : (process.platform === 'win32' ? cliSpinners.line : (cliSpinners[sp] || cliSpinners.dots)); // eslint-disable-line no-nested-ternary + + if (this.spinner.frames === undefined) { + throw new Error('Spinner must define `frames`'); + } + + this.text = this.options.text; + this.color = this.options.color; + this.interval = this.options.interval || this.spinner.interval || 100; + this.stream = this.options.stream; + this.id = null; + this.frameIndex = 0; + this.enabled = typeof this.options.enabled === 'boolean' ? this.options.enabled : ((this.stream && this.stream.isTTY) && !process.env.CI); + } + frame() { + const frames = this.spinner.frames; + let frame = frames[this.frameIndex]; + + if (this.color) { + frame = chalk[this.color](frame); + } + + this.frameIndex = ++this.frameIndex % frames.length; + + return frame + ' ' + this.text; + } + clear() { + if (!this.enabled) { + return this; + } + + this.stream.clearLine(); + this.stream.cursorTo(0); + + return this; + } + render() { + this.clear(); + this.stream.write(this.frame()); + + return this; + } + start(text) { + if (text) { + this.text = text; + } + + if (!this.enabled || this.id) { + return this; + } + + cliCursor.hide(this.stream); + this.render(); + this.id = setInterval(this.render.bind(this), this.interval); + + return this; + } + stop() { + if (!this.enabled) { + return this; + } + + clearInterval(this.id); + this.id = null; + this.frameIndex = 0; + this.clear(); + cliCursor.show(this.stream); + + return this; + } + succeed(text) { + return this.stopAndPersist({symbol: logSymbols.success, text}); + } + fail(text) { + return this.stopAndPersist({symbol: logSymbols.error, text}); + } + warn(text) { + return this.stopAndPersist({symbol: logSymbols.warning, text}); + } + info(text) { + return this.stopAndPersist({symbol: logSymbols.info, text}); + } + stopAndPersist(options) { + if (!this.enabled) { + return this; + } + + // Legacy argument + // TODO: Deprecate sometime in the future + if (typeof options === 'string') { + options = { + symbol: options + }; + } + + options = options || {}; + + this.stop(); + this.stream.write(`${options.symbol || ' '} ${options.text || this.text}\n`); + + return this; + } +} + +module.exports = function (opts) { + return new Ora(opts); +}; + +module.exports.promise = (action, options) => { + if (typeof action.then !== 'function') { + throw new TypeError('Parameter `action` must be a Promise'); + } + + const spinner = new Ora(options); + spinner.start(); + + action.then( + () => { + spinner.succeed(); + }, + () => { + spinner.fail(); + } + ); + + return spinner; +}; + + +/***/ }), +/* 154 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const restoreCursor = __webpack_require__(155); + +let hidden = false; + +exports.show = stream => { + const s = stream || process.stderr; + + if (!s.isTTY) { + return; + } + + hidden = false; + s.write('\u001b[?25h'); +}; + +exports.hide = stream => { + const s = stream || process.stderr; + + if (!s.isTTY) { + return; + } + + restoreCursor(); + hidden = true; + s.write('\u001b[?25l'); +}; + +exports.toggle = (force, stream) => { + if (force !== undefined) { + hidden = force; + } + + if (hidden) { + exports.show(stream); + } else { + exports.hide(stream); + } +}; + + +/***/ }), +/* 155 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const onetime = __webpack_require__(156); +const signalExit = __webpack_require__(87); + +module.exports = onetime(() => { + signalExit(() => { + process.stderr.write('\u001b[?25h'); + }, {alwaysLast: true}); +}); + + +/***/ }), +/* 156 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const mimicFn = __webpack_require__(157); + +module.exports = (fn, opts) => { + // TODO: Remove this in v3 + if (opts === true) { + throw new TypeError('The second argument is now an options object'); + } + + if (typeof fn !== 'function') { + throw new TypeError('Expected a function'); + } + + opts = opts || {}; + + let ret; + let called = false; + const fnName = fn.displayName || fn.name || ''; + + const onetime = function () { + if (called) { + if (opts.throw === true) { + throw new Error(`Function \`${fnName}\` can only be called once`); + } + + return ret; + } + + called = true; + ret = fn.apply(this, arguments); + fn = null; + + return ret; + }; + + mimicFn(onetime, fn); + + return onetime; +}; + + +/***/ }), +/* 157 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +module.exports = (to, from) => { + // TODO: use `Reflect.ownKeys()` when targeting Node.js 6 + for (const prop of Object.getOwnPropertyNames(from).concat(Object.getOwnPropertySymbols(from))) { + Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop)); + } +}; + + +/***/ }), +/* 158 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +module.exports = __webpack_require__(159); + + +/***/ }), +/* 159 */ +/***/ (function(module) { + +module.exports = {"dots":{"interval":80,"frames":["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"]},"dots2":{"interval":80,"frames":["⣾","⣽","⣻","⢿","⡿","⣟","⣯","⣷"]},"dots3":{"interval":80,"frames":["⠋","⠙","⠚","⠞","⠖","⠦","⠴","⠲","⠳","⠓"]},"dots4":{"interval":80,"frames":["⠄","⠆","⠇","⠋","⠙","⠸","⠰","⠠","⠰","⠸","⠙","⠋","⠇","⠆"]},"dots5":{"interval":80,"frames":["⠋","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋"]},"dots6":{"interval":80,"frames":["⠁","⠉","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠤","⠄","⠄","⠤","⠴","⠲","⠒","⠂","⠂","⠒","⠚","⠙","⠉","⠁"]},"dots7":{"interval":80,"frames":["⠈","⠉","⠋","⠓","⠒","⠐","⠐","⠒","⠖","⠦","⠤","⠠","⠠","⠤","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋","⠉","⠈"]},"dots8":{"interval":80,"frames":["⠁","⠁","⠉","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠤","⠄","⠄","⠤","⠠","⠠","⠤","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋","⠉","⠈","⠈"]},"dots9":{"interval":80,"frames":["⢹","⢺","⢼","⣸","⣇","⡧","⡗","⡏"]},"dots10":{"interval":80,"frames":["⢄","⢂","⢁","⡁","⡈","⡐","⡠"]},"dots11":{"interval":100,"frames":["⠁","⠂","⠄","⡀","⢀","⠠","⠐","⠈"]},"dots12":{"interval":80,"frames":["⢀⠀","⡀⠀","⠄⠀","⢂⠀","⡂⠀","⠅⠀","⢃⠀","⡃⠀","⠍⠀","⢋⠀","⡋⠀","⠍⠁","⢋⠁","⡋⠁","⠍⠉","⠋⠉","⠋⠉","⠉⠙","⠉⠙","⠉⠩","⠈⢙","⠈⡙","⢈⠩","⡀⢙","⠄⡙","⢂⠩","⡂⢘","⠅⡘","⢃⠨","⡃⢐","⠍⡐","⢋⠠","⡋⢀","⠍⡁","⢋⠁","⡋⠁","⠍⠉","⠋⠉","⠋⠉","⠉⠙","⠉⠙","⠉⠩","⠈⢙","⠈⡙","⠈⠩","⠀⢙","⠀⡙","⠀⠩","⠀⢘","⠀⡘","⠀⠨","⠀⢐","⠀⡐","⠀⠠","⠀⢀","⠀⡀"]},"line":{"interval":130,"frames":["-","\\","|","/"]},"line2":{"interval":100,"frames":["⠂","-","–","—","–","-"]},"pipe":{"interval":100,"frames":["┤","┘","┴","└","├","┌","┬","┐"]},"simpleDots":{"interval":400,"frames":[". ",".. ","..."," "]},"simpleDotsScrolling":{"interval":200,"frames":[". ",".. ","..."," .."," ."," "]},"star":{"interval":70,"frames":["✶","✸","✹","✺","✹","✷"]},"star2":{"interval":80,"frames":["+","x","*"]},"flip":{"interval":70,"frames":["_","_","_","-","`","`","'","´","-","_","_","_"]},"hamburger":{"interval":100,"frames":["☱","☲","☴"]},"growVertical":{"interval":120,"frames":["▁","▃","▄","▅","▆","▇","▆","▅","▄","▃"]},"growHorizontal":{"interval":120,"frames":["▏","▎","▍","▌","▋","▊","▉","▊","▋","▌","▍","▎"]},"balloon":{"interval":140,"frames":[" ",".","o","O","@","*"," "]},"balloon2":{"interval":120,"frames":[".","o","O","°","O","o","."]},"noise":{"interval":100,"frames":["▓","▒","░"]},"bounce":{"interval":120,"frames":["⠁","⠂","⠄","⠂"]},"boxBounce":{"interval":120,"frames":["▖","▘","▝","▗"]},"boxBounce2":{"interval":100,"frames":["▌","▀","▐","▄"]},"triangle":{"interval":50,"frames":["◢","◣","◤","◥"]},"arc":{"interval":100,"frames":["◜","◠","◝","◞","◡","◟"]},"circle":{"interval":120,"frames":["◡","⊙","◠"]},"squareCorners":{"interval":180,"frames":["◰","◳","◲","◱"]},"circleQuarters":{"interval":120,"frames":["◴","◷","◶","◵"]},"circleHalves":{"interval":50,"frames":["◐","◓","◑","◒"]},"squish":{"interval":100,"frames":["╫","╪"]},"toggle":{"interval":250,"frames":["⊶","⊷"]},"toggle2":{"interval":80,"frames":["▫","▪"]},"toggle3":{"interval":120,"frames":["□","■"]},"toggle4":{"interval":100,"frames":["■","□","▪","▫"]},"toggle5":{"interval":100,"frames":["▮","▯"]},"toggle6":{"interval":300,"frames":["ဝ","၀"]},"toggle7":{"interval":80,"frames":["⦾","⦿"]},"toggle8":{"interval":100,"frames":["◍","◌"]},"toggle9":{"interval":100,"frames":["◉","◎"]},"toggle10":{"interval":100,"frames":["㊂","㊀","㊁"]},"toggle11":{"interval":50,"frames":["⧇","⧆"]},"toggle12":{"interval":120,"frames":["☗","☖"]},"toggle13":{"interval":80,"frames":["=","*","-"]},"arrow":{"interval":100,"frames":["←","↖","↑","↗","→","↘","↓","↙"]},"arrow2":{"interval":80,"frames":["⬆️ ","↗️ ","➡️ ","↘️ ","⬇️ ","↙️ ","⬅️ ","↖️ "]},"arrow3":{"interval":120,"frames":["▹▹▹▹▹","▸▹▹▹▹","▹▸▹▹▹","▹▹▸▹▹","▹▹▹▸▹","▹▹▹▹▸"]},"bouncingBar":{"interval":80,"frames":["[ ]","[= ]","[== ]","[=== ]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},"bouncingBall":{"interval":80,"frames":["( ● )","( ● )","( ● )","( ● )","( ●)","( ● )","( ● )","( ● )","( ● )","(● )"]},"smiley":{"interval":200,"frames":["😄 ","😝 "]},"monkey":{"interval":300,"frames":["🙈 ","🙈 ","🙉 ","🙊 "]},"hearts":{"interval":100,"frames":["💛 ","💙 ","💜 ","💚 ","❤️ "]},"clock":{"interval":100,"frames":["🕐 ","🕑 ","🕒 ","🕓 ","🕔 ","🕕 ","🕖 ","🕗 ","🕘 ","🕙 ","🕚 "]},"earth":{"interval":180,"frames":["🌍 ","🌎 ","🌏 "]},"moon":{"interval":80,"frames":["🌑 ","🌒 ","🌓 ","🌔 ","🌕 ","🌖 ","🌗 ","🌘 "]},"runner":{"interval":140,"frames":["🚶 ","🏃 "]},"pong":{"interval":80,"frames":["▐⠂ ▌","▐⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂▌","▐ ⠠▌","▐ ⡀▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐⠠ ▌"]},"shark":{"interval":120,"frames":["▐|\\____________▌","▐_|\\___________▌","▐__|\\__________▌","▐___|\\_________▌","▐____|\\________▌","▐_____|\\_______▌","▐______|\\______▌","▐_______|\\_____▌","▐________|\\____▌","▐_________|\\___▌","▐__________|\\__▌","▐___________|\\_▌","▐____________|\\▌","▐____________/|▌","▐___________/|_▌","▐__________/|__▌","▐_________/|___▌","▐________/|____▌","▐_______/|_____▌","▐______/|______▌","▐_____/|_______▌","▐____/|________▌","▐___/|_________▌","▐__/|__________▌","▐_/|___________▌","▐/|____________▌"]},"dqpb":{"interval":100,"frames":["d","q","p","b"]},"weather":{"interval":100,"frames":["☀️ ","☀️ ","☀️ ","🌤 ","⛅️ ","🌥 ","☁️ ","🌧 ","🌨 ","🌧 ","🌨 ","🌧 ","🌨 ","⛈ ","🌨 ","🌧 ","🌨 ","☁️ ","🌥 ","⛅️ ","🌤 ","☀️ ","☀️ "]},"christmas":{"interval":400,"frames":["🌲","🎄"]}}; + +/***/ }), +/* 160 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.RunCommand = undefined; + +var _chalk = __webpack_require__(2); + +var _chalk2 = _interopRequireDefault(_chalk); + +var _log = __webpack_require__(33); + +var _parallelize = __webpack_require__(34); + +var _projects = __webpack_require__(35); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + + +const RunCommand = exports.RunCommand = { + description: 'Run script defined in package.json in each package that contains that script.', + name: 'run', + run(projects, projectGraph, { extraArgs }) { + return _asyncToGenerator(function* () { + const batchedProjects = (0, _projects.topologicallyBatchProjects)(projects, projectGraph); + if (extraArgs.length === 0) { + _log.log.write(_chalk2.default.red.bold('\nNo script specified')); + process.exit(1); + } + const scriptName = extraArgs[0]; + const scriptArgs = extraArgs.slice(1); + _log.log.write(_chalk2.default.bold(`\nRunning script [${_chalk2.default.green(scriptName)}] in batched topological order\n`)); + yield (0, _parallelize.parallelizeBatches)(batchedProjects, (() => { + var _ref = _asyncToGenerator(function* (pkg) { + if (pkg.hasScript(scriptName)) { + yield pkg.runScriptStreaming(scriptName, scriptArgs); + } + }); + + return function (_x) { + return _ref.apply(this, arguments); + }; + })()); + })(); + } +}; + +/***/ }), +/* 161 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.WatchCommand = undefined; + +var _chalk = __webpack_require__(2); + +var _chalk2 = _interopRequireDefault(_chalk); + +var _log = __webpack_require__(33); + +var _parallelize = __webpack_require__(34); + +var _projects = __webpack_require__(35); + +var _watch = __webpack_require__(162); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + + +/** + * Name of the script in the package/project package.json file to run during `kbn watch`. + */ +const watchScriptName = 'kbn:watch'; +/** + * Name of the Kibana project. + */ +const kibanaProjectName = 'kibana'; +/** + * Command that traverses through list of available projects/packages that have `kbn:watch` script in their + * package.json files, groups them into topology aware batches and then processes theses batches one by one + * running `kbn:watch` scripts in parallel within the same batch. + * + * Command internally relies on the fact that most of the build systems that are triggered by `kbn:watch` + * will emit special "marker" once build/watch process is ready that we can use as completion condition for + * the `kbn:watch` script and eventually for the entire batch. Currently we support completion "markers" for + * `webpack` and `tsc` only, for the rest we rely on predefined timeouts. + */ +const WatchCommand = exports.WatchCommand = { + description: 'Runs `kbn:watch` script for every project.', + name: 'watch', + run(projects, projectGraph) { + return _asyncToGenerator(function* () { + const projectsToWatch = new Map(); + for (const project of projects.values()) { + // We can't watch project that doesn't have `kbn:watch` script. + if (project.hasScript(watchScriptName)) { + projectsToWatch.set(project.name, project); + } + } + if (projectsToWatch.size === 0) { + _log.log.write(_chalk2.default.red(`\nThere are no projects to watch found. Make sure that projects define 'kbn:watch' script in 'package.json'.\n`)); + return; + } + const projectNames = Array.from(projectsToWatch.keys()); + _log.log.write(_chalk2.default.bold(_chalk2.default.green(`Running ${watchScriptName} scripts for [${projectNames.join(', ')}].`))); + // Kibana should always be run the last, so we don't rely on automatic + // topological batching and push it to the last one-entry batch manually. + const shouldWatchKibanaProject = projectsToWatch.delete(kibanaProjectName); + const batchedProjects = (0, _projects.topologicallyBatchProjects)(projectsToWatch, projectGraph); + if (shouldWatchKibanaProject) { + batchedProjects.push([projects.get(kibanaProjectName)]); + } + yield (0, _parallelize.parallelizeBatches)(batchedProjects, (() => { + var _ref = _asyncToGenerator(function* (pkg) { + const completionHint = yield (0, _watch.waitUntilWatchIsReady)(pkg.runScriptStreaming(watchScriptName).stdout); + _log.log.write(_chalk2.default.bold(`[${_chalk2.default.green(pkg.name)}] Initial build completed (${completionHint}).`)); + }); + + return function (_x) { + return _ref.apply(this, arguments); + }; + })()); + })(); + } +}; + +/***/ }), +/* 162 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.waitUntilWatchIsReady = waitUntilWatchIsReady; + +var _rxjs = __webpack_require__(163); + +var Rx = _interopRequireWildcard(_rxjs); + +var _operators = __webpack_require__(262); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +/** + * Number of milliseconds we wait before we fall back to the default watch handler. + */ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +const defaultHandlerDelay = 3000; +/** + * If default watch handler is used, then it's the number of milliseconds we wait for + * any build output before we consider watch task ready. + */ +const defaultHandlerReadinessTimeout = 2000; +function getWatchHandlers(buildOutput$, { handlerDelay = defaultHandlerDelay, handlerReadinessTimeout = defaultHandlerReadinessTimeout }) { + const typescriptHandler = buildOutput$.pipe((0, _operators.first)(data => data.includes('$ tsc')), (0, _operators.map)(() => buildOutput$.pipe((0, _operators.first)(data => data.includes('Compilation complete.')), (0, _operators.mapTo)('tsc')))); + const webpackHandler = buildOutput$.pipe((0, _operators.first)(data => data.includes('$ webpack')), (0, _operators.map)(() => buildOutput$.pipe((0, _operators.first)(data => data.includes('Chunk Names')), (0, _operators.mapTo)('webpack')))); + const defaultHandler = Rx.of(undefined).pipe((0, _operators.delay)(handlerReadinessTimeout), (0, _operators.map)(() => buildOutput$.pipe((0, _operators.timeout)(handlerDelay), (0, _operators.catchError)(() => Rx.of('timeout'))))); + return [typescriptHandler, webpackHandler, defaultHandler]; +} +function waitUntilWatchIsReady(stream, opts = {}) { + const buildOutput$ = new Rx.Subject(); + const onDataListener = data => buildOutput$.next(data.toString('utf-8')); + const onEndListener = () => buildOutput$.complete(); + const onErrorListener = e => buildOutput$.error(e); + stream.once('end', onEndListener); + stream.once('error', onErrorListener); + stream.on('data', onDataListener); + return Rx.race(getWatchHandlers(buildOutput$, opts)).pipe((0, _operators.mergeMap)(whenReady => whenReady), (0, _operators.finalize)(() => { + stream.removeListener('data', onDataListener); + stream.removeListener('end', onEndListener); + stream.removeListener('error', onErrorListener); + buildOutput$.complete(); + })).toPromise(); +} + +/***/ }), +/* 163 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _internal_Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return _internal_Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]; }); + +/* harmony import */ var _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(182); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectableObservable", function() { return _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__["ConnectableObservable"]; }); + +/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(187); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupedObservable", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__["GroupedObservable"]; }); + +/* harmony import */ var _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(179); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "observable", function() { return _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__["observable"]; }); + +/* harmony import */ var _internal_Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(183); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Subject", function() { return _internal_Subject__WEBPACK_IMPORTED_MODULE_4__["Subject"]; }); + +/* harmony import */ var _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(188); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BehaviorSubject", function() { return _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_5__["BehaviorSubject"]; }); + +/* harmony import */ var _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(189); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReplaySubject", function() { return _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_6__["ReplaySubject"]; }); + +/* harmony import */ var _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(206); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AsyncSubject", function() { return _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_7__["AsyncSubject"]; }); + +/* harmony import */ var _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(207); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asapScheduler", function() { return _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_8__["asap"]; }); + +/* harmony import */ var _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(211); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asyncScheduler", function() { return _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_9__["async"]; }); + +/* harmony import */ var _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(190); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "queueScheduler", function() { return _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_10__["queue"]; }); + +/* harmony import */ var _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(212); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "animationFrameScheduler", function() { return _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_11__["animationFrame"]; }); + +/* harmony import */ var _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(215); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualTimeScheduler", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_12__["VirtualTimeScheduler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualAction", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_12__["VirtualAction"]; }); + +/* harmony import */ var _internal_Scheduler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(196); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Scheduler", function() { return _internal_Scheduler__WEBPACK_IMPORTED_MODULE_13__["Scheduler"]; }); + +/* harmony import */ var _internal_Subscription__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(172); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Subscription", function() { return _internal_Subscription__WEBPACK_IMPORTED_MODULE_14__["Subscription"]; }); + +/* harmony import */ var _internal_Subscriber__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(166); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Subscriber", function() { return _internal_Subscriber__WEBPACK_IMPORTED_MODULE_15__["Subscriber"]; }); + +/* harmony import */ var _internal_Notification__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(198); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Notification", function() { return _internal_Notification__WEBPACK_IMPORTED_MODULE_16__["Notification"]; }); + +/* harmony import */ var _internal_util_pipe__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(180); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pipe", function() { return _internal_util_pipe__WEBPACK_IMPORTED_MODULE_17__["pipe"]; }); + +/* harmony import */ var _internal_util_noop__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(181); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return _internal_util_noop__WEBPACK_IMPORTED_MODULE_18__["noop"]; }); + +/* harmony import */ var _internal_util_identity__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(216); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return _internal_util_identity__WEBPACK_IMPORTED_MODULE_19__["identity"]; }); + +/* harmony import */ var _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(217); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isObservable", function() { return _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_20__["isObservable"]; }); + +/* harmony import */ var _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(218); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ArgumentOutOfRangeError", function() { return _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_21__["ArgumentOutOfRangeError"]; }); + +/* harmony import */ var _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(219); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EmptyError", function() { return _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_22__["EmptyError"]; }); + +/* harmony import */ var _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(184); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ObjectUnsubscribedError", function() { return _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_23__["ObjectUnsubscribedError"]; }); + +/* harmony import */ var _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(177); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UnsubscriptionError", function() { return _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_24__["UnsubscriptionError"]; }); + +/* harmony import */ var _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(220); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TimeoutError", function() { return _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_25__["TimeoutError"]; }); + +/* harmony import */ var _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(221); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindCallback", function() { return _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_26__["bindCallback"]; }); + +/* harmony import */ var _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(223); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindNodeCallback", function() { return _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_27__["bindNodeCallback"]; }); + +/* harmony import */ var _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(224); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_28__["combineLatest"]; }); + +/* harmony import */ var _internal_observable_concat__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(235); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _internal_observable_concat__WEBPACK_IMPORTED_MODULE_29__["concat"]; }); + +/* harmony import */ var _internal_observable_defer__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(245); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defer", function() { return _internal_observable_defer__WEBPACK_IMPORTED_MODULE_30__["defer"]; }); + +/* harmony import */ var _internal_observable_empty__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(199); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_31__["empty"]; }); + +/* harmony import */ var _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(246); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forkJoin", function() { return _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_32__["forkJoin"]; }); + +/* harmony import */ var _internal_observable_from__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(236); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "from", function() { return _internal_observable_from__WEBPACK_IMPORTED_MODULE_33__["from"]; }); + +/* harmony import */ var _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(247); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fromEvent", function() { return _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_34__["fromEvent"]; }); + +/* harmony import */ var _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(248); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fromEventPattern", function() { return _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_35__["fromEventPattern"]; }); + +/* harmony import */ var _internal_observable_generate__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(249); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "generate", function() { return _internal_observable_generate__WEBPACK_IMPORTED_MODULE_36__["generate"]; }); + +/* harmony import */ var _internal_observable_iif__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(250); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "iif", function() { return _internal_observable_iif__WEBPACK_IMPORTED_MODULE_37__["iif"]; }); + +/* harmony import */ var _internal_observable_interval__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(251); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return _internal_observable_interval__WEBPACK_IMPORTED_MODULE_38__["interval"]; }); + +/* harmony import */ var _internal_observable_merge__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(253); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _internal_observable_merge__WEBPACK_IMPORTED_MODULE_39__["merge"]; }); + +/* harmony import */ var _internal_observable_never__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(254); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "never", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_40__["never"]; }); + +/* harmony import */ var _internal_observable_of__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(200); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "of", function() { return _internal_observable_of__WEBPACK_IMPORTED_MODULE_41__["of"]; }); + +/* harmony import */ var _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(255); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_42__["onErrorResumeNext"]; }); + +/* harmony import */ var _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(256); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_43__["pairs"]; }); + +/* harmony import */ var _internal_observable_race__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(257); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "race", function() { return _internal_observable_race__WEBPACK_IMPORTED_MODULE_44__["race"]; }); + +/* harmony import */ var _internal_observable_range__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(258); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "range", function() { return _internal_observable_range__WEBPACK_IMPORTED_MODULE_45__["range"]; }); + +/* harmony import */ var _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(205); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwError", function() { return _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_46__["throwError"]; }); + +/* harmony import */ var _internal_observable_timer__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(259); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return _internal_observable_timer__WEBPACK_IMPORTED_MODULE_47__["timer"]; }); + +/* harmony import */ var _internal_observable_using__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(260); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "using", function() { return _internal_observable_using__WEBPACK_IMPORTED_MODULE_48__["using"]; }); + +/* harmony import */ var _internal_observable_zip__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(261); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _internal_observable_zip__WEBPACK_IMPORTED_MODULE_49__["zip"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EMPTY", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_31__["EMPTY"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NEVER", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_40__["NEVER"]; }); + +/* harmony import */ var _internal_config__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(170); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "config", function() { return _internal_config__WEBPACK_IMPORTED_MODULE_50__["config"]; }); + +/** PURE_IMPORTS_START PURE_IMPORTS_END */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +//# sourceMappingURL=index.js.map + + +/***/ }), +/* 164 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return Observable; }); +/* harmony import */ var _util_toSubscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(165); +/* harmony import */ var _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(179); +/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(180); +/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(170); +/** PURE_IMPORTS_START _util_toSubscriber,_internal_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */ + + + + +var Observable = /*@__PURE__*/ (function () { + function Observable(subscribe) { + this._isScalar = false; + if (subscribe) { + this._subscribe = subscribe; + } + } + Observable.prototype.lift = function (operator) { + var observable = new Observable(); + observable.source = this; + observable.operator = operator; + return observable; + }; + Observable.prototype.subscribe = function (observerOrNext, error, complete) { + var operator = this.operator; + var sink = Object(_util_toSubscriber__WEBPACK_IMPORTED_MODULE_0__["toSubscriber"])(observerOrNext, error, complete); + if (operator) { + operator.call(sink, this.source); + } + else { + sink.add(this.source || (_config__WEBPACK_IMPORTED_MODULE_3__["config"].useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? + this._subscribe(sink) : + this._trySubscribe(sink)); + } + if (_config__WEBPACK_IMPORTED_MODULE_3__["config"].useDeprecatedSynchronousErrorHandling) { + if (sink.syncErrorThrowable) { + sink.syncErrorThrowable = false; + if (sink.syncErrorThrown) { + throw sink.syncErrorValue; + } + } + } + return sink; + }; + Observable.prototype._trySubscribe = function (sink) { + try { + return this._subscribe(sink); + } + catch (err) { + if (_config__WEBPACK_IMPORTED_MODULE_3__["config"].useDeprecatedSynchronousErrorHandling) { + sink.syncErrorThrown = true; + sink.syncErrorValue = err; + } + sink.error(err); + } + }; + Observable.prototype.forEach = function (next, promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function (resolve, reject) { + var subscription; + subscription = _this.subscribe(function (value) { + try { + next(value); + } + catch (err) { + reject(err); + if (subscription) { + subscription.unsubscribe(); + } + } + }, reject, resolve); + }); + }; + Observable.prototype._subscribe = function (subscriber) { + var source = this.source; + return source && source.subscribe(subscriber); + }; + Observable.prototype[_internal_symbol_observable__WEBPACK_IMPORTED_MODULE_1__["observable"]] = function () { + return this; + }; + Observable.prototype.pipe = function () { + var operations = []; + for (var _i = 0; _i < arguments.length; _i++) { + operations[_i] = arguments[_i]; + } + if (operations.length === 0) { + return this; + } + return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_2__["pipeFromArray"])(operations)(this); + }; + Observable.prototype.toPromise = function (promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function (resolve, reject) { + var value; + _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); }); + }); + }; + Observable.create = function (subscribe) { + return new Observable(subscribe); + }; + return Observable; +}()); + +function getPromiseCtor(promiseCtor) { + if (!promiseCtor) { + promiseCtor = _config__WEBPACK_IMPORTED_MODULE_3__["config"].Promise || Promise; + } + if (!promiseCtor) { + throw new Error('no Promise impl found'); + } + return promiseCtor; +} +//# sourceMappingURL=Observable.js.map + + +/***/ }), +/* 165 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toSubscriber", function() { return toSubscriber; }); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(166); +/* harmony import */ var _symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(178); +/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(169); +/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */ + + + +function toSubscriber(nextOrObserver, error, complete) { + if (nextOrObserver) { + if (nextOrObserver instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"]) { + return nextOrObserver; + } + if (nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__["rxSubscriber"]]) { + return nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__["rxSubscriber"]](); + } + } + if (!nextOrObserver && !error && !complete) { + return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"](_Observer__WEBPACK_IMPORTED_MODULE_2__["empty"]); + } + return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"](nextOrObserver, error, complete); +} +//# sourceMappingURL=toSubscriber.js.map + + +/***/ }), +/* 166 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Subscriber", function() { return Subscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(168); +/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(169); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(172); +/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(178); +/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(170); +/* harmony import */ var _util_hostReportError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(171); +/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */ + + + + + + + +var Subscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Subscriber, _super); + function Subscriber(destinationOrNext, error, complete) { + var _this = _super.call(this) || this; + _this.syncErrorValue = null; + _this.syncErrorThrown = false; + _this.syncErrorThrowable = false; + _this.isStopped = false; + switch (arguments.length) { + case 0: + _this.destination = _Observer__WEBPACK_IMPORTED_MODULE_2__["empty"]; + break; + case 1: + if (!destinationOrNext) { + _this.destination = _Observer__WEBPACK_IMPORTED_MODULE_2__["empty"]; + break; + } + if (typeof destinationOrNext === 'object') { + if (isTrustedSubscriber(destinationOrNext)) { + var trustedSubscriber = destinationOrNext[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__["rxSubscriber"]](); + _this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable; + _this.destination = trustedSubscriber; + trustedSubscriber.add(_this); + } + else { + _this.syncErrorThrowable = true; + _this.destination = new SafeSubscriber(_this, destinationOrNext); + } + break; + } + default: + _this.syncErrorThrowable = true; + _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete); + break; + } + return _this; + } + Subscriber.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__["rxSubscriber"]] = function () { return this; }; + Subscriber.create = function (next, error, complete) { + var subscriber = new Subscriber(next, error, complete); + subscriber.syncErrorThrowable = false; + return subscriber; + }; + Subscriber.prototype.next = function (value) { + if (!this.isStopped) { + this._next(value); + } + }; + Subscriber.prototype.error = function (err) { + if (!this.isStopped) { + this.isStopped = true; + this._error(err); + } + }; + Subscriber.prototype.complete = function () { + if (!this.isStopped) { + this.isStopped = true; + this._complete(); + } + }; + Subscriber.prototype.unsubscribe = function () { + if (this.closed) { + return; + } + this.isStopped = true; + _super.prototype.unsubscribe.call(this); + }; + Subscriber.prototype._next = function (value) { + this.destination.next(value); + }; + Subscriber.prototype._error = function (err) { + this.destination.error(err); + this.unsubscribe(); + }; + Subscriber.prototype._complete = function () { + this.destination.complete(); + this.unsubscribe(); + }; + Subscriber.prototype._unsubscribeAndRecycle = function () { + var _a = this, _parent = _a._parent, _parents = _a._parents; + this._parent = null; + this._parents = null; + this.unsubscribe(); + this.closed = false; + this.isStopped = false; + this._parent = _parent; + this._parents = _parents; + return this; + }; + return Subscriber; +}(_Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"])); + +var SafeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SafeSubscriber, _super); + function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) { + var _this = _super.call(this) || this; + _this._parentSubscriber = _parentSubscriber; + var next; + var context = _this; + if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(observerOrNext)) { + next = observerOrNext; + } + else if (observerOrNext) { + next = observerOrNext.next; + error = observerOrNext.error; + complete = observerOrNext.complete; + if (observerOrNext !== _Observer__WEBPACK_IMPORTED_MODULE_2__["empty"]) { + context = Object.create(observerOrNext); + if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(context.unsubscribe)) { + _this.add(context.unsubscribe.bind(context)); + } + context.unsubscribe = _this.unsubscribe.bind(_this); + } + } + _this._context = context; + _this._next = next; + _this._error = error; + _this._complete = complete; + return _this; + } + SafeSubscriber.prototype.next = function (value) { + if (!this.isStopped && this._next) { + var _parentSubscriber = this._parentSubscriber; + if (!_config__WEBPACK_IMPORTED_MODULE_5__["config"].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._next, value); + } + else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) { + this.unsubscribe(); + } + } + }; + SafeSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var _parentSubscriber = this._parentSubscriber; + var useDeprecatedSynchronousErrorHandling = _config__WEBPACK_IMPORTED_MODULE_5__["config"].useDeprecatedSynchronousErrorHandling; + if (this._error) { + if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._error, err); + this.unsubscribe(); + } + else { + this.__tryOrSetError(_parentSubscriber, this._error, err); + this.unsubscribe(); + } + } + else if (!_parentSubscriber.syncErrorThrowable) { + this.unsubscribe(); + if (useDeprecatedSynchronousErrorHandling) { + throw err; + } + Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__["hostReportError"])(err); + } + else { + if (useDeprecatedSynchronousErrorHandling) { + _parentSubscriber.syncErrorValue = err; + _parentSubscriber.syncErrorThrown = true; + } + else { + Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__["hostReportError"])(err); + } + this.unsubscribe(); + } + } + }; + SafeSubscriber.prototype.complete = function () { + var _this = this; + if (!this.isStopped) { + var _parentSubscriber = this._parentSubscriber; + if (this._complete) { + var wrappedComplete = function () { return _this._complete.call(_this._context); }; + if (!_config__WEBPACK_IMPORTED_MODULE_5__["config"].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(wrappedComplete); + this.unsubscribe(); + } + else { + this.__tryOrSetError(_parentSubscriber, wrappedComplete); + this.unsubscribe(); + } + } + else { + this.unsubscribe(); + } + } + }; + SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) { + try { + fn.call(this._context, value); + } + catch (err) { + this.unsubscribe(); + if (_config__WEBPACK_IMPORTED_MODULE_5__["config"].useDeprecatedSynchronousErrorHandling) { + throw err; + } + else { + Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__["hostReportError"])(err); + } + } + }; + SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) { + if (!_config__WEBPACK_IMPORTED_MODULE_5__["config"].useDeprecatedSynchronousErrorHandling) { + throw new Error('bad call'); + } + try { + fn.call(this._context, value); + } + catch (err) { + if (_config__WEBPACK_IMPORTED_MODULE_5__["config"].useDeprecatedSynchronousErrorHandling) { + parent.syncErrorValue = err; + parent.syncErrorThrown = true; + return true; + } + else { + Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__["hostReportError"])(err); + return true; + } + } + return false; + }; + SafeSubscriber.prototype._unsubscribe = function () { + var _parentSubscriber = this._parentSubscriber; + this._context = null; + this._parentSubscriber = null; + _parentSubscriber.unsubscribe(); + }; + return SafeSubscriber; +}(Subscriber)); +function isTrustedSubscriber(obj) { + return obj instanceof Subscriber || ('syncErrorThrowable' in obj && obj[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__["rxSubscriber"]]); +} +//# sourceMappingURL=Subscriber.js.map + + +/***/ }), +/* 167 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; }); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ +/* global Reflect, Promise */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + } + return __assign.apply(this, arguments); +} + +function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) + t[p[i]] = s[p[i]]; + return t; +} + +function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} + +function __param(paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +} + +function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} + +function __awaiter(thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +} + +function __exportStar(m, exports) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} + +function __values(o) { + var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; + if (m) return m.call(o); + return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; +} + +function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; +} + +function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; +} + +function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); +} + +function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } +} + +function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } +} + +function __asyncValues(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } +} + +function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; + +function __importStar(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result.default = mod; + return result; +} + +function __importDefault(mod) { + return (mod && mod.__esModule) ? mod : { default: mod }; +} + + +/***/ }), +/* 168 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFunction", function() { return isFunction; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function isFunction(x) { + return typeof x === 'function'; +} +//# sourceMappingURL=isFunction.js.map + + +/***/ }), +/* 169 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return empty; }); +/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _util_hostReportError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); +/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */ + + +var empty = { + closed: true, + next: function (value) { }, + error: function (err) { + if (_config__WEBPACK_IMPORTED_MODULE_0__["config"].useDeprecatedSynchronousErrorHandling) { + throw err; + } + else { + Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_1__["hostReportError"])(err); + } + }, + complete: function () { } +}; +//# sourceMappingURL=Observer.js.map + + +/***/ }), +/* 170 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "config", function() { return config; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var _enable_super_gross_mode_that_will_cause_bad_things = false; +var config = { + Promise: undefined, + set useDeprecatedSynchronousErrorHandling(value) { + if (value) { + var error = /*@__PURE__*/ new Error(); + /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack); + } + else if (_enable_super_gross_mode_that_will_cause_bad_things) { + /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3'); + } + _enable_super_gross_mode_that_will_cause_bad_things = value; + }, + get useDeprecatedSynchronousErrorHandling() { + return _enable_super_gross_mode_that_will_cause_bad_things; + }, +}; +//# sourceMappingURL=config.js.map + + +/***/ }), +/* 171 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hostReportError", function() { return hostReportError; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function hostReportError(err) { + setTimeout(function () { throw err; }); +} +//# sourceMappingURL=hostReportError.js.map + + +/***/ }), +/* 172 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Subscription", function() { return Subscription; }); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(173); +/* harmony import */ var _util_isObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(174); +/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(168); +/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(175); +/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(176); +/* harmony import */ var _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(177); +/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_tryCatch,_util_errorObject,_util_UnsubscriptionError PURE_IMPORTS_END */ + + + + + + +var Subscription = /*@__PURE__*/ (function () { + function Subscription(unsubscribe) { + this.closed = false; + this._parent = null; + this._parents = null; + this._subscriptions = null; + if (unsubscribe) { + this._unsubscribe = unsubscribe; + } + } + Subscription.prototype.unsubscribe = function () { + var hasErrors = false; + var errors; + if (this.closed) { + return; + } + var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions; + this.closed = true; + this._parent = null; + this._parents = null; + this._subscriptions = null; + var index = -1; + var len = _parents ? _parents.length : 0; + while (_parent) { + _parent.remove(this); + _parent = ++index < len && _parents[index] || null; + } + if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(_unsubscribe)) { + var trial = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_3__["tryCatch"])(_unsubscribe).call(this); + if (trial === _util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"]) { + hasErrors = true; + errors = errors || (_util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"].e instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__["UnsubscriptionError"] ? + flattenUnsubscriptionErrors(_util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"].e.errors) : [_util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"].e]); + } + } + if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(_subscriptions)) { + index = -1; + len = _subscriptions.length; + while (++index < len) { + var sub = _subscriptions[index]; + if (Object(_util_isObject__WEBPACK_IMPORTED_MODULE_1__["isObject"])(sub)) { + var trial = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_3__["tryCatch"])(sub.unsubscribe).call(sub); + if (trial === _util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"]) { + hasErrors = true; + errors = errors || []; + var err = _util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"].e; + if (err instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__["UnsubscriptionError"]) { + errors = errors.concat(flattenUnsubscriptionErrors(err.errors)); + } + else { + errors.push(err); + } + } + } + } + } + if (hasErrors) { + throw new _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__["UnsubscriptionError"](errors); + } + }; + Subscription.prototype.add = function (teardown) { + if (!teardown || (teardown === Subscription.EMPTY)) { + return Subscription.EMPTY; + } + if (teardown === this) { + return this; + } + var subscription = teardown; + switch (typeof teardown) { + case 'function': + subscription = new Subscription(teardown); + case 'object': + if (subscription.closed || typeof subscription.unsubscribe !== 'function') { + return subscription; + } + else if (this.closed) { + subscription.unsubscribe(); + return subscription; + } + else if (typeof subscription._addParent !== 'function') { + var tmp = subscription; + subscription = new Subscription(); + subscription._subscriptions = [tmp]; + } + break; + default: + throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); + } + var subscriptions = this._subscriptions || (this._subscriptions = []); + subscriptions.push(subscription); + subscription._addParent(this); + return subscription; + }; + Subscription.prototype.remove = function (subscription) { + var subscriptions = this._subscriptions; + if (subscriptions) { + var subscriptionIndex = subscriptions.indexOf(subscription); + if (subscriptionIndex !== -1) { + subscriptions.splice(subscriptionIndex, 1); + } + } + }; + Subscription.prototype._addParent = function (parent) { + var _a = this, _parent = _a._parent, _parents = _a._parents; + if (!_parent || _parent === parent) { + this._parent = parent; + } + else if (!_parents) { + this._parents = [parent]; + } + else if (_parents.indexOf(parent) === -1) { + _parents.push(parent); + } + }; + Subscription.EMPTY = (function (empty) { + empty.closed = true; + return empty; + }(new Subscription())); + return Subscription; +}()); + +function flattenUnsubscriptionErrors(errors) { + return errors.reduce(function (errs, err) { return errs.concat((err instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__["UnsubscriptionError"]) ? err.errors : err); }, []); } -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); +//# sourceMappingURL=Subscription.js.map + + +/***/ }), +/* 173 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isArray", function() { return isArray; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); +//# sourceMappingURL=isArray.js.map + + +/***/ }), +/* 174 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObject", function() { return isObject; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function isObject(x) { + return x != null && typeof x === 'object'; +} +//# sourceMappingURL=isObject.js.map + + +/***/ }), +/* 175 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tryCatch", function() { return tryCatch; }); +/* harmony import */ var _errorObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(176); +/** PURE_IMPORTS_START _errorObject PURE_IMPORTS_END */ + +var tryCatchTarget; +function tryCatcher() { + try { + return tryCatchTarget.apply(this, arguments); + } + catch (e) { + _errorObject__WEBPACK_IMPORTED_MODULE_0__["errorObject"].e = e; + return _errorObject__WEBPACK_IMPORTED_MODULE_0__["errorObject"]; + } +} +function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} +//# sourceMappingURL=tryCatch.js.map + + +/***/ }), +/* 176 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "errorObject", function() { return errorObject; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var errorObject = { e: {} }; +//# sourceMappingURL=errorObject.js.map + + +/***/ }), +/* 177 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UnsubscriptionError", function() { return UnsubscriptionError; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/** PURE_IMPORTS_START tslib PURE_IMPORTS_END */ + +var UnsubscriptionError = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](UnsubscriptionError, _super); + function UnsubscriptionError(errors) { + var _this = _super.call(this, errors ? + errors.length + " errors occurred during unsubscription:\n " + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n ') : '') || this; + _this.errors = errors; + _this.name = 'UnsubscriptionError'; + Object.setPrototypeOf(_this, UnsubscriptionError.prototype); + return _this; + } + return UnsubscriptionError; +}(Error)); + +//# sourceMappingURL=UnsubscriptionError.js.map + + +/***/ }), +/* 178 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rxSubscriber", function() { return rxSubscriber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$$rxSubscriber", function() { return $$rxSubscriber; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') + ? /*@__PURE__*/ Symbol.for('rxSubscriber') + : '@@rxSubscriber'; +var $$rxSubscriber = rxSubscriber; +//# sourceMappingURL=rxSubscriber.js.map + + +/***/ }), +/* 179 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "observable", function() { return observable; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var observable = typeof Symbol === 'function' && Symbol.observable || '@@observable'; +//# sourceMappingURL=observable.js.map + + +/***/ }), +/* 180 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pipe", function() { return pipe; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pipeFromArray", function() { return pipeFromArray; }); +/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(181); +/** PURE_IMPORTS_START _noop PURE_IMPORTS_END */ + +function pipe() { + var fns = []; + for (var _i = 0; _i < arguments.length; _i++) { + fns[_i] = arguments[_i]; + } + return pipeFromArray(fns); +} +function pipeFromArray(fns) { + if (!fns) { + return _noop__WEBPACK_IMPORTED_MODULE_0__["noop"]; + } + if (fns.length === 1) { + return fns[0]; + } + return function piped(input) { + return fns.reduce(function (prev, fn) { return fn(prev); }, input); + }; +} +//# sourceMappingURL=pipe.js.map + + +/***/ }), +/* 181 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return noop; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function noop() { } +//# sourceMappingURL=noop.js.map + + +/***/ }), +/* 182 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectableObservable", function() { return ConnectableObservable; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "connectableObservableDescriptor", function() { return connectableObservableDescriptor; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(183); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(164); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(166); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(172); +/* harmony import */ var _operators_refCount__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(186); +/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */ + + + + + + +var ConnectableObservable = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ConnectableObservable, _super); + function ConnectableObservable(source, subjectFactory) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subjectFactory = subjectFactory; + _this._refCount = 0; + _this._isComplete = false; + return _this; + } + ConnectableObservable.prototype._subscribe = function (subscriber) { + return this.getSubject().subscribe(subscriber); + }; + ConnectableObservable.prototype.getSubject = function () { + var subject = this._subject; + if (!subject || subject.isStopped) { + this._subject = this.subjectFactory(); + } + return this._subject; + }; + ConnectableObservable.prototype.connect = function () { + var connection = this._connection; + if (!connection) { + this._isComplete = false; + connection = this._connection = new _Subscription__WEBPACK_IMPORTED_MODULE_4__["Subscription"](); + connection.add(this.source + .subscribe(new ConnectableSubscriber(this.getSubject(), this))); + if (connection.closed) { + this._connection = null; + connection = _Subscription__WEBPACK_IMPORTED_MODULE_4__["Subscription"].EMPTY; + } + else { + this._connection = connection; + } + } + return connection; + }; + ConnectableObservable.prototype.refCount = function () { + return Object(_operators_refCount__WEBPACK_IMPORTED_MODULE_5__["refCount"])()(this); + }; + return ConnectableObservable; +}(_Observable__WEBPACK_IMPORTED_MODULE_2__["Observable"])); + +var connectableProto = ConnectableObservable.prototype; +var connectableObservableDescriptor = { + operator: { value: null }, + _refCount: { value: 0, writable: true }, + _subject: { value: null, writable: true }, + _connection: { value: null, writable: true }, + _subscribe: { value: connectableProto._subscribe }, + _isComplete: { value: connectableProto._isComplete, writable: true }, + getSubject: { value: connectableProto.getSubject }, + connect: { value: connectableProto.connect }, + refCount: { value: connectableProto.refCount } +}; +var ConnectableSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ConnectableSubscriber, _super); + function ConnectableSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + ConnectableSubscriber.prototype._error = function (err) { + this._unsubscribe(); + _super.prototype._error.call(this, err); + }; + ConnectableSubscriber.prototype._complete = function () { + this.connectable._isComplete = true; + this._unsubscribe(); + _super.prototype._complete.call(this); + }; + ConnectableSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (connectable) { + this.connectable = null; + var connection = connectable._connection; + connectable._refCount = 0; + connectable._subject = null; + connectable._connection = null; + if (connection) { + connection.unsubscribe(); + } + } + }; + return ConnectableSubscriber; +}(_Subject__WEBPACK_IMPORTED_MODULE_1__["SubjectSubscriber"])); +var RefCountOperator = /*@__PURE__*/ (function () { + function RefCountOperator(connectable) { + this.connectable = connectable; + } + RefCountOperator.prototype.call = function (subscriber, source) { + var connectable = this.connectable; + connectable._refCount++; + var refCounter = new RefCountSubscriber(subscriber, connectable); + var subscription = source.subscribe(refCounter); + if (!refCounter.closed) { + refCounter.connection = connectable.connect(); + } + return subscription; + }; + return RefCountOperator; +}()); +var RefCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RefCountSubscriber, _super); + function RefCountSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + RefCountSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (!connectable) { + this.connection = null; + return; + } + this.connectable = null; + var refCount = connectable._refCount; + if (refCount <= 0) { + this.connection = null; + return; + } + connectable._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; + return; + } + var connection = this.connection; + var sharedConnection = connectable._connection; + this.connection = null; + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + }; + return RefCountSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"])); +//# sourceMappingURL=ConnectableObservable.js.map + + +/***/ }), +/* 183 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubjectSubscriber", function() { return SubjectSubscriber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Subject", function() { return Subject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnonymousSubject", function() { return AnonymousSubject; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(164); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(166); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(172); +/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(184); +/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(185); +/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(178); +/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */ + + + + + + + +var SubjectSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubjectSubscriber, _super); + function SubjectSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + return _this; + } + return SubjectSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__["Subscriber"])); + +var Subject = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Subject, _super); + function Subject() { + var _this = _super.call(this) || this; + _this.observers = []; + _this.closed = false; + _this.isStopped = false; + _this.hasError = false; + _this.thrownError = null; + return _this; + } + Subject.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__["rxSubscriber"]] = function () { + return new SubjectSubscriber(this); + }; + Subject.prototype.lift = function (operator) { + var subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + }; + Subject.prototype.next = function (value) { + if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); + } + if (!this.isStopped) { + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].next(value); + } + } + }; + Subject.prototype.error = function (err) { + if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); + } + this.hasError = true; + this.thrownError = err; + this.isStopped = true; + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].error(err); + } + this.observers.length = 0; + }; + Subject.prototype.complete = function () { + if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); + } + this.isStopped = true; + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].complete(); + } + this.observers.length = 0; + }; + Subject.prototype.unsubscribe = function () { + this.isStopped = true; + this.closed = true; + this.observers = null; + }; + Subject.prototype._trySubscribe = function (subscriber) { + if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); + } + else { + return _super.prototype._trySubscribe.call(this, subscriber); + } + }; + Subject.prototype._subscribe = function (subscriber) { + if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); + } + else if (this.hasError) { + subscriber.error(this.thrownError); + return _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY; + } + else if (this.isStopped) { + subscriber.complete(); + return _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY; + } + else { + this.observers.push(subscriber); + return new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__["SubjectSubscription"](this, subscriber); + } + }; + Subject.prototype.asObservable = function () { + var observable = new _Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"](); + observable.source = this; + return observable; + }; + Subject.create = function (destination, source) { + return new AnonymousSubject(destination, source); + }; + return Subject; +}(_Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"])); + +var AnonymousSubject = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnonymousSubject, _super); + function AnonymousSubject(destination, source) { + var _this = _super.call(this) || this; + _this.destination = destination; + _this.source = source; + return _this; + } + AnonymousSubject.prototype.next = function (value) { + var destination = this.destination; + if (destination && destination.next) { + destination.next(value); + } + }; + AnonymousSubject.prototype.error = function (err) { + var destination = this.destination; + if (destination && destination.error) { + this.destination.error(err); + } + }; + AnonymousSubject.prototype.complete = function () { + var destination = this.destination; + if (destination && destination.complete) { + this.destination.complete(); + } + }; + AnonymousSubject.prototype._subscribe = function (subscriber) { + var source = this.source; + if (source) { + return this.source.subscribe(subscriber); + } + else { + return _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY; + } + }; + return AnonymousSubject; +}(Subject)); +//# sourceMappingURL=Subject.js.map -if (true) { -exports.parser = spdxparse; -exports.Parser = spdxparse.Parser; -exports.parse = function () { return spdxparse.parse.apply(spdxparse, arguments); }; -exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: '+args[0]+' FILE'); - process.exit(1); + +/***/ }), +/* 184 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObjectUnsubscribedError", function() { return ObjectUnsubscribedError; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/** PURE_IMPORTS_START tslib PURE_IMPORTS_END */ + +var ObjectUnsubscribedError = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ObjectUnsubscribedError, _super); + function ObjectUnsubscribedError() { + var _this = _super.call(this, 'object unsubscribed') || this; + _this.name = 'ObjectUnsubscribedError'; + Object.setPrototypeOf(_this, ObjectUnsubscribedError.prototype); + return _this; } - var source = __webpack_require__(13).readFileSync(__webpack_require__(5).normalize(args[1]), "utf8"); - return exports.parser.parse(source); -}; -if ( true && __webpack_require__.c[__webpack_require__.s] === module) { - exports.main(process.argv.slice(1)); -} -} + return ObjectUnsubscribedError; +}(Error)); + +//# sourceMappingURL=ObjectUnsubscribedError.js.map -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(112)(module))) /***/ }), -/* 202 */ -/***/ (function(module, exports, __webpack_require__) { +/* 185 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var licenseIDs = __webpack_require__(203); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubjectSubscription", function() { return SubjectSubscription; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */ -function valid(string) { - return licenseIDs.indexOf(string) > -1; -} -// Common transpositions of license identifier acronyms -var transpositions = [ - ['APGL', 'AGPL'], - ['Gpl', 'GPL'], - ['GLP', 'GPL'], - ['APL', 'Apache'], - ['ISD', 'ISC'], - ['GLP', 'GPL'], - ['IST', 'ISC'], - ['Claude', 'Clause'], - [' or later', '+'], - [' International', ''], - ['GNU', 'GPL'], - ['GUN', 'GPL'], - ['+', ''], - ['GNU GPL', 'GPL'], - ['GNU/GPL', 'GPL'], - ['GNU GLP', 'GPL'], - ['GNU General Public License', 'GPL'], - ['Gnu public license', 'GPL'], - ['GNU Public License', 'GPL'], - ['GNU GENERAL PUBLIC LICENSE', 'GPL'], - ['MTI', 'MIT'], - ['Mozilla Public License', 'MPL'], - ['WTH', 'WTF'], - ['-License', ''] -]; +var SubjectSubscription = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubjectSubscription, _super); + function SubjectSubscription(subject, subscriber) { + var _this = _super.call(this) || this; + _this.subject = subject; + _this.subscriber = subscriber; + _this.closed = false; + return _this; + } + SubjectSubscription.prototype.unsubscribe = function () { + if (this.closed) { + return; + } + this.closed = true; + var subject = this.subject; + var observers = subject.observers; + this.subject = null; + if (!observers || observers.length === 0 || subject.isStopped || subject.closed) { + return; + } + var subscriberIndex = observers.indexOf(this.subscriber); + if (subscriberIndex !== -1) { + observers.splice(subscriberIndex, 1); + } + }; + return SubjectSubscription; +}(_Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"])); -var TRANSPOSED = 0; -var CORRECT = 1; +//# sourceMappingURL=SubjectSubscription.js.map -// Simple corrections to nearly valid identifiers. -var transforms = [ - // e.g. 'mit' - function(argument) { - return argument.toUpperCase(); - }, - // e.g. 'MIT ' - function(argument) { - return argument.trim(); - }, - // e.g. 'M.I.T.' - function(argument) { - return argument.replace(/\./g, ''); - }, - // e.g. 'Apache- 2.0' - function(argument) { - return argument.replace(/\s+/g, ''); - }, - // e.g. 'CC BY 4.0'' - function(argument) { - return argument.replace(/\s+/g, '-'); - }, - // e.g. 'LGPLv2.1' - function(argument) { - return argument.replace('v', '-'); - }, - // e.g. 'Apache 2.0' - function(argument) { - return argument.replace(/,?\s*(\d)/, '-$1'); - }, - // e.g. 'GPL 2' - function(argument) { - return argument.replace(/,?\s*(\d)/, '-$1.0'); - }, - // e.g. 'Apache Version 2.0' - function(argument) { - return argument.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2'); - }, - // e.g. 'Apache Version 2' - function(argument) { - return argument.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2.0'); - }, - // e.g. 'ZLIB' - function(argument) { - return argument[0].toUpperCase() + argument.slice(1); - }, - // e.g. 'MPL/2.0' - function(argument) { - return argument.replace('/', '-'); - }, - // e.g. 'Apache 2' - function(argument) { - return argument - .replace(/\s*V\s*(\d)/, '-$1') - .replace(/(\d)$/, '$1.0'); - }, - // e.g. 'GPL-2.0-' - function(argument) { - return argument.slice(0, argument.length - 1); - }, - // e.g. 'GPL2' - function(argument) { - return argument.replace(/(\d)$/, '-$1.0'); - }, - // e.g. 'BSD 3' - function(argument) { - return argument.replace(/(-| )?(\d)$/, '-$2-Clause'); - }, - // e.g. 'BSD clause 3' - function(argument) { - return argument.replace(/(-| )clause(-| )(\d)/, '-$3-Clause'); - }, - // e.g. 'BY-NC-4.0' - function(argument) { - return 'CC-' + argument; - }, - // e.g. 'BY-NC' - function(argument) { - return 'CC-' + argument + '-4.0'; - }, - // e.g. 'Attribution-NonCommercial' - function(argument) { - return argument - .replace('Attribution', 'BY') - .replace('NonCommercial', 'NC') - .replace('NoDerivatives', 'ND') - .replace(/ (\d)/, '-$1') - .replace(/ ?International/, ''); - }, - // e.g. 'Attribution-NonCommercial' - function(argument) { - return 'CC-' + - argument - .replace('Attribution', 'BY') - .replace('NonCommercial', 'NC') - .replace('NoDerivatives', 'ND') - .replace(/ (\d)/, '-$1') - .replace(/ ?International/, '') + - '-4.0'; - } -]; -// If all else fails, guess that strings containing certain substrings -// meant to identify certain licenses. -var lastResorts = [ - ['UNLI', 'Unlicense'], - ['WTF', 'WTFPL'], - ['2 CLAUSE', 'BSD-2-Clause'], - ['2-CLAUSE', 'BSD-2-Clause'], - ['3 CLAUSE', 'BSD-3-Clause'], - ['3-CLAUSE', 'BSD-3-Clause'], - ['AFFERO', 'AGPL-3.0'], - ['AGPL', 'AGPL-3.0'], - ['APACHE', 'Apache-2.0'], - ['ARTISTIC', 'Artistic-2.0'], - ['Affero', 'AGPL-3.0'], - ['BEER', 'Beerware'], - ['BOOST', 'BSL-1.0'], - ['BSD', 'BSD-2-Clause'], - ['ECLIPSE', 'EPL-1.0'], - ['FUCK', 'WTFPL'], - ['GNU', 'GPL-3.0'], - ['LGPL', 'LGPL-3.0'], - ['GPL', 'GPL-3.0'], - ['MIT', 'MIT'], - ['MPL', 'MPL-2.0'], - ['X11', 'X11'], - ['ZLIB', 'Zlib'] -]; +/***/ }), +/* 186 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var SUBSTRING = 0; -var IDENTIFIER = 1; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "refCount", function() { return refCount; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -var validTransformation = function(identifier) { - for (var i = 0; i < transforms.length; i++) { - var transformed = transforms[i](identifier); - if (transformed !== identifier && valid(transformed)) { - return transformed; + +function refCount() { + return function refCountOperatorFunction(source) { + return source.lift(new RefCountOperator(source)); + }; +} +var RefCountOperator = /*@__PURE__*/ (function () { + function RefCountOperator(connectable) { + this.connectable = connectable; } - } - return null; -}; + RefCountOperator.prototype.call = function (subscriber, source) { + var connectable = this.connectable; + connectable._refCount++; + var refCounter = new RefCountSubscriber(subscriber, connectable); + var subscription = source.subscribe(refCounter); + if (!refCounter.closed) { + refCounter.connection = connectable.connect(); + } + return subscription; + }; + return RefCountOperator; +}()); +var RefCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RefCountSubscriber, _super); + function RefCountSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + RefCountSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (!connectable) { + this.connection = null; + return; + } + this.connectable = null; + var refCount = connectable._refCount; + if (refCount <= 0) { + this.connection = null; + return; + } + connectable._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; + return; + } + var connection = this.connection; + var sharedConnection = connectable._connection; + this.connection = null; + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + }; + return RefCountSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=refCount.js.map -var validLastResort = function(identifier) { - var upperCased = identifier.toUpperCase(); - for (var i = 0; i < lastResorts.length; i++) { - var lastResort = lastResorts[i]; - if (upperCased.indexOf(lastResort[SUBSTRING]) > -1) { - return lastResort[IDENTIFIER]; + +/***/ }), +/* 187 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return groupBy; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupedObservable", function() { return GroupedObservable; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(172); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(164); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(183); +/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription,_Observable,_Subject PURE_IMPORTS_END */ + + + + + +function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) { + return function (source) { + return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector)); + }; +} +var GroupByOperator = /*@__PURE__*/ (function () { + function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) { + this.keySelector = keySelector; + this.elementSelector = elementSelector; + this.durationSelector = durationSelector; + this.subjectSelector = subjectSelector; + } + GroupByOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector)); + }; + return GroupByOperator; +}()); +var GroupBySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupBySubscriber, _super); + function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.elementSelector = elementSelector; + _this.durationSelector = durationSelector; + _this.subjectSelector = subjectSelector; + _this.groups = null; + _this.attemptedToUnsubscribe = false; + _this.count = 0; + return _this; + } + GroupBySubscriber.prototype._next = function (value) { + var key; + try { + key = this.keySelector(value); + } + catch (err) { + this.error(err); + return; + } + this._group(value, key); + }; + GroupBySubscriber.prototype._group = function (value, key) { + var groups = this.groups; + if (!groups) { + groups = this.groups = new Map(); + } + var group = groups.get(key); + var element; + if (this.elementSelector) { + try { + element = this.elementSelector(value); + } + catch (err) { + this.error(err); + } + } + else { + element = value; + } + if (!group) { + group = (this.subjectSelector ? this.subjectSelector() : new _Subject__WEBPACK_IMPORTED_MODULE_4__["Subject"]()); + groups.set(key, group); + var groupedObservable = new GroupedObservable(key, group, this); + this.destination.next(groupedObservable); + if (this.durationSelector) { + var duration = void 0; + try { + duration = this.durationSelector(new GroupedObservable(key, group)); + } + catch (err) { + this.error(err); + return; + } + this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this))); + } + } + if (!group.closed) { + group.next(element); + } + }; + GroupBySubscriber.prototype._error = function (err) { + var groups = this.groups; + if (groups) { + groups.forEach(function (group, key) { + group.error(err); + }); + groups.clear(); + } + this.destination.error(err); + }; + GroupBySubscriber.prototype._complete = function () { + var groups = this.groups; + if (groups) { + groups.forEach(function (group, key) { + group.complete(); + }); + groups.clear(); + } + this.destination.complete(); + }; + GroupBySubscriber.prototype.removeGroup = function (key) { + this.groups.delete(key); + }; + GroupBySubscriber.prototype.unsubscribe = function () { + if (!this.closed) { + this.attemptedToUnsubscribe = true; + if (this.count === 0) { + _super.prototype.unsubscribe.call(this); + } + } + }; + return GroupBySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +var GroupDurationSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupDurationSubscriber, _super); + function GroupDurationSubscriber(key, group, parent) { + var _this = _super.call(this, group) || this; + _this.key = key; + _this.group = group; + _this.parent = parent; + return _this; } - } - return null; -}; - -var anyCorrection = function(identifier, check) { - for (var i = 0; i < transpositions.length; i++) { - var transposition = transpositions[i]; - var transposed = transposition[TRANSPOSED]; - if (identifier.indexOf(transposed) > -1) { - var corrected = identifier.replace( - transposed, - transposition[CORRECT] - ); - var checked = check(corrected); - if (checked !== null) { - return checked; - } + GroupDurationSubscriber.prototype._next = function (value) { + this.complete(); + }; + GroupDurationSubscriber.prototype._unsubscribe = function () { + var _a = this, parent = _a.parent, key = _a.key; + this.key = this.parent = null; + if (parent) { + parent.removeGroup(key); + } + }; + return GroupDurationSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +var GroupedObservable = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupedObservable, _super); + function GroupedObservable(key, groupSubject, refCountSubscription) { + var _this = _super.call(this) || this; + _this.key = key; + _this.groupSubject = groupSubject; + _this.refCountSubscription = refCountSubscription; + return _this; } - } - return null; -}; + GroupedObservable.prototype._subscribe = function (subscriber) { + var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"](); + var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject; + if (refCountSubscription && !refCountSubscription.closed) { + subscription.add(new InnerRefCountSubscription(refCountSubscription)); + } + subscription.add(groupSubject.subscribe(subscriber)); + return subscription; + }; + return GroupedObservable; +}(_Observable__WEBPACK_IMPORTED_MODULE_3__["Observable"])); -module.exports = function(identifier) { - identifier = identifier.replace(/\+$/, ''); - if (valid(identifier)) { - return identifier; - } - var transformed = validTransformation(identifier); - if (transformed !== null) { - return transformed; - } - transformed = anyCorrection(identifier, function(argument) { - if (valid(argument)) { - return argument; +var InnerRefCountSubscription = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](InnerRefCountSubscription, _super); + function InnerRefCountSubscription(parent) { + var _this = _super.call(this) || this; + _this.parent = parent; + parent.count++; + return _this; } - return validTransformation(argument); - }); - if (transformed !== null) { - return transformed; - } - transformed = validLastResort(identifier); - if (transformed !== null) { - return transformed; - } - transformed = anyCorrection(identifier, validLastResort); - if (transformed !== null) { - return transformed; - } - return null; -}; - - -/***/ }), -/* 203 */ -/***/ (function(module) { + InnerRefCountSubscription.prototype.unsubscribe = function () { + var parent = this.parent; + if (!parent.closed && !this.closed) { + _super.prototype.unsubscribe.call(this); + parent.count -= 1; + if (parent.count === 0 && parent.attemptedToUnsubscribe) { + parent.unsubscribe(); + } + } + }; + return InnerRefCountSubscription; +}(_Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"])); +//# sourceMappingURL=groupBy.js.map -module.exports = ["Glide","Abstyles","AFL-1.1","AFL-1.2","AFL-2.0","AFL-2.1","AFL-3.0","AMPAS","APL-1.0","Adobe-Glyph","APAFML","Adobe-2006","AGPL-1.0","Afmparse","Aladdin","ADSL","AMDPLPA","ANTLR-PD","Apache-1.0","Apache-1.1","Apache-2.0","AML","APSL-1.0","APSL-1.1","APSL-1.2","APSL-2.0","Artistic-1.0","Artistic-1.0-Perl","Artistic-1.0-cl8","Artistic-2.0","AAL","Bahyph","Barr","Beerware","BitTorrent-1.0","BitTorrent-1.1","BSL-1.0","Borceux","BSD-2-Clause","BSD-2-Clause-FreeBSD","BSD-2-Clause-NetBSD","BSD-3-Clause","BSD-3-Clause-Clear","BSD-4-Clause","BSD-Protection","BSD-Source-Code","BSD-3-Clause-Attribution","0BSD","BSD-4-Clause-UC","bzip2-1.0.5","bzip2-1.0.6","Caldera","CECILL-1.0","CECILL-1.1","CECILL-2.0","CECILL-2.1","CECILL-B","CECILL-C","ClArtistic","MIT-CMU","CNRI-Jython","CNRI-Python","CNRI-Python-GPL-Compatible","CPOL-1.02","CDDL-1.0","CDDL-1.1","CPAL-1.0","CPL-1.0","CATOSL-1.1","Condor-1.1","CC-BY-1.0","CC-BY-2.0","CC-BY-2.5","CC-BY-3.0","CC-BY-4.0","CC-BY-ND-1.0","CC-BY-ND-2.0","CC-BY-ND-2.5","CC-BY-ND-3.0","CC-BY-ND-4.0","CC-BY-NC-1.0","CC-BY-NC-2.0","CC-BY-NC-2.5","CC-BY-NC-3.0","CC-BY-NC-4.0","CC-BY-NC-ND-1.0","CC-BY-NC-ND-2.0","CC-BY-NC-ND-2.5","CC-BY-NC-ND-3.0","CC-BY-NC-ND-4.0","CC-BY-NC-SA-1.0","CC-BY-NC-SA-2.0","CC-BY-NC-SA-2.5","CC-BY-NC-SA-3.0","CC-BY-NC-SA-4.0","CC-BY-SA-1.0","CC-BY-SA-2.0","CC-BY-SA-2.5","CC-BY-SA-3.0","CC-BY-SA-4.0","CC0-1.0","Crossword","CrystalStacker","CUA-OPL-1.0","Cube","curl","D-FSL-1.0","diffmark","WTFPL","DOC","Dotseqn","DSDP","dvipdfm","EPL-1.0","ECL-1.0","ECL-2.0","eGenix","EFL-1.0","EFL-2.0","MIT-advertising","MIT-enna","Entessa","ErlPL-1.1","EUDatagrid","EUPL-1.0","EUPL-1.1","Eurosym","Fair","MIT-feh","Frameworx-1.0","FreeImage","FTL","FSFAP","FSFUL","FSFULLR","Giftware","GL2PS","Glulxe","AGPL-3.0","GFDL-1.1","GFDL-1.2","GFDL-1.3","GPL-1.0","GPL-2.0","GPL-3.0","LGPL-2.1","LGPL-3.0","LGPL-2.0","gnuplot","gSOAP-1.3b","HaskellReport","HPND","IBM-pibs","IPL-1.0","ICU","ImageMagick","iMatix","Imlib2","IJG","Info-ZIP","Intel-ACPI","Intel","Interbase-1.0","IPA","ISC","JasPer-2.0","JSON","LPPL-1.0","LPPL-1.1","LPPL-1.2","LPPL-1.3a","LPPL-1.3c","Latex2e","BSD-3-Clause-LBNL","Leptonica","LGPLLR","Libpng","libtiff","LAL-1.2","LAL-1.3","LiLiQ-P-1.1","LiLiQ-Rplus-1.1","LiLiQ-R-1.1","LPL-1.02","LPL-1.0","MakeIndex","MTLL","MS-PL","MS-RL","MirOS","MITNFA","MIT","Motosoto","MPL-1.0","MPL-1.1","MPL-2.0","MPL-2.0-no-copyleft-exception","mpich2","Multics","Mup","NASA-1.3","Naumen","NBPL-1.0","NetCDF","NGPL","NOSL","NPL-1.0","NPL-1.1","Newsletr","NLPL","Nokia","NPOSL-3.0","NLOD-1.0","Noweb","NRL","NTP","Nunit","OCLC-2.0","ODbL-1.0","PDDL-1.0","OCCT-PL","OGTSL","OLDAP-2.2.2","OLDAP-1.1","OLDAP-1.2","OLDAP-1.3","OLDAP-1.4","OLDAP-2.0","OLDAP-2.0.1","OLDAP-2.1","OLDAP-2.2","OLDAP-2.2.1","OLDAP-2.3","OLDAP-2.4","OLDAP-2.5","OLDAP-2.6","OLDAP-2.7","OLDAP-2.8","OML","OPL-1.0","OSL-1.0","OSL-1.1","OSL-2.0","OSL-2.1","OSL-3.0","OpenSSL","OSET-PL-2.1","PHP-3.0","PHP-3.01","Plexus","PostgreSQL","psfrag","psutils","Python-2.0","QPL-1.0","Qhull","Rdisc","RPSL-1.0","RPL-1.1","RPL-1.5","RHeCos-1.1","RSCPL","RSA-MD","Ruby","SAX-PD","Saxpath","SCEA","SWL","SMPPL","Sendmail","SGI-B-1.0","SGI-B-1.1","SGI-B-2.0","OFL-1.0","OFL-1.1","SimPL-2.0","Sleepycat","SNIA","Spencer-86","Spencer-94","Spencer-99","SMLNJ","SugarCRM-1.1.3","SISSL","SISSL-1.2","SPL-1.0","Watcom-1.0","TCL","Unlicense","TMate","TORQUE-1.1","TOSL","Unicode-TOU","UPL-1.0","NCSA","Vim","VOSTROM","VSL-1.0","W3C-19980720","W3C","Wsuipa","Xnet","X11","Xerox","XFree86-1.1","xinetd","xpp","XSkat","YPL-1.0","YPL-1.1","Zed","Zend-2.0","Zimbra-1.3","Zimbra-1.4","Zlib","zlib-acknowledgement","ZPL-1.1","ZPL-2.0","ZPL-2.1","BSD-3-Clause-No-Nuclear-License","BSD-3-Clause-No-Nuclear-Warranty","BSD-3-Clause-No-Nuclear-License-2014","eCos-2.0","GPL-2.0-with-autoconf-exception","GPL-2.0-with-bison-exception","GPL-2.0-with-classpath-exception","GPL-2.0-with-font-exception","GPL-2.0-with-GCC-exception","GPL-3.0-with-autoconf-exception","GPL-3.0-with-GCC-exception","StandardML-NJ","WXwindows"]; /***/ }), -/* 204 */ -/***/ (function(module, exports, __webpack_require__) { +/* 188 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BehaviorSubject", function() { return BehaviorSubject; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(183); +/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(184); +/** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */ -var url = __webpack_require__(102) -var gitHosts = __webpack_require__(124) -var GitHost = module.exports = __webpack_require__(205) - -var protocolToRepresentationMap = { - 'git+ssh': 'sshurl', - 'git+https': 'https', - 'ssh': 'sshurl', - 'git': 'git' -} - -function protocolToRepresentation (protocol) { - if (protocol.substr(-1) === ':') protocol = protocol.slice(0, -1) - return protocolToRepresentationMap[protocol] || protocol -} - -var authProtocols = { - 'git:': true, - 'https:': true, - 'git+https:': true, - 'http:': true, - 'git+http:': true -} - -var cache = {} - -module.exports.fromUrl = function (giturl, opts) { - var key = giturl + JSON.stringify(opts || {}) - - if (!(key in cache)) { - cache[key] = fromUrl(giturl, opts) - } - return cache[key] -} -function fromUrl (giturl, opts) { - if (giturl == null || giturl === '') return - var url = fixupUnqualifiedGist( - isGitHubShorthand(giturl) ? 'github:' + giturl : giturl - ) - var parsed = parseGitUrl(url) - var shortcutMatch = url.match(new RegExp('^([^:]+):(?:(?:[^@:]+(?:[^@]+)?@)?([^/]*))[/](.+?)(?:[.]git)?($|#)')) - var matches = Object.keys(gitHosts).map(function (gitHostName) { - try { - var gitHostInfo = gitHosts[gitHostName] - var auth = null - if (parsed.auth && authProtocols[parsed.protocol]) { - auth = decodeURIComponent(parsed.auth) - } - var committish = parsed.hash ? decodeURIComponent(parsed.hash.substr(1)) : null - var user = null - var project = null - var defaultRepresentation = null - if (shortcutMatch && shortcutMatch[1] === gitHostName) { - user = shortcutMatch[2] && decodeURIComponent(shortcutMatch[2]) - project = decodeURIComponent(shortcutMatch[3]) - defaultRepresentation = 'shortcut' - } else { - if (parsed.host !== gitHostInfo.domain) return - if (!gitHostInfo.protocols_re.test(parsed.protocol)) return - if (!parsed.path) return - var pathmatch = gitHostInfo.pathmatch - var matched = parsed.path.match(pathmatch) - if (!matched) return - if (matched[1] != null) user = decodeURIComponent(matched[1].replace(/^:/, '')) - if (matched[2] != null) project = decodeURIComponent(matched[2]) - defaultRepresentation = protocolToRepresentation(parsed.protocol) - } - return new GitHost(gitHostName, user, auth, project, committish, defaultRepresentation, opts) - } catch (ex) { - if (!(ex instanceof URIError)) throw ex +var BehaviorSubject = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BehaviorSubject, _super); + function BehaviorSubject(_value) { + var _this = _super.call(this) || this; + _this._value = _value; + return _this; } - }).filter(function (gitHostInfo) { return gitHostInfo }) - if (matches.length !== 1) return - return matches[0] -} - -function isGitHubShorthand (arg) { - // Note: This does not fully test the git ref format. - // See https://www.kernel.org/pub/software/scm/git/docs/git-check-ref-format.html - // - // The only way to do this properly would be to shell out to - // git-check-ref-format, and as this is a fast sync function, - // we don't want to do that. Just let git fail if it turns - // out that the commit-ish is invalid. - // GH usernames cannot start with . or - - return /^[^:@%/\s.-][^:@%/\s]*[/][^:@\s/%]+(?:#.*)?$/.test(arg) -} - -function fixupUnqualifiedGist (giturl) { - // necessary for round-tripping gists - var parsed = url.parse(giturl) - if (parsed.protocol === 'gist:' && parsed.host && !parsed.path) { - return parsed.protocol + '/' + parsed.host - } else { - return giturl - } -} + Object.defineProperty(BehaviorSubject.prototype, "value", { + get: function () { + return this.getValue(); + }, + enumerable: true, + configurable: true + }); + BehaviorSubject.prototype._subscribe = function (subscriber) { + var subscription = _super.prototype._subscribe.call(this, subscriber); + if (subscription && !subscription.closed) { + subscriber.next(this._value); + } + return subscription; + }; + BehaviorSubject.prototype.getValue = function () { + if (this.hasError) { + throw this.thrownError; + } + else if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__["ObjectUnsubscribedError"](); + } + else { + return this._value; + } + }; + BehaviorSubject.prototype.next = function (value) { + _super.prototype.next.call(this, this._value = value); + }; + return BehaviorSubject; +}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"])); -function parseGitUrl (giturl) { - if (typeof giturl !== 'string') giturl = '' + giturl - var matched = giturl.match(/^([^@]+)@([^:/]+):[/]?((?:[^/]+[/])?[^/]+?)(?:[.]git)?(#.*)?$/) - if (!matched) return url.parse(giturl) - return { - protocol: 'git+ssh:', - slashes: true, - auth: matched[1], - host: matched[2], - port: null, - hostname: matched[2], - hash: matched[4], - search: null, - query: null, - pathname: '/' + matched[3], - path: '/' + matched[3], - href: 'git+ssh://' + matched[1] + '@' + matched[2] + - '/' + matched[3] + (matched[4] || '') - } -} +//# sourceMappingURL=BehaviorSubject.js.map /***/ }), -/* 205 */ -/***/ (function(module, exports, __webpack_require__) { +/* 189 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReplaySubject", function() { return ReplaySubject; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(183); +/* harmony import */ var _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(190); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(172); +/* harmony import */ var _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(197); +/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(184); +/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(185); +/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */ -var gitHosts = __webpack_require__(124) -var extend = Object.assign || __webpack_require__(14)._extend -var GitHost = module.exports = function (type, user, auth, project, committish, defaultRepresentation, opts) { - var gitHostInfo = this - gitHostInfo.type = type - Object.keys(gitHosts[type]).forEach(function (key) { - gitHostInfo[key] = gitHosts[type][key] - }) - gitHostInfo.user = user - gitHostInfo.auth = auth - gitHostInfo.project = project - gitHostInfo.committish = committish - gitHostInfo.default = defaultRepresentation - gitHostInfo.opts = opts || {} -} -GitHost.prototype = {} -GitHost.prototype.hash = function () { - return this.committish ? '#' + this.committish : '' -} -GitHost.prototype._fill = function (template, opts) { - if (!template) return - var vars = extend({}, opts) - opts = extend(extend({}, this.opts), opts) - var self = this - Object.keys(this).forEach(function (key) { - if (self[key] != null && vars[key] == null) vars[key] = self[key] - }) - var rawAuth = vars.auth - var rawComittish = vars.committish - Object.keys(vars).forEach(function (key) { - vars[key] = encodeURIComponent(vars[key]) - }) - vars['auth@'] = rawAuth ? rawAuth + '@' : '' - if (opts.noCommittish) { - vars['#committish'] = '' - vars['/tree/committish'] = '' - vars['/comittish'] = '' - vars.comittish = '' - } else { - vars['#committish'] = rawComittish ? '#' + rawComittish : '' - vars['/tree/committish'] = vars.committish - ? '/' + vars.treepath + '/' + vars.committish - : '' - vars['/committish'] = vars.committish ? '/' + vars.committish : '' - vars.committish = vars.committish || 'master' - } - var res = template - Object.keys(vars).forEach(function (key) { - res = res.replace(new RegExp('[{]' + key + '[}]', 'g'), vars[key]) - }) - if (opts.noGitPlus) { - return res.replace(/^git[+]/, '') - } else { - return res - } -} -GitHost.prototype.ssh = function (opts) { - return this._fill(this.sshtemplate, opts) -} -GitHost.prototype.sshurl = function (opts) { - return this._fill(this.sshurltemplate, opts) -} -GitHost.prototype.browse = function (opts) { - return this._fill(this.browsetemplate, opts) -} +var ReplaySubject = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ReplaySubject, _super); + function ReplaySubject(bufferSize, windowTime, scheduler) { + if (bufferSize === void 0) { + bufferSize = Number.POSITIVE_INFINITY; + } + if (windowTime === void 0) { + windowTime = Number.POSITIVE_INFINITY; + } + var _this = _super.call(this) || this; + _this.scheduler = scheduler; + _this._events = []; + _this._infiniteTimeWindow = false; + _this._bufferSize = bufferSize < 1 ? 1 : bufferSize; + _this._windowTime = windowTime < 1 ? 1 : windowTime; + if (windowTime === Number.POSITIVE_INFINITY) { + _this._infiniteTimeWindow = true; + _this.next = _this.nextInfiniteTimeWindow; + } + else { + _this.next = _this.nextTimeWindow; + } + return _this; + } + ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) { + var _events = this._events; + _events.push(value); + if (_events.length > this._bufferSize) { + _events.shift(); + } + _super.prototype.next.call(this, value); + }; + ReplaySubject.prototype.nextTimeWindow = function (value) { + this._events.push(new ReplayEvent(this._getNow(), value)); + this._trimBufferThenGetEvents(); + _super.prototype.next.call(this, value); + }; + ReplaySubject.prototype._subscribe = function (subscriber) { + var _infiniteTimeWindow = this._infiniteTimeWindow; + var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents(); + var scheduler = this.scheduler; + var len = _events.length; + var subscription; + if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__["ObjectUnsubscribedError"](); + } + else if (this.isStopped || this.hasError) { + subscription = _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY; + } + else { + this.observers.push(subscriber); + subscription = new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__["SubjectSubscription"](this, subscriber); + } + if (scheduler) { + subscriber.add(subscriber = new _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__["ObserveOnSubscriber"](subscriber, scheduler)); + } + if (_infiniteTimeWindow) { + for (var i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i]); + } + } + else { + for (var i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i].value); + } + } + if (this.hasError) { + subscriber.error(this.thrownError); + } + else if (this.isStopped) { + subscriber.complete(); + } + return subscription; + }; + ReplaySubject.prototype._getNow = function () { + return (this.scheduler || _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__["queue"]).now(); + }; + ReplaySubject.prototype._trimBufferThenGetEvents = function () { + var now = this._getNow(); + var _bufferSize = this._bufferSize; + var _windowTime = this._windowTime; + var _events = this._events; + var eventsCount = _events.length; + var spliceCount = 0; + while (spliceCount < eventsCount) { + if ((now - _events[spliceCount].time) < _windowTime) { + break; + } + spliceCount++; + } + if (eventsCount > _bufferSize) { + spliceCount = Math.max(spliceCount, eventsCount - _bufferSize); + } + if (spliceCount > 0) { + _events.splice(0, spliceCount); + } + return _events; + }; + return ReplaySubject; +}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"])); -GitHost.prototype.docs = function (opts) { - return this._fill(this.docstemplate, opts) -} +var ReplayEvent = /*@__PURE__*/ (function () { + function ReplayEvent(time, value) { + this.time = time; + this.value = value; + } + return ReplayEvent; +}()); +//# sourceMappingURL=ReplaySubject.js.map -GitHost.prototype.bugs = function (opts) { - return this._fill(this.bugstemplate, opts) -} -GitHost.prototype.https = function (opts) { - return this._fill(this.httpstemplate, opts) -} +/***/ }), +/* 190 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -GitHost.prototype.git = function (opts) { - return this._fill(this.gittemplate, opts) -} +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queue", function() { return queue; }); +/* harmony import */ var _QueueAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(191); +/* harmony import */ var _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(194); +/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */ -GitHost.prototype.shortcut = function (opts) { - return this._fill(this.shortcuttemplate, opts) -} -GitHost.prototype.path = function (opts) { - return this._fill(this.pathtemplate, opts) -} +var queue = /*@__PURE__*/ new _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__["QueueScheduler"](_QueueAction__WEBPACK_IMPORTED_MODULE_0__["QueueAction"]); +//# sourceMappingURL=queue.js.map -GitHost.prototype.tarball = function (opts) { - return this._fill(this.tarballtemplate, opts) -} -GitHost.prototype.file = function (P, opts) { - return this._fill(this.filetemplate, extend({ - path: P.replace(/^[/]+/g, '') - }, opts)) -} +/***/ }), +/* 191 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -GitHost.prototype.getDefaultRepresentation = function () { - return this.default -} +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueueAction", function() { return QueueAction; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(192); +/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */ + + +var QueueAction = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](QueueAction, _super); + function QueueAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + QueueAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay > 0) { + return _super.prototype.schedule.call(this, state, delay); + } + this.delay = delay; + this.state = state; + this.scheduler.flush(this); + return this; + }; + QueueAction.prototype.execute = function (state, delay) { + return (delay > 0 || this.closed) ? + _super.prototype.execute.call(this, state, delay) : + this._execute(state, delay); + }; + QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + return scheduler.flush(this); + }; + return QueueAction; +}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__["AsyncAction"])); -GitHost.prototype.toString = function (opts) { - return (this[this.default] || this.sshurl).call(this, opts) -} +//# sourceMappingURL=QueueAction.js.map /***/ }), -/* 206 */ -/***/ (function(module, exports, __webpack_require__) { +/* 192 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncAction", function() { return AsyncAction; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Action__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(193); +/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */ -var builtinModules = __webpack_require__(207); -module.exports = function (str) { - if (typeof str !== 'string') { - throw new TypeError('Expected a string'); - } +var AsyncAction = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsyncAction, _super); + function AsyncAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.pending = false; + return _this; + } + AsyncAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { + delay = 0; + } + if (this.closed) { + return this; + } + this.state = state; + var id = this.id; + var scheduler = this.scheduler; + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, delay); + } + this.pending = true; + this.delay = delay; + this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); + return this; + }; + AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + return setInterval(scheduler.flush.bind(scheduler, this), delay); + }; + AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && this.delay === delay && this.pending === false) { + return id; + } + return clearInterval(id) && undefined || undefined; + }; + AsyncAction.prototype.execute = function (state, delay) { + if (this.closed) { + return new Error('executing a cancelled action'); + } + this.pending = false; + var error = this._execute(state, delay); + if (error) { + return error; + } + else if (this.pending === false && this.id != null) { + this.id = this.recycleAsyncId(this.scheduler, this.id, null); + } + }; + AsyncAction.prototype._execute = function (state, delay) { + var errored = false; + var errorValue = undefined; + try { + this.work(state); + } + catch (e) { + errored = true; + errorValue = !!e && e || new Error(e); + } + if (errored) { + this.unsubscribe(); + return errorValue; + } + }; + AsyncAction.prototype._unsubscribe = function () { + var id = this.id; + var scheduler = this.scheduler; + var actions = scheduler.actions; + var index = actions.indexOf(this); + this.work = null; + this.state = null; + this.pending = false; + this.scheduler = null; + if (index !== -1) { + actions.splice(index, 1); + } + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, null); + } + this.delay = null; + }; + return AsyncAction; +}(_Action__WEBPACK_IMPORTED_MODULE_1__["Action"])); - return builtinModules.indexOf(str) !== -1; -}; +//# sourceMappingURL=AsyncAction.js.map /***/ }), -/* 207 */ -/***/ (function(module, exports, __webpack_require__) { +/* 193 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Action", function() { return Action; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */ -var blacklist = [ - 'freelist', - 'sys' -]; +var Action = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Action, _super); + function Action(scheduler, work) { + return _super.call(this) || this; + } + Action.prototype.schedule = function (state, delay) { + if (delay === void 0) { + delay = 0; + } + return this; + }; + return Action; +}(_Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"])); -module.exports = Object.keys(process.binding('natives')).filter(function (el) { - return !/^_|^internal|\//.test(el) && blacklist.indexOf(el) === -1; -}).sort(); +//# sourceMappingURL=Action.js.map /***/ }), -/* 208 */ -/***/ (function(module, exports) { +/* 194 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -module.exports = extractDescription +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueueScheduler", function() { return QueueScheduler; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(195); +/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ -// Extracts description from contents of a readme file in markdown format -function extractDescription (d) { - if (!d) return; - if (d === "ERROR: No README data found!") return; - // the first block of text before the first heading - // that isn't the first line heading - d = d.trim().split('\n') - for (var s = 0; d[s] && d[s].trim().match(/^(#|$)/); s ++); - var l = d.length - for (var e = s + 1; e < l && d[e].trim(); e ++); - return d.slice(s, e).join(' ').trim() -} +var QueueScheduler = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](QueueScheduler, _super); + function QueueScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + return QueueScheduler; +}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"])); -/***/ }), -/* 209 */ -/***/ (function(module) { +//# sourceMappingURL=QueueScheduler.js.map -module.exports = {"topLevel":{"dependancies":"dependencies","dependecies":"dependencies","depdenencies":"dependencies","devEependencies":"devDependencies","depends":"dependencies","dev-dependencies":"devDependencies","devDependences":"devDependencies","devDepenencies":"devDependencies","devdependencies":"devDependencies","repostitory":"repository","repo":"repository","prefereGlobal":"preferGlobal","hompage":"homepage","hampage":"homepage","autohr":"author","autor":"author","contributers":"contributors","publicationConfig":"publishConfig","script":"scripts"},"bugs":{"web":"url","name":"url"},"script":{"server":"start","tests":"test"}}; /***/ }), -/* 210 */ -/***/ (function(module, exports, __webpack_require__) { - -var util = __webpack_require__(14) -var messages = __webpack_require__(211) +/* 195 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -module.exports = function() { - var args = Array.prototype.slice.call(arguments, 0) - var warningName = args.shift() - if (warningName == "typo") { - return makeTypoWarning.apply(null,args) - } - else { - var msgTemplate = messages[warningName] ? messages[warningName] : warningName + ": '%s'" - args.unshift(msgTemplate) - return util.format.apply(null, args) - } -} +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncScheduler", function() { return AsyncScheduler; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Scheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(196); +/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */ -function makeTypoWarning (providedName, probableName, field) { - if (field) { - providedName = field + "['" + providedName + "']" - probableName = field + "['" + probableName + "']" - } - return util.format(messages.typo, providedName, probableName) -} +var AsyncScheduler = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsyncScheduler, _super); + function AsyncScheduler(SchedulerAction, now) { + if (now === void 0) { + now = _Scheduler__WEBPACK_IMPORTED_MODULE_1__["Scheduler"].now; + } + var _this = _super.call(this, SchedulerAction, function () { + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) { + return AsyncScheduler.delegate.now(); + } + else { + return now(); + } + }) || this; + _this.actions = []; + _this.active = false; + _this.scheduled = undefined; + return _this; + } + AsyncScheduler.prototype.schedule = function (work, delay, state) { + if (delay === void 0) { + delay = 0; + } + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { + return AsyncScheduler.delegate.schedule(work, delay, state); + } + else { + return _super.prototype.schedule.call(this, work, delay, state); + } + }; + AsyncScheduler.prototype.flush = function (action) { + var actions = this.actions; + if (this.active) { + actions.push(action); + return; + } + var error; + this.active = true; + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (action = actions.shift()); + this.active = false; + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AsyncScheduler; +}(_Scheduler__WEBPACK_IMPORTED_MODULE_1__["Scheduler"])); -/***/ }), -/* 211 */ -/***/ (function(module) { +//# sourceMappingURL=AsyncScheduler.js.map -module.exports = {"repositories":"'repositories' (plural) Not supported. Please pick one as the 'repository' field","missingRepository":"No repository field.","brokenGitUrl":"Probably broken git url: %s","nonObjectScripts":"scripts must be an object","nonStringScript":"script values must be string commands","nonArrayFiles":"Invalid 'files' member","invalidFilename":"Invalid filename in 'files' list: %s","nonArrayBundleDependencies":"Invalid 'bundleDependencies' list. Must be array of package names","nonStringBundleDependency":"Invalid bundleDependencies member: %s","nonDependencyBundleDependency":"Non-dependency in bundleDependencies: %s","nonObjectDependencies":"%s field must be an object","nonStringDependency":"Invalid dependency: %s %s","deprecatedArrayDependencies":"specifying %s as array is deprecated","deprecatedModules":"modules field is deprecated","nonArrayKeywords":"keywords should be an array of strings","nonStringKeyword":"keywords should be an array of strings","conflictingName":"%s is also the name of a node core module.","nonStringDescription":"'description' field should be a string","missingDescription":"No description","missingReadme":"No README data","missingLicense":"No license field.","nonEmailUrlBugsString":"Bug string field must be url, email, or {email,url}","nonUrlBugsUrlField":"bugs.url field must be a string url. Deleted.","nonEmailBugsEmailField":"bugs.email field must be a string email. Deleted.","emptyNormalizedBugs":"Normalized value of bugs field is an empty object. Deleted.","nonUrlHomepage":"homepage field must be a string url. Deleted.","invalidLicense":"license should be a valid SPDX license expression","typo":"%s should probably be %s."}; /***/ }), -/* 212 */ -/***/ (function(module, exports, __webpack_require__) { +/* 196 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Scheduler", function() { return Scheduler; }); +var Scheduler = /*@__PURE__*/ (function () { + function Scheduler(SchedulerAction, now) { + if (now === void 0) { + now = Scheduler.now; + } + this.SchedulerAction = SchedulerAction; + this.now = now; + } + Scheduler.prototype.schedule = function (work, delay, state) { + if (delay === void 0) { + delay = 0; + } + return new this.SchedulerAction(this, work).schedule(state, delay); + }; + Scheduler.now = Date.now ? Date.now : function () { return +new Date(); }; + return Scheduler; +}()); -const path = __webpack_require__(5); -const writeJsonFile = __webpack_require__(213); -const sortKeys = __webpack_require__(125); - -const opts = {detectIndent: true}; - -const dependencyKeys = new Set([ - 'dependencies', - 'devDependencies', - 'optionalDependencies', - 'peerDependencies' -]); - -function normalize(pkg) { - const ret = {}; - - for (const key of Object.keys(pkg)) { - if (!dependencyKeys.has(key)) { - ret[key] = pkg[key]; - } else if (Object.keys(pkg[key]).length !== 0) { - ret[key] = sortKeys(pkg[key]); - } - } - - return ret; -} - -module.exports = (fp, data) => { - if (typeof fp !== 'string') { - data = fp; - fp = '.'; - } - - fp = path.basename(fp) === 'package.json' ? fp : path.join(fp, 'package.json'); - - data = normalize(data); - - return writeJsonFile(fp, data, opts); -}; - -module.exports.sync = (fp, data) => { - if (typeof fp !== 'string') { - data = fp; - fp = '.'; - } - - fp = path.basename(fp) === 'package.json' ? fp : path.join(fp, 'package.json'); - - data = normalize(data); - - writeJsonFile.sync(fp, data, opts); -}; +//# sourceMappingURL=Scheduler.js.map /***/ }), -/* 213 */ -/***/ (function(module, exports, __webpack_require__) { +/* 197 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "observeOn", function() { return observeOn; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObserveOnOperator", function() { return ObserveOnOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObserveOnSubscriber", function() { return ObserveOnSubscriber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObserveOnMessage", function() { return ObserveOnMessage; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(198); +/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */ -const path = __webpack_require__(5); -const fs = __webpack_require__(61); -const writeFileAtomic = __webpack_require__(214); -const sortKeys = __webpack_require__(125); -const makeDir = __webpack_require__(126); -const pify = __webpack_require__(219); -const detectIndent = __webpack_require__(220); - -const init = (fn, fp, data, opts) => { - if (!fp) { - throw new TypeError('Expected a filepath'); - } - - if (data === undefined) { - throw new TypeError('Expected data to stringify'); - } - opts = Object.assign({ - indent: '\t', - sortKeys: false - }, opts); - if (opts.sortKeys) { - data = sortKeys(data, { - deep: true, - compare: typeof opts.sortKeys === 'function' && opts.sortKeys - }); - } +function observeOn(scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + return function observeOnOperatorFunction(source) { + return source.lift(new ObserveOnOperator(scheduler, delay)); + }; +} +var ObserveOnOperator = /*@__PURE__*/ (function () { + function ObserveOnOperator(scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + this.scheduler = scheduler; + this.delay = delay; + } + ObserveOnOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay)); + }; + return ObserveOnOperator; +}()); - return fn(fp, data, opts); -}; +var ObserveOnSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ObserveOnSubscriber, _super); + function ObserveOnSubscriber(destination, scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + var _this = _super.call(this, destination) || this; + _this.scheduler = scheduler; + _this.delay = delay; + return _this; + } + ObserveOnSubscriber.dispatch = function (arg) { + var notification = arg.notification, destination = arg.destination; + notification.observe(destination); + this.unsubscribe(); + }; + ObserveOnSubscriber.prototype.scheduleMessage = function (notification) { + this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); + }; + ObserveOnSubscriber.prototype._next = function (value) { + this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createNext(value)); + }; + ObserveOnSubscriber.prototype._error = function (err) { + this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createError(err)); + }; + ObserveOnSubscriber.prototype._complete = function () { + this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createComplete()); + }; + return ObserveOnSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -const readFile = fp => pify(fs.readFile)(fp, 'utf8').catch(() => {}); +var ObserveOnMessage = /*@__PURE__*/ (function () { + function ObserveOnMessage(notification, destination) { + this.notification = notification; + this.destination = destination; + } + return ObserveOnMessage; +}()); -const main = (fp, data, opts) => { - return (opts.detectIndent ? readFile(fp) : Promise.resolve()) - .then(str => { - const indent = str ? detectIndent(str).indent : opts.indent; - const json = JSON.stringify(data, opts.replacer, indent); +//# sourceMappingURL=observeOn.js.map - return pify(writeFileAtomic)(fp, `${json}\n`, {mode: opts.mode}); - }); -}; -const mainSync = (fp, data, opts) => { - let indent = opts.indent; +/***/ }), +/* 198 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (opts.detectIndent) { - try { - const file = fs.readFileSync(fp, 'utf8'); - indent = detectIndent(file).indent; - } catch (err) { - if (err.code !== 'ENOENT') { - throw err; - } - } - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Notification", function() { return Notification; }); +/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(199); +/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(200); +/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(205); +/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */ - const json = JSON.stringify(data, opts.replacer, indent); - return writeFileAtomic.sync(fp, `${json}\n`, {mode: opts.mode}); -}; -module.exports = (fp, data, opts) => { - return makeDir(path.dirname(fp), {fs}) - .then(() => init(main, fp, data, opts)); -}; +var Notification = /*@__PURE__*/ (function () { + function Notification(kind, value, error) { + this.kind = kind; + this.value = value; + this.error = error; + this.hasValue = kind === 'N'; + } + Notification.prototype.observe = function (observer) { + switch (this.kind) { + case 'N': + return observer.next && observer.next(this.value); + case 'E': + return observer.error && observer.error(this.error); + case 'C': + return observer.complete && observer.complete(); + } + }; + Notification.prototype.do = function (next, error, complete) { + var kind = this.kind; + switch (kind) { + case 'N': + return next && next(this.value); + case 'E': + return error && error(this.error); + case 'C': + return complete && complete(); + } + }; + Notification.prototype.accept = function (nextOrObserver, error, complete) { + if (nextOrObserver && typeof nextOrObserver.next === 'function') { + return this.observe(nextOrObserver); + } + else { + return this.do(nextOrObserver, error, complete); + } + }; + Notification.prototype.toObservable = function () { + var kind = this.kind; + switch (kind) { + case 'N': + return Object(_observable_of__WEBPACK_IMPORTED_MODULE_1__["of"])(this.value); + case 'E': + return Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_2__["throwError"])(this.error); + case 'C': + return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_0__["empty"])(); + } + throw new Error('unexpected notification kind value'); + }; + Notification.createNext = function (value) { + if (typeof value !== 'undefined') { + return new Notification('N', value); + } + return Notification.undefinedValueNotification; + }; + Notification.createError = function (err) { + return new Notification('E', undefined, err); + }; + Notification.createComplete = function () { + return Notification.completeNotification; + }; + Notification.completeNotification = new Notification('C'); + Notification.undefinedValueNotification = new Notification('N', undefined); + return Notification; +}()); -module.exports.sync = (fp, data, opts) => { - makeDir.sync(path.dirname(fp), {fs}); - init(mainSync, fp, data, opts); -}; +//# sourceMappingURL=Notification.js.map /***/ }), -/* 214 */ -/***/ (function(module, exports, __webpack_require__) { +/* 199 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EMPTY", function() { return EMPTY; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return empty; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "emptyScheduled", function() { return emptyScheduled; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ -module.exports = writeFile -module.exports.sync = writeFileSync -module.exports._getTmpname = getTmpname // for testing -module.exports._cleanupOnExit = cleanupOnExit - -var fs = __webpack_require__(61) -var MurmurHash3 = __webpack_require__(215) -var onExit = __webpack_require__(103) -var path = __webpack_require__(5) -var activeFiles = {} - -var invocations = 0 -function getTmpname (filename) { - return filename + '.' + - MurmurHash3(__filename) - .hash(String(process.pid)) - .hash(String(++invocations)) - .result() +var EMPTY = /*@__PURE__*/ new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return subscriber.complete(); }); +function empty(scheduler) { + return scheduler ? emptyScheduled(scheduler) : EMPTY; } - -function cleanupOnExit (tmpfile) { - return function () { - try { - fs.unlinkSync(typeof tmpfile === 'function' ? tmpfile() : tmpfile) - } catch (_) {} - } +function emptyScheduled(scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); }); } +//# sourceMappingURL=empty.js.map -function writeFile (filename, data, options, callback) { - if (options instanceof Function) { - callback = options - options = null - } - if (!options) options = {} - var Promise = options.Promise || global.Promise - var truename - var fd - var tmpfile - var removeOnExit = cleanupOnExit(() => tmpfile) - var absoluteName = path.resolve(filename) +/***/ }), +/* 200 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - new Promise(function serializeSameFile (resolve) { - // make a queue if it doesn't already exist - if (!activeFiles[absoluteName]) activeFiles[absoluteName] = [] +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "of", function() { return of; }); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(201); +/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(202); +/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(199); +/* harmony import */ var _scalar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(204); +/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_empty,_scalar PURE_IMPORTS_END */ - activeFiles[absoluteName].push(resolve) // add this job to the queue - if (activeFiles[absoluteName].length === 1) resolve() // kick off the first one - }).then(function getRealPath () { - return new Promise(function (resolve) { - fs.realpath(filename, function (_, realname) { - truename = realname || filename - tmpfile = getTmpname(truename) - resolve() - }) - }) - }).then(function stat () { - return new Promise(function stat (resolve) { - if (options.mode && options.chown) resolve() - else { - // Either mode or chown is not explicitly set - // Default behavior is to copy it from original file - fs.stat(truename, function (err, stats) { - if (err || !stats) resolve() - else { - options = Object.assign({}, options) - if (!options.mode) { - options.mode = stats.mode - } - if (!options.chown && process.getuid) { - options.chown = { uid: stats.uid, gid: stats.gid } - } - resolve() - } - }) - } - }) - }).then(function thenWriteFile () { - return new Promise(function (resolve, reject) { - fs.open(tmpfile, 'w', options.mode, function (err, _fd) { - fd = _fd - if (err) reject(err) - else resolve() - }) - }) - }).then(function write () { - return new Promise(function (resolve, reject) { - if (Buffer.isBuffer(data)) { - fs.write(fd, data, 0, data.length, 0, function (err) { - if (err) reject(err) - else resolve() - }) - } else if (data != null) { - fs.write(fd, String(data), 0, String(options.encoding || 'utf8'), function (err) { - if (err) reject(err) - else resolve() - }) - } else resolve() - }) - }).then(function syncAndClose () { - if (options.fsync !== false) { - return new Promise(function (resolve, reject) { - fs.fsync(fd, function (err) { - if (err) reject(err) - else fs.close(fd, resolve) - }) - }) + + +function of() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; } - }).then(function chown () { - if (options.chown) { - return new Promise(function (resolve, reject) { - fs.chown(tmpfile, options.chown.uid, options.chown.gid, function (err) { - if (err) reject(err) - else resolve() - }) - }) + var scheduler = args[args.length - 1]; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_0__["isScheduler"])(scheduler)) { + args.pop(); } - }).then(function chmod () { - if (options.mode) { - return new Promise(function (resolve, reject) { - fs.chmod(tmpfile, options.mode, function (err) { - if (err) reject(err) - else resolve() - }) - }) + else { + scheduler = undefined; + } + switch (args.length) { + case 0: + return Object(_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])(scheduler); + case 1: + return scheduler ? Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__["fromArray"])(args, scheduler) : Object(_scalar__WEBPACK_IMPORTED_MODULE_3__["scalar"])(args[0]); + default: + return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__["fromArray"])(args, scheduler); } - }).then(function rename () { - return new Promise(function (resolve, reject) { - fs.rename(tmpfile, truename, function (err) { - if (err) reject(err) - else resolve() - }) - }) - }).then(function success () { - removeOnExit() - callback() - }).catch(function fail (err) { - removeOnExit() - fs.unlink(tmpfile, function () { - callback(err) - }) - }).then(function checkQueue () { - activeFiles[absoluteName].shift() // remove the element added by serializeSameFile - if (activeFiles[absoluteName].length > 0) { - activeFiles[absoluteName][0]() // start next job if one is pending - } else delete activeFiles[absoluteName] - }) } +//# sourceMappingURL=of.js.map -function writeFileSync (filename, data, options) { - if (!options) options = {} - try { - filename = fs.realpathSync(filename) - } catch (ex) { - // it's ok, it'll happen on a not yet existing file - } - var tmpfile = getTmpname(filename) - try { - if (!options.mode || !options.chown) { - // Either mode or chown is not explicitly set - // Default behavior is to copy it from original file - try { - var stats = fs.statSync(filename) - options = Object.assign({}, options) - if (!options.mode) { - options.mode = stats.mode - } - if (!options.chown && process.getuid) { - options.chown = { uid: stats.uid, gid: stats.gid } - } - } catch (ex) { - // ignore stat errors - } - } +/***/ }), +/* 201 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - var removeOnExit = onExit(cleanupOnExit(tmpfile)) - var fd = fs.openSync(tmpfile, 'w', options.mode) - if (Buffer.isBuffer(data)) { - fs.writeSync(fd, data, 0, data.length, 0) - } else if (data != null) { - fs.writeSync(fd, String(data), 0, String(options.encoding || 'utf8')) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isScheduler", function() { return isScheduler; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function isScheduler(value) { + return value && typeof value.schedule === 'function'; +} +//# sourceMappingURL=isScheduler.js.map + + +/***/ }), +/* 202 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromArray", function() { return fromArray; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _util_subscribeToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(203); +/** PURE_IMPORTS_START _Observable,_Subscription,_util_subscribeToArray PURE_IMPORTS_END */ + + + +function fromArray(input, scheduler) { + if (!scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeToArray__WEBPACK_IMPORTED_MODULE_2__["subscribeToArray"])(input)); } - if (options.fsync !== false) { - fs.fsyncSync(fd) + else { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + var i = 0; + sub.add(scheduler.schedule(function () { + if (i === input.length) { + subscriber.complete(); + return; + } + subscriber.next(input[i++]); + if (!subscriber.closed) { + sub.add(this.schedule()); + } + })); + return sub; + }); } - fs.closeSync(fd) - if (options.chown) fs.chownSync(tmpfile, options.chown.uid, options.chown.gid) - if (options.mode) fs.chmodSync(tmpfile, options.mode) - fs.renameSync(tmpfile, filename) - removeOnExit() - } catch (err) { - removeOnExit() - try { fs.unlinkSync(tmpfile) } catch (e) {} - throw err - } } +//# sourceMappingURL=fromArray.js.map /***/ }), -/* 215 */ -/***/ (function(module, exports, __webpack_require__) { - -/** - * @preserve - * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013) - * - * @author Jens Taylor - * @see http://github.com/homebrewing/brauhaus-diff - * @author Gary Court - * @see http://github.com/garycourt/murmurhash-js - * @author Austin Appleby - * @see http://sites.google.com/site/murmurhash/ - */ -(function(){ - var cache; +/* 203 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - // Call this function without `new` to use the cached object (good for - // single-threaded environments), or with `new` to create a new object. - // - // @param {string} key A UTF-16 or ASCII string - // @param {number} seed An optional positive integer - // @return {object} A MurmurHash3 object for incremental hashing - function MurmurHash3(key, seed) { - var m = this instanceof MurmurHash3 ? this : cache; - m.reset(seed) - if (typeof key === 'string' && key.length > 0) { - m.hash(key); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToArray", function() { return subscribeToArray; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var subscribeToArray = function (array) { + return function (subscriber) { + for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) { + subscriber.next(array[i]); } - - if (m !== this) { - return m; + if (!subscriber.closed) { + subscriber.complete(); } }; +}; +//# sourceMappingURL=subscribeToArray.js.map - // Incrementally add a string to this hash - // - // @param {string} key A UTF-16 or ASCII string - // @return {object} this - MurmurHash3.prototype.hash = function(key) { - var h1, k1, i, top, len; - len = key.length; - this.len += len; +/***/ }), +/* 204 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - k1 = this.k1; - i = 0; - switch (this.rem) { - case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0; - case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0; - case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0; - case 3: - k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0; - k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0; - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scalar", function() { return scalar; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ - this.rem = (len + this.rem) & 3; // & 3 is same as % 4 - len -= this.rem; - if (len > 0) { - h1 = this.h1; - while (1) { - k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; - k1 = (k1 << 15) | (k1 >>> 17); - k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; +function scalar(value) { + var result = new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + subscriber.next(value); + subscriber.complete(); + }); + result._isScalar = true; + result.value = value; + return result; +} +//# sourceMappingURL=scalar.js.map - h1 ^= k1; - h1 = (h1 << 13) | (h1 >>> 19); - h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff; - if (i >= len) { - break; - } +/***/ }), +/* 205 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - k1 = ((key.charCodeAt(i++) & 0xffff)) ^ - ((key.charCodeAt(i++) & 0xffff) << 8) ^ - ((key.charCodeAt(i++) & 0xffff) << 16); - top = key.charCodeAt(i++); - k1 ^= ((top & 0xff) << 24) ^ - ((top & 0xff00) >> 8); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throwError", function() { return throwError; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ - k1 = 0; - switch (this.rem) { - case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16; - case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8; - case 1: k1 ^= (key.charCodeAt(i) & 0xffff); - } +function throwError(error, scheduler) { + if (!scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return subscriber.error(error); }); + } + else { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); }); + } +} +function dispatch(_a) { + var error = _a.error, subscriber = _a.subscriber; + subscriber.error(error); +} +//# sourceMappingURL=throwError.js.map - this.h1 = h1; - } - this.k1 = k1; - return this; - }; +/***/ }), +/* 206 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - // Get the result of this hash - // - // @return {number} The 32-bit hash - MurmurHash3.prototype.result = function() { - var k1, h1; - - k1 = this.k1; - h1 = this.h1; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncSubject", function() { return AsyncSubject; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(183); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subject,_Subscription PURE_IMPORTS_END */ - if (k1 > 0) { - k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; - k1 = (k1 << 15) | (k1 >>> 17); - k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; - h1 ^= k1; + + +var AsyncSubject = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsyncSubject, _super); + function AsyncSubject() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.value = null; + _this.hasNext = false; + _this.hasCompleted = false; + return _this; + } + AsyncSubject.prototype._subscribe = function (subscriber) { + if (this.hasError) { + subscriber.error(this.thrownError); + return _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"].EMPTY; } + else if (this.hasCompleted && this.hasNext) { + subscriber.next(this.value); + subscriber.complete(); + return _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"].EMPTY; + } + return _super.prototype._subscribe.call(this, subscriber); + }; + AsyncSubject.prototype.next = function (value) { + if (!this.hasCompleted) { + this.value = value; + this.hasNext = true; + } + }; + AsyncSubject.prototype.error = function (error) { + if (!this.hasCompleted) { + _super.prototype.error.call(this, error); + } + }; + AsyncSubject.prototype.complete = function () { + this.hasCompleted = true; + if (this.hasNext) { + _super.prototype.next.call(this, this.value); + } + _super.prototype.complete.call(this); + }; + return AsyncSubject; +}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"])); - h1 ^= this.len; +//# sourceMappingURL=AsyncSubject.js.map - h1 ^= h1 >>> 16; - h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff; - h1 ^= h1 >>> 13; - h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff; - h1 ^= h1 >>> 16; - return h1 >>> 0; - }; +/***/ }), +/* 207 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - // Reset the hash object for reuse - // - // @param {number} seed An optional positive integer - MurmurHash3.prototype.reset = function(seed) { - this.h1 = typeof seed === 'number' ? seed : 0; - this.rem = this.k1 = this.len = 0; - return this; - }; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "asap", function() { return asap; }); +/* harmony import */ var _AsapAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(208); +/* harmony import */ var _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(210); +/** PURE_IMPORTS_START _AsapAction,_AsapScheduler PURE_IMPORTS_END */ - // A cached object to use. This can be safely used if you're in a single- - // threaded environment, otherwise you need to create new hashes to use. - cache = new MurmurHash3(); - if (true) { - module.exports = MurmurHash3; - } else {} -}()); +var asap = /*@__PURE__*/ new _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__["AsapScheduler"](_AsapAction__WEBPACK_IMPORTED_MODULE_0__["AsapAction"]); +//# sourceMappingURL=asap.js.map /***/ }), -/* 216 */ -/***/ (function(module, exports) { +/* 208 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -// This is not the set of all possible signals. -// -// It IS, however, the set of all signals that trigger -// an exit on either Linux or BSD systems. Linux is a -// superset of the signal names supported on BSD, and -// the unknown signals just fail to register, so we can -// catch that easily enough. -// -// Don't bother with SIGKILL. It's uncatchable, which -// means that we can't fire any callbacks anyway. -// -// If a user does happen to register a handler on a non- -// fatal signal like SIGWINCH or something, and then -// exit, it'll end up firing `process.emit('exit')`, so -// the handler will be fired anyway. -// -// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised -// artificially, inherently leave the process in a -// state from which it is not safe to try and enter JS -// listeners. -module.exports = [ - 'SIGABRT', - 'SIGALRM', - 'SIGHUP', - 'SIGINT', - 'SIGTERM' -] +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsapAction", function() { return AsapAction; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _util_Immediate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(209); +/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(192); +/** PURE_IMPORTS_START tslib,_util_Immediate,_AsyncAction PURE_IMPORTS_END */ -if (process.platform !== 'win32') { - module.exports.push( - 'SIGVTALRM', - 'SIGXCPU', - 'SIGXFSZ', - 'SIGUSR2', - 'SIGTRAP', - 'SIGSYS', - 'SIGQUIT', - 'SIGIOT' - // should detect profiler and enable/disable accordingly. - // see #21 - // 'SIGPROF' - ) -} -if (process.platform === 'linux') { - module.exports.push( - 'SIGIO', - 'SIGPOLL', - 'SIGPWR', - 'SIGSTKFLT', - 'SIGUNUSED' - ) -} + +var AsapAction = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsapAction, _super); + function AsapAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler.scheduled || (scheduler.scheduled = _util_Immediate__WEBPACK_IMPORTED_MODULE_1__["Immediate"].setImmediate(scheduler.flush.bind(scheduler, null))); + }; + AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + if (scheduler.actions.length === 0) { + _util_Immediate__WEBPACK_IMPORTED_MODULE_1__["Immediate"].clearImmediate(id); + scheduler.scheduled = undefined; + } + return undefined; + }; + return AsapAction; +}(_AsyncAction__WEBPACK_IMPORTED_MODULE_2__["AsyncAction"])); + +//# sourceMappingURL=AsapAction.js.map /***/ }), -/* 217 */ -/***/ (function(module, exports, __webpack_require__) { +/* 209 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; - -var toString = Object.prototype.toString; - -module.exports = function (x) { - var prototype; - return toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({})); +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Immediate", function() { return Immediate; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var nextHandle = 1; +var tasksByHandle = {}; +function runIfPresent(handle) { + var cb = tasksByHandle[handle]; + if (cb) { + cb(); + } +} +var Immediate = { + setImmediate: function (cb) { + var handle = nextHandle++; + tasksByHandle[handle] = cb; + Promise.resolve().then(function () { return runIfPresent(handle); }); + return handle; + }, + clearImmediate: function (handle) { + delete tasksByHandle[handle]; + }, }; +//# sourceMappingURL=Immediate.js.map /***/ }), -/* 218 */ -/***/ (function(module, exports, __webpack_require__) { +/* 210 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsapScheduler", function() { return AsapScheduler; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(195); +/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ -const processFn = (fn, opts) => function () { - const P = opts.promiseModule; - const args = new Array(arguments.length); - - for (let i = 0; i < arguments.length; i++) { - args[i] = arguments[i]; - } - - return new P((resolve, reject) => { - if (opts.errorFirst) { - args.push(function (err, result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); - - for (let i = 1; i < arguments.length; i++) { - results[i - 1] = arguments[i]; - } - - if (err) { - results.unshift(err); - reject(results); - } else { - resolve(results); - } - } else if (err) { - reject(err); - } else { - resolve(result); - } - }); - } else { - args.push(function (result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); - - for (let i = 0; i < arguments.length; i++) { - results[i] = arguments[i]; - } - - resolve(results); - } else { - resolve(result); - } - }); - } - - fn.apply(this, args); - }); -}; +var AsapScheduler = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsapScheduler, _super); + function AsapScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + AsapScheduler.prototype.flush = function (action) { + this.active = true; + this.scheduled = undefined; + var actions = this.actions; + var error; + var index = -1; + var count = actions.length; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + this.active = false; + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + }; + return AsapScheduler; +}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"])); -module.exports = (obj, opts) => { - opts = Object.assign({ - exclude: [/.+(Sync|Stream)$/], - errorFirst: true, - promiseModule: Promise - }, opts); +//# sourceMappingURL=AsapScheduler.js.map - const filter = key => { - const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); - return opts.include ? opts.include.some(match) : !opts.exclude.some(match); - }; - let ret; - if (typeof obj === 'function') { - ret = function () { - if (opts.excludeMain) { - return obj.apply(this, arguments); - } +/***/ }), +/* 211 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return processFn(obj, opts).apply(this, arguments); - }; - } else { - ret = Object.create(Object.getPrototypeOf(obj)); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "async", function() { return async; }); +/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(192); +/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(195); +/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */ - for (const key in obj) { // eslint-disable-line guard-for-in - const x = obj[key]; - ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; - } - return ret; -}; +var async = /*@__PURE__*/ new _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"](_AsyncAction__WEBPACK_IMPORTED_MODULE_0__["AsyncAction"]); +//# sourceMappingURL=async.js.map /***/ }), -/* 219 */ -/***/ (function(module, exports, __webpack_require__) { +/* 212 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animationFrame", function() { return animationFrame; }); +/* harmony import */ var _AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(213); +/* harmony import */ var _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(214); +/** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */ -const processFn = (fn, opts) => function () { - const P = opts.promiseModule; - const args = new Array(arguments.length); - - for (let i = 0; i < arguments.length; i++) { - args[i] = arguments[i]; - } +var animationFrame = /*@__PURE__*/ new _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__["AnimationFrameScheduler"](_AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__["AnimationFrameAction"]); +//# sourceMappingURL=animationFrame.js.map - return new P((resolve, reject) => { - if (opts.errorFirst) { - args.push(function (err, result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); - for (let i = 1; i < arguments.length; i++) { - results[i - 1] = arguments[i]; - } +/***/ }), +/* 213 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (err) { - results.unshift(err); - reject(results); - } else { - resolve(results); - } - } else if (err) { - reject(err); - } else { - resolve(result); - } - }); - } else { - args.push(function (result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameAction", function() { return AnimationFrameAction; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(192); +/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */ - for (let i = 0; i < arguments.length; i++) { - results[i] = arguments[i]; - } - resolve(results); - } else { - resolve(result); - } - }); - } +var AnimationFrameAction = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnimationFrameAction, _super); + function AnimationFrameAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); })); + }; + AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + if (scheduler.actions.length === 0) { + cancelAnimationFrame(id); + scheduler.scheduled = undefined; + } + return undefined; + }; + return AnimationFrameAction; +}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__["AsyncAction"])); - fn.apply(this, args); - }); -}; +//# sourceMappingURL=AnimationFrameAction.js.map -module.exports = (obj, opts) => { - opts = Object.assign({ - exclude: [/.+(Sync|Stream)$/], - errorFirst: true, - promiseModule: Promise - }, opts); - const filter = key => { - const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); - return opts.include ? opts.include.some(match) : !opts.exclude.some(match); - }; +/***/ }), +/* 214 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - let ret; - if (typeof obj === 'function') { - ret = function () { - if (opts.excludeMain) { - return obj.apply(this, arguments); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameScheduler", function() { return AnimationFrameScheduler; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(195); +/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ - return processFn(obj, opts).apply(this, arguments); - }; - } else { - ret = Object.create(Object.getPrototypeOf(obj)); - } - for (const key in obj) { // eslint-disable-line guard-for-in - const x = obj[key]; - ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; - } +var AnimationFrameScheduler = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnimationFrameScheduler, _super); + function AnimationFrameScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + AnimationFrameScheduler.prototype.flush = function (action) { + this.active = true; + this.scheduled = undefined; + var actions = this.actions; + var error; + var index = -1; + var count = actions.length; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + this.active = false; + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + }; + return AnimationFrameScheduler; +}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"])); - return ret; -}; +//# sourceMappingURL=AnimationFrameScheduler.js.map /***/ }), -/* 220 */ -/***/ (function(module, exports, __webpack_require__) { +/* 215 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VirtualTimeScheduler", function() { return VirtualTimeScheduler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VirtualAction", function() { return VirtualAction; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(192); +/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(195); +/** PURE_IMPORTS_START tslib,_AsyncAction,_AsyncScheduler PURE_IMPORTS_END */ -// detect either spaces or tabs but not both to properly handle tabs -// for indentation and spaces for alignment -const INDENT_RE = /^(?:( )+|\t+)/; -function getMostUsed(indents) { - let result = 0; - let maxUsed = 0; - let maxWeight = 0; +var VirtualTimeScheduler = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](VirtualTimeScheduler, _super); + function VirtualTimeScheduler(SchedulerAction, maxFrames) { + if (SchedulerAction === void 0) { + SchedulerAction = VirtualAction; + } + if (maxFrames === void 0) { + maxFrames = Number.POSITIVE_INFINITY; + } + var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this; + _this.maxFrames = maxFrames; + _this.frame = 0; + _this.index = -1; + return _this; + } + VirtualTimeScheduler.prototype.flush = function () { + var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; + var error, action; + while ((action = actions.shift()) && (this.frame = action.delay) <= maxFrames) { + if (error = action.execute(action.state, action.delay)) { + break; + } + } + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + VirtualTimeScheduler.frameTimeFactor = 10; + return VirtualTimeScheduler; +}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__["AsyncScheduler"])); - for (const entry of indents) { - // TODO: use destructuring when targeting Node.js 6 - const key = entry[0]; - const val = entry[1]; +var VirtualAction = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](VirtualAction, _super); + function VirtualAction(scheduler, work, index) { + if (index === void 0) { + index = scheduler.index += 1; + } + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.index = index; + _this.active = true; + _this.index = scheduler.index = index; + return _this; + } + VirtualAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { + delay = 0; + } + if (!this.id) { + return _super.prototype.schedule.call(this, state, delay); + } + this.active = false; + var action = new VirtualAction(this.scheduler, this.work); + this.add(action); + return action.schedule(state, delay); + }; + VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + this.delay = scheduler.frame + delay; + var actions = scheduler.actions; + actions.push(this); + actions.sort(VirtualAction.sortActions); + return true; + }; + VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + return undefined; + }; + VirtualAction.prototype._execute = function (state, delay) { + if (this.active === true) { + return _super.prototype._execute.call(this, state, delay); + } + }; + VirtualAction.sortActions = function (a, b) { + if (a.delay === b.delay) { + if (a.index === b.index) { + return 0; + } + else if (a.index > b.index) { + return 1; + } + else { + return -1; + } + } + else if (a.delay > b.delay) { + return 1; + } + else { + return -1; + } + }; + return VirtualAction; +}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__["AsyncAction"])); - const u = val[0]; - const w = val[1]; +//# sourceMappingURL=VirtualTimeScheduler.js.map - if (u > maxUsed || (u === maxUsed && w > maxWeight)) { - maxUsed = u; - maxWeight = w; - result = Number(key); - } - } - return result; +/***/ }), +/* 216 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function identity(x) { + return x; } +//# sourceMappingURL=identity.js.map -module.exports = str => { - if (typeof str !== 'string') { - throw new TypeError('Expected a string'); - } - // used to see if tabs or spaces are the most used - let tabs = 0; - let spaces = 0; +/***/ }), +/* 217 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - // remember the size of previous line's indentation - let prev = 0; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObservable", function() { return isObservable; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ - // remember how many indents/unindents as occurred for a given size - // and how much lines follow a given indentation - // - // indents = { - // 3: [1, 0], - // 4: [1, 5], - // 5: [1, 0], - // 12: [1, 0], - // } - const indents = new Map(); +function isObservable(obj) { + return !!obj && (obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"] || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function')); +} +//# sourceMappingURL=isObservable.js.map - // pointer to the array of last used indent - let current; - // whether the last action was an indent (opposed to an unindent) - let isIndent; +/***/ }), +/* 218 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - for (const line of str.split(/\n/g)) { - if (!line) { - // ignore empty lines - continue; - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ArgumentOutOfRangeError", function() { return ArgumentOutOfRangeError; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/** PURE_IMPORTS_START tslib PURE_IMPORTS_END */ - let indent; - const matches = line.match(INDENT_RE); +var ArgumentOutOfRangeError = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ArgumentOutOfRangeError, _super); + function ArgumentOutOfRangeError() { + var _this = _super.call(this, 'argument out of range') || this; + _this.name = 'ArgumentOutOfRangeError'; + Object.setPrototypeOf(_this, ArgumentOutOfRangeError.prototype); + return _this; + } + return ArgumentOutOfRangeError; +}(Error)); - if (matches) { - indent = matches[0].length; +//# sourceMappingURL=ArgumentOutOfRangeError.js.map - if (matches[1]) { - spaces++; - } else { - tabs++; - } - } else { - indent = 0; - } - const diff = indent - prev; - prev = indent; +/***/ }), +/* 219 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmptyError", function() { return EmptyError; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/** PURE_IMPORTS_START tslib PURE_IMPORTS_END */ - if (diff) { - // an indent or unindent has been detected +var EmptyError = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](EmptyError, _super); + function EmptyError() { + var _this = _super.call(this, 'no elements in sequence') || this; + _this.name = 'EmptyError'; + Object.setPrototypeOf(_this, EmptyError.prototype); + return _this; + } + return EmptyError; +}(Error)); - isIndent = diff > 0; +//# sourceMappingURL=EmptyError.js.map - current = indents.get(isIndent ? diff : -diff); - if (current) { - current[0]++; - } else { - current = [1, 0]; - indents.set(diff, current); - } - } else if (current) { - // if the last action was an indent, increment the weight - current[1] += Number(isIndent); - } - } +/***/ }), +/* 220 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - const amount = getMostUsed(indents); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TimeoutError", function() { return TimeoutError; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/** PURE_IMPORTS_START tslib PURE_IMPORTS_END */ - let type; - let indent; - if (!amount) { - type = null; - indent = ''; - } else if (spaces >= tabs) { - type = 'space'; - indent = ' '.repeat(amount); - } else { - type = 'tab'; - indent = '\t'.repeat(amount); - } +var TimeoutError = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TimeoutError, _super); + function TimeoutError() { + var _this = _super.call(this, 'Timeout has occurred') || this; + _this.name = 'TimeoutError'; + Object.setPrototypeOf(_this, TimeoutError.prototype); + return _this; + } + return TimeoutError; +}(Error)); - return { - amount, - type, - indent - }; -}; +//# sourceMappingURL=TimeoutError.js.map /***/ }), /* 221 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindCallback", function() { return bindCallback; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(206); +/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(222); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(173); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(201); +/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_isArray,_util_isScheduler PURE_IMPORTS_END */ -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.runScriptInPackage = exports.installInDir = undefined; - -/** - * Install all dependencies in the given directory - */ -let installInDir = exports.installInDir = (() => { - var _ref = _asyncToGenerator(function* (directory, extraArgs = []) { - const options = ['install', '--non-interactive', ...extraArgs]; - // We pass the mutex flag to ensure only one instance of yarn runs at any - // given time (e.g. to avoid conflicts). - yield (0, _child_process.spawn)('yarn', options, { - cwd: directory - }); - }); - return function installInDir(_x) { - return _ref.apply(this, arguments); - }; -})(); -/** - * Run script in the given directory - */ -let runScriptInPackage = exports.runScriptInPackage = (() => { - var _ref2 = _asyncToGenerator(function* (script, args, pkg) { - const execOpts = { - cwd: pkg.path +function bindCallback(callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_4__["isScheduler"])(resultSelector)) { + scheduler = resultSelector; + } + else { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_3__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + }; + } + } + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var context = this; + var subject; + var params = { + context: context, + subject: subject, + callbackFunc: callbackFunc, + scheduler: scheduler, }; - yield (0, _child_process.spawn)('yarn', ['run', script, ...args], execOpts); - }); - - return function runScriptInPackage(_x2, _x3, _x4) { - return _ref2.apply(this, arguments); + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + if (!scheduler) { + if (!subject) { + subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"](); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + subject.error(err); + } + } + return subject.subscribe(subscriber); + } + else { + var state = { + args: args, subscriber: subscriber, params: params, + }; + return scheduler.schedule(dispatch, 0, state); + } + }); }; -})(); -/** - * Run script in the given directory - */ - +} +function dispatch(state) { + var _this = this; + var self = this; + var args = state.args, subscriber = state.subscriber, params = state.params; + var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler; + var subject = params.subject; + if (!subject) { + subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"](); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject })); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + subject.error(err); + } + } + this.add(subject.subscribe(subscriber)); +} +function dispatchNext(state) { + var value = state.value, subject = state.subject; + subject.next(value); + subject.complete(); +} +function dispatchError(state) { + var err = state.err, subject = state.subject; + subject.error(err); +} +//# sourceMappingURL=bindCallback.js.map -exports.runScriptInPackageStreaming = runScriptInPackageStreaming; -var _child_process = __webpack_require__(222); +/***/ }), +/* 222 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MapOperator", function() { return MapOperator; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function runScriptInPackageStreaming(script, args, pkg) { - const execOpts = { - cwd: pkg.path +function map(project, thisArg) { + return function mapOperation(source) { + if (typeof project !== 'function') { + throw new TypeError('argument is not a function. Are you looking for `mapTo()`?'); + } + return source.lift(new MapOperator(project, thisArg)); }; - return (0, _child_process.spawnStreaming)('yarn', ['run', script, ...args], execOpts, { - prefix: pkg.name - }); } +var MapOperator = /*@__PURE__*/ (function () { + function MapOperator(project, thisArg) { + this.project = project; + this.thisArg = thisArg; + } + MapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg)); + }; + return MapOperator; +}()); + +var MapSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MapSubscriber, _super); + function MapSubscriber(destination, project, thisArg) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.count = 0; + _this.thisArg = thisArg || _this; + return _this; + } + MapSubscriber.prototype._next = function (value) { + var result; + try { + result = this.project.call(this.thisArg, value, this.count++); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return MapSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=map.js.map + /***/ }), -/* 222 */ -/***/ (function(module, exports, __webpack_require__) { +/* 223 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindNodeCallback", function() { return bindNodeCallback; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(206); +/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(222); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(201); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(173); +/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_isScheduler,_util_isArray PURE_IMPORTS_END */ -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -exports.spawn = spawn; -exports.spawnStreaming = spawnStreaming; -var _chalk = __webpack_require__(26); +function bindNodeCallback(callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(resultSelector)) { + scheduler = resultSelector; + } + else { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_4__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + }; + } + } + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var params = { + subject: undefined, + args: args, + callbackFunc: callbackFunc, + scheduler: scheduler, + context: this, + }; + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var context = params.context; + var subject = params.subject; + if (!scheduler) { + if (!subject) { + subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"](); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var err = innerArgs.shift(); + if (err) { + subject.error(err); + return; + } + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + subject.error(err); + } + } + return subject.subscribe(subscriber); + } + else { + return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context }); + } + }); + }; +} +function dispatch(state) { + var _this = this; + var params = state.params, subscriber = state.subscriber, context = state.context; + var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler; + var subject = params.subject; + if (!subject) { + subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"](); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var err = innerArgs.shift(); + if (err) { + _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject })); + } + else { + var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject })); + } + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject })); + } + } + this.add(subject.subscribe(subscriber)); +} +function dispatchNext(arg) { + var value = arg.value, subject = arg.subject; + subject.next(value); + subject.complete(); +} +function dispatchError(arg) { + var err = arg.err, subject = arg.subject; + subject.error(err); +} +//# sourceMappingURL=bindNodeCallback.js.map -var _chalk2 = _interopRequireDefault(_chalk); -var _execa = __webpack_require__(223); +/***/ }), +/* 224 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var _execa2 = _interopRequireDefault(_execa); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return combineLatest; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CombineLatestOperator", function() { return CombineLatestOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CombineLatestSubscriber", function() { return CombineLatestSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(201); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(173); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(226); +/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(202); +/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */ -var _logSymbols = __webpack_require__(128); -var _logSymbols2 = _interopRequireDefault(_logSymbols); -var _strongLogTransformer = __webpack_require__(250); -var _strongLogTransformer2 = _interopRequireDefault(_strongLogTransformer); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function generateColors() { - const colorWheel = [_chalk2.default.cyan, _chalk2.default.magenta, _chalk2.default.blue, _chalk2.default.yellow, _chalk2.default.green]; - const count = colorWheel.length; - let children = 0; - return () => colorWheel[children++ % count]; -} -function spawn(command, args, opts) { - return (0, _execa2.default)(command, args, _extends({}, opts, { - stdio: 'inherit' - })); -} -const nextColor = generateColors(); -function spawnStreaming(command, args, opts, { prefix }) { - const spawned = (0, _execa2.default)(command, args, _extends({}, opts, { - stdio: ['ignore', 'pipe', 'pipe'] - })); - const color = nextColor(); - const prefixedStdout = (0, _strongLogTransformer2.default)({ tag: `${color.bold(prefix)}:` }); - const prefixedStderr = (0, _strongLogTransformer2.default)({ - mergeMultiline: true, - tag: `${_logSymbols2.default.error} ${color.bold(prefix)}:` - }); - spawned.stdout.pipe(prefixedStdout).pipe(process.stdout); - spawned.stderr.pipe(prefixedStderr).pipe(process.stderr); - return spawned; +var NONE = {}; +function combineLatest() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var resultSelector = null; + var scheduler = null; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__["isScheduler"])(observables[observables.length - 1])) { + scheduler = observables.pop(); + } + if (typeof observables[observables.length - 1] === 'function') { + resultSelector = observables.pop(); + } + if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(observables[0])) { + observables = observables[0]; + } + return Object(_fromArray__WEBPACK_IMPORTED_MODULE_5__["fromArray"])(observables, scheduler).lift(new CombineLatestOperator(resultSelector)); } +var CombineLatestOperator = /*@__PURE__*/ (function () { + function CombineLatestOperator(resultSelector) { + this.resultSelector = resultSelector; + } + CombineLatestOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector)); + }; + return CombineLatestOperator; +}()); + +var CombineLatestSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CombineLatestSubscriber, _super); + function CombineLatestSubscriber(destination, resultSelector) { + var _this = _super.call(this, destination) || this; + _this.resultSelector = resultSelector; + _this.active = 0; + _this.values = []; + _this.observables = []; + return _this; + } + CombineLatestSubscriber.prototype._next = function (observable) { + this.values.push(NONE); + this.observables.push(observable); + }; + CombineLatestSubscriber.prototype._complete = function () { + var observables = this.observables; + var len = observables.length; + if (len === 0) { + this.destination.complete(); + } + else { + this.active = len; + this.toRespond = len; + for (var i = 0; i < len; i++) { + var observable = observables[i]; + this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, observable, observable, i)); + } + } + }; + CombineLatestSubscriber.prototype.notifyComplete = function (unused) { + if ((this.active -= 1) === 0) { + this.destination.complete(); + } + }; + CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + var values = this.values; + var oldVal = values[outerIndex]; + var toRespond = !this.toRespond + ? 0 + : oldVal === NONE ? --this.toRespond : this.toRespond; + values[outerIndex] = innerValue; + if (toRespond === 0) { + if (this.resultSelector) { + this._tryResultSelector(values); + } + else { + this.destination.next(values.slice()); + } + } + }; + CombineLatestSubscriber.prototype._tryResultSelector = function (values) { + var result; + try { + result = this.resultSelector.apply(this, values); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return CombineLatestSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); + +//# sourceMappingURL=combineLatest.js.map + + +/***/ }), +/* 225 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OuterSubscriber", function() { return OuterSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + + +var OuterSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](OuterSubscriber, _super); + function OuterSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(innerValue); + }; + OuterSubscriber.prototype.notifyError = function (error, innerSub) { + this.destination.error(error); + }; + OuterSubscriber.prototype.notifyComplete = function (innerSub) { + this.destination.complete(); + }; + return OuterSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); + +//# sourceMappingURL=OuterSubscriber.js.map + /***/ }), -/* 223 */ -/***/ (function(module, exports, __webpack_require__) { +/* 226 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToResult", function() { return subscribeToResult; }); +/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(227); +/* harmony import */ var _subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(228); +/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo PURE_IMPORTS_END */ -const path = __webpack_require__(5); -const childProcess = __webpack_require__(127); -const crossSpawn = __webpack_require__(224); -const stripEof = __webpack_require__(239); -const npmRunPath = __webpack_require__(240); -const isStream = __webpack_require__(242); -const _getStream = __webpack_require__(243); -const pFinally = __webpack_require__(247); -const onExit = __webpack_require__(103); -const errname = __webpack_require__(248); -const stdio = __webpack_require__(249); -const TEN_MEGABYTES = 1000 * 1000 * 10; +function subscribeToResult(outerSubscriber, result, outerValue, outerIndex) { + var destination = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__["InnerSubscriber"](outerSubscriber, outerValue, outerIndex); + return Object(_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(result)(destination); +} +//# sourceMappingURL=subscribeToResult.js.map -function handleArgs(cmd, args, opts) { - let parsed; - opts = Object.assign({ - extendEnv: true, - env: {} - }, opts); +/***/ }), +/* 227 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (opts.extendEnv) { - opts.env = Object.assign({}, process.env, opts.env); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InnerSubscriber", function() { return InnerSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - if (opts.__winShell === true) { - delete opts.__winShell; - parsed = { - command: cmd, - args, - options: opts, - file: cmd, - original: { - cmd, - args - } - }; - } else { - parsed = crossSpawn._parse(cmd, args, opts); - } - opts = Object.assign({ - maxBuffer: TEN_MEGABYTES, - buffer: true, - stripEof: true, - preferLocal: true, - localDir: parsed.options.cwd || process.cwd(), - encoding: 'utf8', - reject: true, - cleanup: true - }, parsed.options); +var InnerSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](InnerSubscriber, _super); + function InnerSubscriber(parent, outerValue, outerIndex) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.outerValue = outerValue; + _this.outerIndex = outerIndex; + _this.index = 0; + return _this; + } + InnerSubscriber.prototype._next = function (value) { + this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this); + }; + InnerSubscriber.prototype._error = function (error) { + this.parent.notifyError(error, this); + this.unsubscribe(); + }; + InnerSubscriber.prototype._complete = function () { + this.parent.notifyComplete(this); + this.unsubscribe(); + }; + return InnerSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); - opts.stdio = stdio(opts); +//# sourceMappingURL=InnerSubscriber.js.map - if (opts.preferLocal) { - opts.env = npmRunPath.env(Object.assign({}, opts, {cwd: opts.localDir})); - } - if (opts.detached) { - // #115 - opts.cleanup = false; - } +/***/ }), +/* 228 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (process.platform === 'win32' && path.basename(parsed.command) === 'cmd.exe') { - // #116 - parsed.args.unshift('/q'); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeTo", function() { return subscribeTo; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _subscribeToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(203); +/* harmony import */ var _subscribeToPromise__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(229); +/* harmony import */ var _subscribeToIterable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(230); +/* harmony import */ var _subscribeToObservable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(232); +/* harmony import */ var _isArrayLike__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(233); +/* harmony import */ var _isPromise__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(234); +/* harmony import */ var _isObject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(174); +/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(231); +/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(179); +/** PURE_IMPORTS_START _Observable,_subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */ - return { - cmd: parsed.command, - args: parsed.args, - opts, - parsed - }; -} -function handleInput(spawned, input) { - if (input === null || input === undefined) { - return; - } - if (isStream(input)) { - input.pipe(spawned.stdin); - } else { - spawned.stdin.end(input); - } -} -function handleOutput(opts, val) { - if (val && opts.stripEof) { - val = stripEof(val); - } - return val; -} -function handleShell(fn, cmd, opts) { - let file = '/bin/sh'; - let args = ['-c', cmd]; - opts = Object.assign({}, opts); - if (process.platform === 'win32') { - opts.__winShell = true; - file = process.env.comspec || 'cmd.exe'; - args = ['/s', '/c', `"${cmd}"`]; - opts.windowsVerbatimArguments = true; - } - if (opts.shell) { - file = opts.shell; - delete opts.shell; - } - return fn(file, args, opts); -} +var subscribeTo = function (result) { + if (result instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]) { + return function (subscriber) { + if (result._isScalar) { + subscriber.next(result.value); + subscriber.complete(); + return undefined; + } + else { + return result.subscribe(subscriber); + } + }; + } + else if (result && typeof result[_symbol_observable__WEBPACK_IMPORTED_MODULE_9__["observable"]] === 'function') { + return Object(_subscribeToObservable__WEBPACK_IMPORTED_MODULE_4__["subscribeToObservable"])(result); + } + else if (Object(_isArrayLike__WEBPACK_IMPORTED_MODULE_5__["isArrayLike"])(result)) { + return Object(_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__["subscribeToArray"])(result); + } + else if (Object(_isPromise__WEBPACK_IMPORTED_MODULE_6__["isPromise"])(result)) { + return Object(_subscribeToPromise__WEBPACK_IMPORTED_MODULE_2__["subscribeToPromise"])(result); + } + else if (result && typeof result[_symbol_iterator__WEBPACK_IMPORTED_MODULE_8__["iterator"]] === 'function') { + return Object(_subscribeToIterable__WEBPACK_IMPORTED_MODULE_3__["subscribeToIterable"])(result); + } + else { + var value = Object(_isObject__WEBPACK_IMPORTED_MODULE_7__["isObject"])(result) ? 'an invalid object' : "'" + result + "'"; + var msg = "You provided " + value + " where a stream was expected." + + ' You can provide an Observable, Promise, Array, or Iterable.'; + throw new TypeError(msg); + } +}; +//# sourceMappingURL=subscribeTo.js.map -function getStream(process, stream, {encoding, buffer, maxBuffer}) { - if (!process[stream]) { - return null; - } - let ret; +/***/ }), +/* 229 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (!buffer) { - // TODO: Use `ret = util.promisify(stream.finished)(process[stream]);` when targeting Node.js 10 - ret = new Promise((resolve, reject) => { - process[stream] - .once('end', resolve) - .once('error', reject); - }); - } else if (encoding) { - ret = _getStream(process[stream], { - encoding, - maxBuffer - }); - } else { - ret = _getStream.buffer(process[stream], {maxBuffer}); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToPromise", function() { return subscribeToPromise; }); +/* harmony import */ var _hostReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(171); +/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */ - return ret.catch(err => { - err.stream = stream; - err.message = `${stream} ${err.message}`; - throw err; - }); -} +var subscribeToPromise = function (promise) { + return function (subscriber) { + promise.then(function (value) { + if (!subscriber.closed) { + subscriber.next(value); + subscriber.complete(); + } + }, function (err) { return subscriber.error(err); }) + .then(null, _hostReportError__WEBPACK_IMPORTED_MODULE_0__["hostReportError"]); + return subscriber; + }; +}; +//# sourceMappingURL=subscribeToPromise.js.map -function makeError(result, options) { - const {stdout, stderr} = result; - let err = result.error; - const {code, signal} = result; +/***/ }), +/* 230 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - const {parsed, joinedCmd} = options; - const timedOut = options.timedOut || false; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToIterable", function() { return subscribeToIterable; }); +/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(231); +/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */ - if (!err) { - let output = ''; +var subscribeToIterable = function (iterable) { + return function (subscriber) { + var iterator = iterable[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__["iterator"]](); + do { + var item = iterator.next(); + if (item.done) { + subscriber.complete(); + break; + } + subscriber.next(item.value); + if (subscriber.closed) { + break; + } + } while (true); + if (typeof iterator.return === 'function') { + subscriber.add(function () { + if (iterator.return) { + iterator.return(); + } + }); + } + return subscriber; + }; +}; +//# sourceMappingURL=subscribeToIterable.js.map - if (Array.isArray(parsed.opts.stdio)) { - if (parsed.opts.stdio[2] !== 'inherit') { - output += output.length > 0 ? stderr : `\n${stderr}`; - } - if (parsed.opts.stdio[1] !== 'inherit') { - output += `\n${stdout}`; - } - } else if (parsed.opts.stdio !== 'inherit') { - output = `\n${stderr}${stdout}`; - } +/***/ }), +/* 231 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - err = new Error(`Command failed: ${joinedCmd}${output}`); - err.code = code < 0 ? errname(code) : code; - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSymbolIterator", function() { return getSymbolIterator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iterator", function() { return iterator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$$iterator", function() { return $$iterator; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function getSymbolIterator() { + if (typeof Symbol !== 'function' || !Symbol.iterator) { + return '@@iterator'; + } + return Symbol.iterator; +} +var iterator = /*@__PURE__*/ getSymbolIterator(); +var $$iterator = iterator; +//# sourceMappingURL=iterator.js.map - err.stdout = stdout; - err.stderr = stderr; - err.failed = true; - err.signal = signal || null; - err.cmd = joinedCmd; - err.timedOut = timedOut; - return err; -} +/***/ }), +/* 232 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function joinCmd(cmd, args) { - let joinedCmd = cmd; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToObservable", function() { return subscribeToObservable; }); +/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(179); +/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */ - if (Array.isArray(args) && args.length > 0) { - joinedCmd += ' ' + args.join(' '); - } +var subscribeToObservable = function (obj) { + return function (subscriber) { + var obs = obj[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__["observable"]](); + if (typeof obs.subscribe !== 'function') { + throw new TypeError('Provided object does not correctly implement Symbol.observable'); + } + else { + return obs.subscribe(subscriber); + } + }; +}; +//# sourceMappingURL=subscribeToObservable.js.map - return joinedCmd; -} -module.exports = (cmd, args, opts) => { - const parsed = handleArgs(cmd, args, opts); - const {encoding, buffer, maxBuffer} = parsed.opts; - const joinedCmd = joinCmd(cmd, args); +/***/ }), +/* 233 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - let spawned; - try { - spawned = childProcess.spawn(parsed.cmd, parsed.args, parsed.opts); - } catch (err) { - return Promise.reject(err); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isArrayLike", function() { return isArrayLike; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; }); +//# sourceMappingURL=isArrayLike.js.map - let removeExitHandler; - if (parsed.opts.cleanup) { - removeExitHandler = onExit(() => { - spawned.kill(); - }); - } - let timeoutId = null; - let timedOut = false; +/***/ }), +/* 234 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - const cleanup = () => { - if (timeoutId) { - clearTimeout(timeoutId); - timeoutId = null; - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isPromise", function() { return isPromise; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function isPromise(value) { + return value && typeof value.subscribe !== 'function' && typeof value.then === 'function'; +} +//# sourceMappingURL=isPromise.js.map - if (removeExitHandler) { - removeExitHandler(); - } - }; - if (parsed.opts.timeout > 0) { - timeoutId = setTimeout(() => { - timeoutId = null; - timedOut = true; - spawned.kill(parsed.opts.killSignal); - }, parsed.opts.timeout); - } +/***/ }), +/* 235 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - const processDone = new Promise(resolve => { - spawned.on('exit', (code, signal) => { - cleanup(); - resolve({code, signal}); - }); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return concat; }); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(201); +/* harmony import */ var _of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(200); +/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(236); +/* harmony import */ var _operators_concatAll__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(242); +/** PURE_IMPORTS_START _util_isScheduler,_of,_from,_operators_concatAll PURE_IMPORTS_END */ - spawned.on('error', err => { - cleanup(); - resolve({error: err}); - }); - if (spawned.stdin) { - spawned.stdin.on('error', err => { - cleanup(); - resolve({error: err}); - }); - } - }); - function destroy() { - if (spawned.stdout) { - spawned.stdout.destroy(); - } - if (spawned.stderr) { - spawned.stderr.destroy(); - } - } +function concat() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + if (observables.length === 1 || (observables.length === 2 && Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_0__["isScheduler"])(observables[1]))) { + return Object(_from__WEBPACK_IMPORTED_MODULE_2__["from"])(observables[0]); + } + return Object(_operators_concatAll__WEBPACK_IMPORTED_MODULE_3__["concatAll"])()(_of__WEBPACK_IMPORTED_MODULE_1__["of"].apply(void 0, observables)); +} +//# sourceMappingURL=concat.js.map - const handlePromise = () => pFinally(Promise.all([ - processDone, - getStream(spawned, 'stdout', {encoding, buffer, maxBuffer}), - getStream(spawned, 'stderr', {encoding, buffer, maxBuffer}) - ]).then(arr => { - const result = arr[0]; - result.stdout = arr[1]; - result.stderr = arr[2]; - if (result.error || result.code !== 0 || result.signal !== null) { - const err = makeError(result, { - joinedCmd, - parsed, - timedOut - }); +/***/ }), +/* 236 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - // TODO: missing some timeout logic for killed - // https://github.com/nodejs/node/blob/master/lib/child_process.js#L203 - // err.killed = spawned.killed || killed; - err.killed = err.killed || spawned.killed; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "from", function() { return from; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _util_isPromise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(234); +/* harmony import */ var _util_isArrayLike__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(233); +/* harmony import */ var _util_isInteropObservable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(237); +/* harmony import */ var _util_isIterable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(238); +/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(202); +/* harmony import */ var _fromPromise__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(239); +/* harmony import */ var _fromIterable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(240); +/* harmony import */ var _fromObservable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(241); +/* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(228); +/** PURE_IMPORTS_START _Observable,_util_isPromise,_util_isArrayLike,_util_isInteropObservable,_util_isIterable,_fromArray,_fromPromise,_fromIterable,_fromObservable,_util_subscribeTo PURE_IMPORTS_END */ - if (!parsed.opts.reject) { - return err; - } - throw err; - } - return { - stdout: handleOutput(parsed.opts, result.stdout), - stderr: handleOutput(parsed.opts, result.stderr), - code: 0, - failed: false, - killed: false, - signal: null, - cmd: joinedCmd, - timedOut: false - }; - }), destroy); - crossSpawn._enoent.hookChildProcess(spawned, parsed.parsed); - handleInput(spawned, parsed.opts.input); - spawned.then = (onfulfilled, onrejected) => handlePromise().then(onfulfilled, onrejected); - spawned.catch = onrejected => handlePromise().catch(onrejected); - return spawned; -}; -// TODO: set `stderr: 'ignore'` when that option is implemented -module.exports.stdout = (...args) => module.exports(...args).then(x => x.stdout); -// TODO: set `stdout: 'ignore'` when that option is implemented -module.exports.stderr = (...args) => module.exports(...args).then(x => x.stderr); -module.exports.shell = (cmd, opts) => handleShell(module.exports, cmd, opts); +function from(input, scheduler) { + if (!scheduler) { + if (input instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]) { + return input; + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_9__["subscribeTo"])(input)); + } + if (input != null) { + if (Object(_util_isInteropObservable__WEBPACK_IMPORTED_MODULE_3__["isInteropObservable"])(input)) { + return Object(_fromObservable__WEBPACK_IMPORTED_MODULE_8__["fromObservable"])(input, scheduler); + } + else if (Object(_util_isPromise__WEBPACK_IMPORTED_MODULE_1__["isPromise"])(input)) { + return Object(_fromPromise__WEBPACK_IMPORTED_MODULE_6__["fromPromise"])(input, scheduler); + } + else if (Object(_util_isArrayLike__WEBPACK_IMPORTED_MODULE_2__["isArrayLike"])(input)) { + return Object(_fromArray__WEBPACK_IMPORTED_MODULE_5__["fromArray"])(input, scheduler); + } + else if (Object(_util_isIterable__WEBPACK_IMPORTED_MODULE_4__["isIterable"])(input) || typeof input === 'string') { + return Object(_fromIterable__WEBPACK_IMPORTED_MODULE_7__["fromIterable"])(input, scheduler); + } + } + throw new TypeError((input !== null && typeof input || input) + ' is not observable'); +} +//# sourceMappingURL=from.js.map -module.exports.sync = (cmd, args, opts) => { - const parsed = handleArgs(cmd, args, opts); - const joinedCmd = joinCmd(cmd, args); - if (isStream(parsed.opts.input)) { - throw new TypeError('The `input` option cannot be a stream in sync mode'); - } +/***/ }), +/* 237 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - const result = childProcess.spawnSync(parsed.cmd, parsed.args, parsed.opts); - result.code = result.status; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInteropObservable", function() { return isInteropObservable; }); +/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(179); +/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */ - if (result.error || result.status !== 0 || result.signal !== null) { - const err = makeError(result, { - joinedCmd, - parsed - }); +function isInteropObservable(input) { + return input && typeof input[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__["observable"]] === 'function'; +} +//# sourceMappingURL=isInteropObservable.js.map - if (!parsed.opts.reject) { - return err; - } - throw err; - } +/***/ }), +/* 238 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return { - stdout: handleOutput(parsed.opts, result.stdout), - stderr: handleOutput(parsed.opts, result.stderr), - code: 0, - failed: false, - signal: null, - cmd: joinedCmd, - timedOut: false - }; -}; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIterable", function() { return isIterable; }); +/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(231); +/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */ -module.exports.shellSync = (cmd, opts) => handleShell(module.exports.sync, cmd, opts); +function isIterable(input) { + return input && typeof input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__["iterator"]] === 'function'; +} +//# sourceMappingURL=isIterable.js.map /***/ }), -/* 224 */ -/***/ (function(module, exports, __webpack_require__) { +/* 239 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromPromise", function() { return fromPromise; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _util_subscribeToPromise__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(229); +/** PURE_IMPORTS_START _Observable,_Subscription,_util_subscribeToPromise PURE_IMPORTS_END */ -const cp = __webpack_require__(127); -const parse = __webpack_require__(225); -const enoent = __webpack_require__(238); -function spawn(command, args, options) { - // Parse the arguments - const parsed = parse(command, args, options); +function fromPromise(input, scheduler) { + if (!scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeToPromise__WEBPACK_IMPORTED_MODULE_2__["subscribeToPromise"])(input)); + } + else { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + sub.add(scheduler.schedule(function () { + return input.then(function (value) { + sub.add(scheduler.schedule(function () { + subscriber.next(value); + sub.add(scheduler.schedule(function () { return subscriber.complete(); })); + })); + }, function (err) { + sub.add(scheduler.schedule(function () { return subscriber.error(err); })); + }); + })); + return sub; + }); + } +} +//# sourceMappingURL=fromPromise.js.map - // Spawn the child process - const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); - // Hook into child process "exit" event to emit an error if the command - // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 - enoent.hookChildProcess(spawned, parsed); +/***/ }), +/* 240 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return spawned; -} +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromIterable", function() { return fromIterable; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(231); +/* harmony import */ var _util_subscribeToIterable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(230); +/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator,_util_subscribeToIterable PURE_IMPORTS_END */ -function spawnSync(command, args, options) { - // Parse the arguments - const parsed = parse(command, args, options); - // Spawn the child process - const result = cp.spawnSync(parsed.command, parsed.args, parsed.options); - // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 - result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); - return result; +function fromIterable(input, scheduler) { + if (!input) { + throw new Error('Iterable cannot be null'); + } + if (!scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeToIterable__WEBPACK_IMPORTED_MODULE_3__["subscribeToIterable"])(input)); + } + else { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + var iterator; + sub.add(function () { + if (iterator && typeof iterator.return === 'function') { + iterator.return(); + } + }); + sub.add(scheduler.schedule(function () { + iterator = input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_2__["iterator"]](); + sub.add(scheduler.schedule(function () { + if (subscriber.closed) { + return; + } + var value; + var done; + try { + var result = iterator.next(); + value = result.value; + done = result.done; + } + catch (err) { + subscriber.error(err); + return; + } + if (done) { + subscriber.complete(); + } + else { + subscriber.next(value); + this.schedule(); + } + })); + })); + return sub; + }); + } } - -module.exports = spawn; -module.exports.spawn = spawn; -module.exports.sync = spawnSync; - -module.exports._parse = parse; -module.exports._enoent = enoent; +//# sourceMappingURL=fromIterable.js.map /***/ }), -/* 225 */ -/***/ (function(module, exports, __webpack_require__) { +/* 241 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromObservable", function() { return fromObservable; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(179); +/* harmony import */ var _util_subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(232); +/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable,_util_subscribeToObservable PURE_IMPORTS_END */ -const path = __webpack_require__(5); -const niceTry = __webpack_require__(226); -const resolveCommand = __webpack_require__(227); -const escape = __webpack_require__(233); -const readShebang = __webpack_require__(234); -const semver = __webpack_require__(237); - -const isWin = process.platform === 'win32'; -const isExecutableRegExp = /\.(?:com|exe)$/i; -const isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; -// `options.shell` is supported in Node ^4.8.0, ^5.7.0 and >= 6.0.0 -const supportsShellOption = niceTry(() => semver.satisfies(process.version, '^4.8.0 || ^5.7.0 || >= 6.0.0', true)) || false; -function detectShebang(parsed) { - parsed.file = resolveCommand(parsed); +function fromObservable(input, scheduler) { + if (!scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__["subscribeToObservable"])(input)); + } + else { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + sub.add(scheduler.schedule(function () { + var observable = input[_symbol_observable__WEBPACK_IMPORTED_MODULE_2__["observable"]](); + sub.add(observable.subscribe({ + next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); }, + error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); }, + complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); }, + })); + })); + return sub; + }); + } +} +//# sourceMappingURL=fromObservable.js.map - const shebang = parsed.file && readShebang(parsed.file); - if (shebang) { - parsed.args.unshift(parsed.file); - parsed.command = shebang; +/***/ }), +/* 242 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return resolveCommand(parsed); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatAll", function() { return concatAll; }); +/* harmony import */ var _mergeAll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(243); +/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */ - return parsed.file; +function concatAll() { + return Object(_mergeAll__WEBPACK_IMPORTED_MODULE_0__["mergeAll"])(1); } +//# sourceMappingURL=concatAll.js.map -function parseNonShell(parsed) { - if (!isWin) { - return parsed; - } - // Detect & add support for shebangs - const commandFile = detectShebang(parsed); +/***/ }), +/* 243 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - // We don't need a shell if the command filename is an executable - const needsShell = !isExecutableRegExp.test(commandFile); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeAll", function() { return mergeAll; }); +/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(244); +/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(216); +/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */ - // If a shell is required, use cmd.exe and take care of escaping everything correctly - // Note that `forceShell` is an hidden option used only in tests - if (parsed.options.forceShell || needsShell) { - // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/` - // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument - // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called, - // we need to double escape them - const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile); - // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\bar) - // This is necessary otherwise it will always fail with ENOENT in those cases - parsed.command = path.normalize(parsed.command); +function mergeAll(concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"], concurrent); +} +//# sourceMappingURL=mergeAll.js.map - // Escape command & arguments - parsed.command = escape.command(parsed.command); - parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars)); - const shellCommand = [parsed.command].concat(parsed.args).join(' '); +/***/ }), +/* 244 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`]; - parsed.command = process.env.comspec || 'cmd.exe'; - parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeMap", function() { return mergeMap; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeMapOperator", function() { return MergeMapOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeMapSubscriber", function() { return MergeMapSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(226); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(225); +/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(222); +/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(236); +/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_map,_observable_from PURE_IMPORTS_END */ - return parsed; -} -function parseShell(parsed) { - // If node supports the shell option, there's no need to mimic its behavior - if (supportsShellOption) { - return parsed; - } - // Mimic node shell option - // See https://github.com/nodejs/node/blob/b9f6a2dc059a1062776133f3d4fd848c4da7d150/lib/child_process.js#L335 - const shellCommand = [parsed.command].concat(parsed.args).join(' '); - if (isWin) { - parsed.command = typeof parsed.options.shell === 'string' ? parsed.options.shell : process.env.comspec || 'cmd.exe'; - parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`]; - parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped - } else { - if (typeof parsed.options.shell === 'string') { - parsed.command = parsed.options.shell; - } else if (process.platform === 'android') { - parsed.command = '/system/bin/sh'; - } else { - parsed.command = '/bin/sh'; - } - parsed.args = ['-c', shellCommand]; +function mergeMap(project, resultSelector, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; } - - return parsed; + if (typeof resultSelector === 'function') { + return function (source) { return source.pipe(mergeMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_4__["from"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); }; + } + else if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); }; } - -function parse(command, args, options) { - // Normalize arguments, similar to nodejs - if (args && !Array.isArray(args)) { - options = args; - args = null; +var MergeMapOperator = /*@__PURE__*/ (function () { + function MergeMapOperator(project, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + this.project = project; + this.concurrent = concurrent; } - - args = args ? args.slice(0) : []; // Clone array to avoid changing the original - options = Object.assign({}, options); // Clone object to avoid changing the original - - // Build our parsed object - const parsed = { - command, - args, - options, - file: undefined, - original: { - command, - args, - }, + MergeMapOperator.prototype.call = function (observer, source) { + return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent)); }; + return MergeMapOperator; +}()); - // Delegate further parsing to shell or non-shell - return options.shell ? parseShell(parsed) : parseNonShell(parsed); -} +var MergeMapSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MergeMapSubscriber, _super); + function MergeMapSubscriber(destination, project, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.concurrent = concurrent; + _this.hasCompleted = false; + _this.buffer = []; + _this.active = 0; + _this.index = 0; + return _this; + } + MergeMapSubscriber.prototype._next = function (value) { + if (this.active < this.concurrent) { + this._tryNext(value); + } + else { + this.buffer.push(value); + } + }; + MergeMapSubscriber.prototype._tryNext = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); + } + catch (err) { + this.destination.error(err); + return; + } + this.active++; + this._innerSub(result, value, index); + }; + MergeMapSubscriber.prototype._innerSub = function (ish, value, index) { + this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__["subscribeToResult"])(this, ish, value, index)); + }; + MergeMapSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + this.destination.complete(); + } + }; + MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(innerValue); + }; + MergeMapSubscriber.prototype.notifyComplete = function (innerSub) { + var buffer = this.buffer; + this.remove(innerSub); + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + this.destination.complete(); + } + }; + return MergeMapSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); -module.exports = parse; +//# sourceMappingURL=mergeMap.js.map /***/ }), -/* 226 */ -/***/ (function(module, exports, __webpack_require__) { +/* 245 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defer", function() { return defer; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(236); +/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(199); +/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ -/** - * Tries to execute a function and discards any error that occurs. - * @param {Function} fn - Function that might or might not throw an error. - * @returns {?*} Return-value of the function when no error occurred. - */ -module.exports = function(fn) { - - try { return fn() } - catch (e) {} +function defer(observableFactory) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var input; + try { + input = observableFactory(); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var source = input ? Object(_from__WEBPACK_IMPORTED_MODULE_1__["from"])(input) : Object(_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])(); + return source.subscribe(subscriber); + }); } +//# sourceMappingURL=defer.js.map + /***/ }), -/* 227 */ -/***/ (function(module, exports, __webpack_require__) { +/* 246 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forkJoin", function() { return forkJoin; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(164); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(173); +/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(199); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(226); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(225); +/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(222); +/** PURE_IMPORTS_START tslib,_Observable,_util_isArray,_empty,_util_subscribeToResult,_OuterSubscriber,_operators_map PURE_IMPORTS_END */ -const path = __webpack_require__(5); -const which = __webpack_require__(228); -const pathKey = __webpack_require__(232)(); -function resolveCommandAttempt(parsed, withoutPathExt) { - const cwd = process.cwd(); - const hasCustomCwd = parsed.options.cwd != null; - // If a custom `cwd` was specified, we need to change the process cwd - // because `which` will do stat calls but does not support a custom cwd - if (hasCustomCwd) { - try { - process.chdir(parsed.options.cwd); - } catch (err) { - /* Empty */ - } - } - let resolved; - try { - resolved = which.sync(parsed.command, { - path: (parsed.options.env || process.env)[pathKey], - pathExt: withoutPathExt ? path.delimiter : undefined, - }); - } catch (e) { - /* Empty */ - } finally { - process.chdir(cwd); - } - // If we successfully resolved, ensure that an absolute path is returned - // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it - if (resolved) { - resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved); +function forkJoin() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; } - - return resolved; -} - -function resolveCommand(parsed) { - return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true); + var resultSelector; + if (typeof sources[sources.length - 1] === 'function') { + resultSelector = sources.pop(); + } + if (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(sources[0])) { + sources = sources[0]; + } + if (sources.length === 0) { + return _empty__WEBPACK_IMPORTED_MODULE_3__["EMPTY"]; + } + if (resultSelector) { + return forkJoin(sources).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_6__["map"])(function (args) { return resultSelector.apply(void 0, args); })); + } + return new _Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"](function (subscriber) { + return new ForkJoinSubscriber(subscriber, sources); + }); } - -module.exports = resolveCommand; +var ForkJoinSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ForkJoinSubscriber, _super); + function ForkJoinSubscriber(destination, sources) { + var _this = _super.call(this, destination) || this; + _this.sources = sources; + _this.completed = 0; + _this.haveValues = 0; + var len = sources.length; + _this.values = new Array(len); + for (var i = 0; i < len; i++) { + var source = sources[i]; + var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(_this, source, null, i); + if (innerSubscription) { + _this.add(innerSubscription); + } + } + return _this; + } + ForkJoinSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.values[outerIndex] = innerValue; + if (!innerSub._hasValue) { + innerSub._hasValue = true; + this.haveValues++; + } + }; + ForkJoinSubscriber.prototype.notifyComplete = function (innerSub) { + var _a = this, destination = _a.destination, haveValues = _a.haveValues, values = _a.values; + var len = values.length; + if (!innerSub._hasValue) { + destination.complete(); + return; + } + this.completed++; + if (this.completed !== len) { + return; + } + if (haveValues === len) { + destination.next(values); + } + destination.complete(); + }; + return ForkJoinSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_5__["OuterSubscriber"])); +//# sourceMappingURL=forkJoin.js.map /***/ }), -/* 228 */ -/***/ (function(module, exports, __webpack_require__) { +/* 247 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -module.exports = which -which.sync = whichSync +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromEvent", function() { return fromEvent; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(173); +/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(168); +/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(222); +/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ -var isWindows = process.platform === 'win32' || - process.env.OSTYPE === 'cygwin' || - process.env.OSTYPE === 'msys' -var path = __webpack_require__(5) -var COLON = isWindows ? ';' : ':' -var isexe = __webpack_require__(229) -function getNotFoundError (cmd) { - var er = new Error('not found: ' + cmd) - er.code = 'ENOENT' - return er +var toString = Object.prototype.toString; +function fromEvent(target, eventName, options, resultSelector) { + if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(options)) { + resultSelector = options; + options = undefined; + } + if (resultSelector) { + return fromEvent(target, eventName, options).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + function handler(e) { + if (arguments.length > 1) { + subscriber.next(Array.prototype.slice.call(arguments)); + } + else { + subscriber.next(e); + } + } + setupSubscription(target, eventName, handler, subscriber, options); + }); +} +function setupSubscription(sourceObj, eventName, handler, subscriber, options) { + var unsubscribe; + if (isEventTarget(sourceObj)) { + var source_1 = sourceObj; + sourceObj.addEventListener(eventName, handler, options); + unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); }; + } + else if (isJQueryStyleEventEmitter(sourceObj)) { + var source_2 = sourceObj; + sourceObj.on(eventName, handler); + unsubscribe = function () { return source_2.off(eventName, handler); }; + } + else if (isNodeStyleEventEmitter(sourceObj)) { + var source_3 = sourceObj; + sourceObj.addListener(eventName, handler); + unsubscribe = function () { return source_3.removeListener(eventName, handler); }; + } + else if (sourceObj && sourceObj.length) { + for (var i = 0, len = sourceObj.length; i < len; i++) { + setupSubscription(sourceObj[i], eventName, handler, subscriber, options); + } + } + else { + throw new TypeError('Invalid event target'); + } + subscriber.add(unsubscribe); +} +function isNodeStyleEventEmitter(sourceObj) { + return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function'; +} +function isJQueryStyleEventEmitter(sourceObj) { + return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function'; +} +function isEventTarget(sourceObj) { + return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function'; } +//# sourceMappingURL=fromEvent.js.map -function getPathInfo (cmd, opt) { - var colon = opt.colon || COLON - var pathEnv = opt.path || process.env.PATH || '' - var pathExt = [''] - pathEnv = pathEnv.split(colon) +/***/ }), +/* 248 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - var pathExtExe = '' - if (isWindows) { - pathEnv.unshift(process.cwd()) - pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM') - pathExt = pathExtExe.split(colon) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromEventPattern", function() { return fromEventPattern; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(173); +/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(168); +/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(222); +/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ - // Always test the cmd itself first. isexe will check to make sure - // it's found in the pathExt set. - if (cmd.indexOf('.') !== -1 && pathExt[0] !== '') - pathExt.unshift('') - } - // If it has a slash, then we don't bother searching the pathenv. - // just check the file itself, and that's it. - if (cmd.match(/\//) || isWindows && cmd.match(/\\/)) - pathEnv = [''] - return { - env: pathEnv, - ext: pathExt, - extExe: pathExtExe - } +function fromEventPattern(addHandler, removeHandler, resultSelector) { + if (resultSelector) { + return fromEventPattern(addHandler, removeHandler).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var handler = function () { + var e = []; + for (var _i = 0; _i < arguments.length; _i++) { + e[_i] = arguments[_i]; + } + return subscriber.next(e.length === 1 ? e[0] : e); + }; + var retValue; + try { + retValue = addHandler(handler); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(removeHandler)) { + return undefined; + } + return function () { return removeHandler(handler, retValue); }; + }); } +//# sourceMappingURL=fromEventPattern.js.map -function which (cmd, opt, cb) { - if (typeof opt === 'function') { - cb = opt - opt = {} - } - var info = getPathInfo(cmd, opt) - var pathEnv = info.env - var pathExt = info.ext - var pathExtExe = info.extExe - var found = [] +/***/ }), +/* 249 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - ;(function F (i, l) { - if (i === l) { - if (opt.all && found.length) - return cb(null, found) - else - return cb(getNotFoundError(cmd)) - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generate", function() { return generate; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(216); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(201); +/** PURE_IMPORTS_START _Observable,_util_identity,_util_isScheduler PURE_IMPORTS_END */ - var pathPart = pathEnv[i] - if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"') - pathPart = pathPart.slice(1, -1) - var p = path.join(pathPart, cmd) - if (!pathPart && (/^\.[\\\/]/).test(cmd)) { - p = cmd.slice(0, 2) + p + +function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) { + var resultSelector; + var initialState; + if (arguments.length == 1) { + var options = initialStateOrOptions; + initialState = options.initialState; + condition = options.condition; + iterate = options.iterate; + resultSelector = options.resultSelector || _util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"]; + scheduler = options.scheduler; } - ;(function E (ii, ll) { - if (ii === ll) return F(i + 1, l) - var ext = pathExt[ii] - isexe(p + ext, { pathExt: pathExtExe }, function (er, is) { - if (!er && is) { - if (opt.all) - found.push(p + ext) - else - return cb(null, p + ext) + else if (resultSelectorOrObservable === undefined || Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_2__["isScheduler"])(resultSelectorOrObservable)) { + initialState = initialStateOrOptions; + resultSelector = _util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"]; + scheduler = resultSelectorOrObservable; + } + else { + initialState = initialStateOrOptions; + resultSelector = resultSelectorOrObservable; + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var state = initialState; + if (scheduler) { + return scheduler.schedule(dispatch, 0, { + subscriber: subscriber, + iterate: iterate, + condition: condition, + resultSelector: resultSelector, + state: state + }); } - return E(ii + 1, ll) - }) - })(0, pathExt.length) - })(0, pathEnv.length) + do { + if (condition) { + var conditionResult = void 0; + try { + conditionResult = condition(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + break; + } + } + var value = void 0; + try { + value = resultSelector(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + break; + } + try { + state = iterate(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + } while (true); + return undefined; + }); } - -function whichSync (cmd, opt) { - opt = opt || {} - - var info = getPathInfo(cmd, opt) - var pathEnv = info.env - var pathExt = info.ext - var pathExtExe = info.extExe - var found = [] - - for (var i = 0, l = pathEnv.length; i < l; i ++) { - var pathPart = pathEnv[i] - if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"') - pathPart = pathPart.slice(1, -1) - - var p = path.join(pathPart, cmd) - if (!pathPart && /^\.[\\\/]/.test(cmd)) { - p = cmd.slice(0, 2) + p +function dispatch(state) { + var subscriber = state.subscriber, condition = state.condition; + if (subscriber.closed) { + return undefined; } - for (var j = 0, ll = pathExt.length; j < ll; j ++) { - var cur = p + pathExt[j] - var is - try { - is = isexe.sync(cur, { pathExt: pathExtExe }) - if (is) { - if (opt.all) - found.push(cur) - else - return cur + if (state.needIterate) { + try { + state.state = state.iterate(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; } - } catch (ex) {} } - } - - if (opt.all && found.length) - return found - - if (opt.nothrow) - return null - - throw getNotFoundError(cmd) + else { + state.needIterate = true; + } + if (condition) { + var conditionResult = void 0; + try { + conditionResult = condition(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + } + var value; + try { + value = state.resultSelector(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + return undefined; + } + return this.schedule(state); } +//# sourceMappingURL=generate.js.map /***/ }), -/* 229 */ -/***/ (function(module, exports, __webpack_require__) { - -var fs = __webpack_require__(13) -var core -if (process.platform === 'win32' || global.TESTING_WINDOWS) { - core = __webpack_require__(230) -} else { - core = __webpack_require__(231) -} - -module.exports = isexe -isexe.sync = sync - -function isexe (path, options, cb) { - if (typeof options === 'function') { - cb = options - options = {} - } +/* 250 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (!cb) { - if (typeof Promise !== 'function') { - throw new TypeError('callback not provided') - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iif", function() { return iif; }); +/* harmony import */ var _defer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(245); +/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(199); +/** PURE_IMPORTS_START _defer,_empty PURE_IMPORTS_END */ - return new Promise(function (resolve, reject) { - isexe(path, options || {}, function (er, is) { - if (er) { - reject(er) - } else { - resolve(is) - } - }) - }) - } - core(path, options || {}, function (er, is) { - // ignore EACCES because that just means we aren't allowed to run it - if (er) { - if (er.code === 'EACCES' || options && options.ignoreErrors) { - er = null - is = false - } +function iif(condition, trueResult, falseResult) { + if (trueResult === void 0) { + trueResult = _empty__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]; } - cb(er, is) - }) -} - -function sync (path, options) { - // my kingdom for a filtered catch - try { - return core.sync(path, options || {}) - } catch (er) { - if (options && options.ignoreErrors || er.code === 'EACCES') { - return false - } else { - throw er + if (falseResult === void 0) { + falseResult = _empty__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]; } - } + return Object(_defer__WEBPACK_IMPORTED_MODULE_0__["defer"])(function () { return condition() ? trueResult : falseResult; }); } +//# sourceMappingURL=iif.js.map /***/ }), -/* 230 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = isexe -isexe.sync = sync +/* 251 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var fs = __webpack_require__(13) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return interval; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(211); +/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(252); +/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric PURE_IMPORTS_END */ -function checkPathExt (path, options) { - var pathext = options.pathExt !== undefined ? - options.pathExt : process.env.PATHEXT - if (!pathext) { - return true - } - pathext = pathext.split(';') - if (pathext.indexOf('') !== -1) { - return true - } - for (var i = 0; i < pathext.length; i++) { - var p = pathext[i].toLowerCase() - if (p && path.substr(-p.length).toLowerCase() === p) { - return true +function interval(period, scheduler) { + if (period === void 0) { + period = 0; } - } - return false -} - -function checkStat (stat, path, options) { - if (!stat.isSymbolicLink() && !stat.isFile()) { - return false - } - return checkPathExt(path, options) -} - -function isexe (path, options, cb) { - fs.stat(path, function (er, stat) { - cb(er, er ? false : checkStat(stat, path, options)) - }) + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; + } + if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__["isNumeric"])(period) || period < 0) { + period = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period })); + return subscriber; + }); } - -function sync (path, options) { - return checkStat(fs.statSync(path), path, options) +function dispatch(state) { + var subscriber = state.subscriber, counter = state.counter, period = state.period; + subscriber.next(counter); + this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period); } +//# sourceMappingURL=interval.js.map /***/ }), -/* 231 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = isexe -isexe.sync = sync +/* 252 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var fs = __webpack_require__(13) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNumeric", function() { return isNumeric; }); +/* harmony import */ var _isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(173); +/** PURE_IMPORTS_START _isArray PURE_IMPORTS_END */ -function isexe (path, options, cb) { - fs.stat(path, function (er, stat) { - cb(er, er ? false : checkStat(stat, options)) - }) +function isNumeric(val) { + return !Object(_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(val) && (val - parseFloat(val) + 1) >= 0; } +//# sourceMappingURL=isNumeric.js.map -function sync (path, options) { - return checkStat(fs.statSync(path), options) -} -function checkStat (stat, options) { - return stat.isFile() && checkMode(stat, options) -} +/***/ }), +/* 253 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function checkMode (stat, options) { - var mod = stat.mode - var uid = stat.uid - var gid = stat.gid +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(201); +/* harmony import */ var _operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(243); +/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(202); +/** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */ - var myUid = options.uid !== undefined ? - options.uid : process.getuid && process.getuid() - var myGid = options.gid !== undefined ? - options.gid : process.getgid && process.getgid() - var u = parseInt('100', 8) - var g = parseInt('010', 8) - var o = parseInt('001', 8) - var ug = u | g - var ret = (mod & o) || - (mod & g) && gid === myGid || - (mod & u) && uid === myUid || - (mod & ug) && myUid === 0 - return ret +function merge() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var concurrent = Number.POSITIVE_INFINITY; + var scheduler = null; + var last = observables[observables.length - 1]; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__["isScheduler"])(last)) { + scheduler = observables.pop(); + if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') { + concurrent = observables.pop(); + } + } + else if (typeof last === 'number') { + concurrent = observables.pop(); + } + if (scheduler === null && observables.length === 1 && observables[0] instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]) { + return observables[0]; + } + return Object(_operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__["mergeAll"])(concurrent)(Object(_fromArray__WEBPACK_IMPORTED_MODULE_3__["fromArray"])(observables, scheduler)); } +//# sourceMappingURL=merge.js.map /***/ }), -/* 232 */ -/***/ (function(module, exports, __webpack_require__) { +/* 254 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NEVER", function() { return NEVER; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "never", function() { return never; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(181); +/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */ -module.exports = opts => { - opts = opts || {}; - - const env = opts.env || process.env; - const platform = opts.platform || process.platform; - - if (platform !== 'win32') { - return 'PATH'; - } - return Object.keys(env).find(x => x.toUpperCase() === 'PATH') || 'Path'; -}; +var NEVER = /*@__PURE__*/ new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](_util_noop__WEBPACK_IMPORTED_MODULE_1__["noop"]); +function never() { + return NEVER; +} +//# sourceMappingURL=never.js.map /***/ }), -/* 233 */ -/***/ (function(module, exports, __webpack_require__) { +/* 255 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return onErrorResumeNext; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(236); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(173); +/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(199); +/** PURE_IMPORTS_START _Observable,_from,_util_isArray,_empty PURE_IMPORTS_END */ -// See http://www.robvanderwoude.com/escapechars.php -const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g; -function escapeCommand(arg) { - // Escape meta chars - arg = arg.replace(metaCharsRegExp, '^$1'); - return arg; +function onErrorResumeNext() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + if (sources.length === 0) { + return _empty__WEBPACK_IMPORTED_MODULE_3__["EMPTY"]; + } + var first = sources[0], remainder = sources.slice(1); + if (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(first)) { + return onErrorResumeNext.apply(void 0, first); + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); }; + return Object(_from__WEBPACK_IMPORTED_MODULE_1__["from"])(first).subscribe({ + next: function (value) { subscriber.next(value); }, + error: subNext, + complete: subNext, + }); + }); } +//# sourceMappingURL=onErrorResumeNext.js.map -function escapeArgument(arg, doubleEscapeMetaChars) { - // Convert to string - arg = `${arg}`; - - // Algorithm below is based on https://qntm.org/cmd - - // Sequence of backslashes followed by a double quote: - // double up all the backslashes and escape the double quote - arg = arg.replace(/(\\*)"/g, '$1$1\\"'); - - // Sequence of backslashes followed by the end of the string - // (which will become a double quote later): - // double up all the backslashes - arg = arg.replace(/(\\*)$/, '$1$1'); - // All other backslashes occur literally +/***/ }), +/* 256 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - // Quote the whole thing: - arg = `"${arg}"`; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return pairs; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return dispatch; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ - // Escape meta chars - arg = arg.replace(metaCharsRegExp, '^$1'); - // Double escape meta chars if necessary - if (doubleEscapeMetaChars) { - arg = arg.replace(metaCharsRegExp, '^$1'); +function pairs(obj, scheduler) { + if (!scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length && !subscriber.closed; i++) { + var key = keys[i]; + if (obj.hasOwnProperty(key)) { + subscriber.next([key, obj[key]]); + } + } + subscriber.complete(); + }); + } + else { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var keys = Object.keys(obj); + var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj })); + return subscription; + }); } - - return arg; } - -module.exports.command = escapeCommand; -module.exports.argument = escapeArgument; +function dispatch(state) { + var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj; + if (!subscriber.closed) { + if (index < keys.length) { + var key = keys[index]; + subscriber.next([key, obj[key]]); + subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj })); + } + else { + subscriber.complete(); + } + } +} +//# sourceMappingURL=pairs.js.map /***/ }), -/* 234 */ -/***/ (function(module, exports, __webpack_require__) { +/* 257 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "race", function() { return race; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RaceOperator", function() { return RaceOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RaceSubscriber", function() { return RaceSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(173); +/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(202); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_util_isArray,_fromArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -const fs = __webpack_require__(13); -const shebangCommand = __webpack_require__(235); - -function readShebang(command) { - // Read the first 150 bytes from the file - const size = 150; - let buffer; - - if (Buffer.alloc) { - // Node.js v4.5+ / v5.10+ - buffer = Buffer.alloc(size); - } else { - // Old Node.js API - buffer = new Buffer(size); - buffer.fill(0); // zero-fill - } - let fd; - try { - fd = fs.openSync(command, 'r'); - fs.readSync(fd, buffer, 0, size, 0); - fs.closeSync(fd); - } catch (e) { /* Empty */ } - // Attempt to extract shebang (null is returned if not a shebang) - return shebangCommand(buffer.toString()); +function race() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + if (observables.length === 1) { + if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(observables[0])) { + observables = observables[0]; + } + else { + return observables[0]; + } + } + return Object(_fromArray__WEBPACK_IMPORTED_MODULE_2__["fromArray"])(observables, undefined).lift(new RaceOperator()); } +var RaceOperator = /*@__PURE__*/ (function () { + function RaceOperator() { + } + RaceOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RaceSubscriber(subscriber)); + }; + return RaceOperator; +}()); -module.exports = readShebang; +var RaceSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RaceSubscriber, _super); + function RaceSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasFirst = false; + _this.observables = []; + _this.subscriptions = []; + return _this; + } + RaceSubscriber.prototype._next = function (observable) { + this.observables.push(observable); + }; + RaceSubscriber.prototype._complete = function () { + var observables = this.observables; + var len = observables.length; + if (len === 0) { + this.destination.complete(); + } + else { + for (var i = 0; i < len && !this.hasFirst; i++) { + var observable = observables[i]; + var subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, observable, observable, i); + if (this.subscriptions) { + this.subscriptions.push(subscription); + } + this.add(subscription); + } + this.observables = null; + } + }; + RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + if (!this.hasFirst) { + this.hasFirst = true; + for (var i = 0; i < this.subscriptions.length; i++) { + if (i !== outerIndex) { + var subscription = this.subscriptions[i]; + subscription.unsubscribe(); + this.remove(subscription); + } + } + this.subscriptions = null; + } + this.destination.next(innerValue); + }; + return RaceSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); + +//# sourceMappingURL=race.js.map /***/ }), -/* 235 */ -/***/ (function(module, exports, __webpack_require__) { +/* 258 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "range", function() { return range; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return dispatch; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ -var shebangRegex = __webpack_require__(236); - -module.exports = function (str) { - var match = str.match(shebangRegex); - - if (!match) { - return null; - } - - var arr = match[0].replace(/#! ?/, '').split(' '); - var bin = arr[0].split('/').pop(); - var arg = arr[1]; - - return (bin === 'env' ? - arg : - bin + (arg ? ' ' + arg : '') - ); -}; +function range(start, count, scheduler) { + if (start === void 0) { + start = 0; + } + if (count === void 0) { + count = 0; + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var index = 0; + var current = start; + if (scheduler) { + return scheduler.schedule(dispatch, 0, { + index: index, count: count, start: start, subscriber: subscriber + }); + } + else { + do { + if (index++ >= count) { + subscriber.complete(); + break; + } + subscriber.next(current++); + if (subscriber.closed) { + break; + } + } while (true); + } + return undefined; + }); +} +function dispatch(state) { + var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber; + if (index >= count) { + subscriber.complete(); + return; + } + subscriber.next(start); + if (subscriber.closed) { + return; + } + state.index = index + 1; + state.start = start + 1; + this.schedule(state); +} +//# sourceMappingURL=range.js.map /***/ }), -/* 236 */ -/***/ (function(module, exports, __webpack_require__) { +/* 259 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return timer; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(211); +/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(252); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(201); +/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */ -module.exports = /^#!.*/; - - -/***/ }), -/* 237 */ -/***/ (function(module, exports) { -exports = module.exports = SemVer; -// The debug function is excluded entirely from the minified version. -/* nomin */ var debug; -/* nomin */ if (typeof process === 'object' && - /* nomin */ process.env && - /* nomin */ process.env.NODE_DEBUG && - /* nomin */ /\bsemver\b/i.test(process.env.NODE_DEBUG)) - /* nomin */ debug = function() { - /* nomin */ var args = Array.prototype.slice.call(arguments, 0); - /* nomin */ args.unshift('SEMVER'); - /* nomin */ console.log.apply(console, args); - /* nomin */ }; -/* nomin */ else - /* nomin */ debug = function() {}; -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. -exports.SEMVER_SPEC_VERSION = '2.0.0'; +function timer(dueTime, periodOrScheduler, scheduler) { + if (dueTime === void 0) { + dueTime = 0; + } + var period = -1; + if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__["isNumeric"])(periodOrScheduler)) { + period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler); + } + else if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(periodOrScheduler)) { + scheduler = periodOrScheduler; + } + if (!Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(scheduler)) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var due = Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__["isNumeric"])(dueTime) + ? dueTime + : (+dueTime - scheduler.now()); + return scheduler.schedule(dispatch, due, { + index: 0, period: period, subscriber: subscriber + }); + }); +} +function dispatch(state) { + var index = state.index, period = state.period, subscriber = state.subscriber; + subscriber.next(index); + if (subscriber.closed) { + return; + } + else if (period === -1) { + return subscriber.complete(); + } + state.index = index + 1; + this.schedule(state, period); +} +//# sourceMappingURL=timer.js.map -var MAX_LENGTH = 256; -var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; -// Max safe segment length for coercion. -var MAX_SAFE_COMPONENT_LENGTH = 16; +/***/ }), +/* 260 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -// The actual regexps go on exports.re -var re = exports.re = []; -var src = exports.src = []; -var R = 0; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "using", function() { return using; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); +/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(236); +/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(199); +/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ -// The following Regular Expressions can be used for tokenizing, -// validating, and parsing SemVer version strings. -// ## Numeric Identifier -// A single `0`, or a non-zero digit followed by zero or more digits. -var NUMERICIDENTIFIER = R++; -src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'; -var NUMERICIDENTIFIERLOOSE = R++; -src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'; +function using(resourceFactory, observableFactory) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var resource; + try { + resource = resourceFactory(); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var result; + try { + result = observableFactory(resource); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var source = result ? Object(_from__WEBPACK_IMPORTED_MODULE_1__["from"])(result) : _empty__WEBPACK_IMPORTED_MODULE_2__["EMPTY"]; + var subscription = source.subscribe(subscriber); + return function () { + subscription.unsubscribe(); + if (resource) { + resource.unsubscribe(); + } + }; + }); +} +//# sourceMappingURL=using.js.map -// ## Non-numeric Identifier -// Zero or more digits, followed by a letter or hyphen, and then zero or -// more letters, digits, or hyphens. +/***/ }), +/* 261 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var NONNUMERICIDENTIFIER = R++; -src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return zip; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipOperator", function() { return ZipOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipSubscriber", function() { return ZipSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(202); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(173); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(166); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(226); +/* harmony import */ var _internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(231); +/** PURE_IMPORTS_START tslib,_fromArray,_util_isArray,_Subscriber,_OuterSubscriber,_util_subscribeToResult,_.._internal_symbol_iterator PURE_IMPORTS_END */ -// ## Main Version -// Three dot-separated numeric identifiers. -var MAINVERSION = R++; -src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' + - '(' + src[NUMERICIDENTIFIER] + ')\\.' + - '(' + src[NUMERICIDENTIFIER] + ')'; -var MAINVERSIONLOOSE = R++; -src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[NUMERICIDENTIFIERLOOSE] + ')'; -// ## Pre-release Version Identifier -// A numeric identifier, or a non-numeric identifier. -var PRERELEASEIDENTIFIER = R++; -src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] + - '|' + src[NONNUMERICIDENTIFIER] + ')'; -var PRERELEASEIDENTIFIERLOOSE = R++; -src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] + - '|' + src[NONNUMERICIDENTIFIER] + ')'; +function zip() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var resultSelector = observables[observables.length - 1]; + if (typeof resultSelector === 'function') { + observables.pop(); + } + return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__["fromArray"])(observables, undefined).lift(new ZipOperator(resultSelector)); +} +var ZipOperator = /*@__PURE__*/ (function () { + function ZipOperator(resultSelector) { + this.resultSelector = resultSelector; + } + ZipOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector)); + }; + return ZipOperator; +}()); +var ZipSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ZipSubscriber, _super); + function ZipSubscriber(destination, resultSelector, values) { + if (values === void 0) { + values = Object.create(null); + } + var _this = _super.call(this, destination) || this; + _this.iterators = []; + _this.active = 0; + _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null; + _this.values = values; + return _this; + } + ZipSubscriber.prototype._next = function (value) { + var iterators = this.iterators; + if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(value)) { + iterators.push(new StaticArrayIterator(value)); + } + else if (typeof value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]] === 'function') { + iterators.push(new StaticIterator(value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]]())); + } + else { + iterators.push(new ZipBufferIterator(this.destination, this, value)); + } + }; + ZipSubscriber.prototype._complete = function () { + var iterators = this.iterators; + var len = iterators.length; + if (len === 0) { + this.destination.complete(); + return; + } + this.active = len; + for (var i = 0; i < len; i++) { + var iterator = iterators[i]; + if (iterator.stillUnsubscribed) { + this.add(iterator.subscribe(iterator, i)); + } + else { + this.active--; + } + } + }; + ZipSubscriber.prototype.notifyInactive = function () { + this.active--; + if (this.active === 0) { + this.destination.complete(); + } + }; + ZipSubscriber.prototype.checkIterators = function () { + var iterators = this.iterators; + var len = iterators.length; + var destination = this.destination; + for (var i = 0; i < len; i++) { + var iterator = iterators[i]; + if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) { + return; + } + } + var shouldComplete = false; + var args = []; + for (var i = 0; i < len; i++) { + var iterator = iterators[i]; + var result = iterator.next(); + if (iterator.hasCompleted()) { + shouldComplete = true; + } + if (result.done) { + destination.complete(); + return; + } + args.push(result.value); + } + if (this.resultSelector) { + this._tryresultSelector(args); + } + else { + destination.next(args); + } + if (shouldComplete) { + destination.complete(); + } + }; + ZipSubscriber.prototype._tryresultSelector = function (args) { + var result; + try { + result = this.resultSelector.apply(this, args); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return ZipSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"])); -// ## Pre-release Version -// Hyphen, followed by one or more dot-separated pre-release version -// identifiers. +var StaticIterator = /*@__PURE__*/ (function () { + function StaticIterator(iterator) { + this.iterator = iterator; + this.nextResult = iterator.next(); + } + StaticIterator.prototype.hasValue = function () { + return true; + }; + StaticIterator.prototype.next = function () { + var result = this.nextResult; + this.nextResult = this.iterator.next(); + return result; + }; + StaticIterator.prototype.hasCompleted = function () { + var nextResult = this.nextResult; + return nextResult && nextResult.done; + }; + return StaticIterator; +}()); +var StaticArrayIterator = /*@__PURE__*/ (function () { + function StaticArrayIterator(array) { + this.array = array; + this.index = 0; + this.length = 0; + this.length = array.length; + } + StaticArrayIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]] = function () { + return this; + }; + StaticArrayIterator.prototype.next = function (value) { + var i = this.index++; + var array = this.array; + return i < this.length ? { value: array[i], done: false } : { value: null, done: true }; + }; + StaticArrayIterator.prototype.hasValue = function () { + return this.array.length > this.index; + }; + StaticArrayIterator.prototype.hasCompleted = function () { + return this.array.length === this.index; + }; + return StaticArrayIterator; +}()); +var ZipBufferIterator = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ZipBufferIterator, _super); + function ZipBufferIterator(destination, parent, observable) { + var _this = _super.call(this, destination) || this; + _this.parent = parent; + _this.observable = observable; + _this.stillUnsubscribed = true; + _this.buffer = []; + _this.isComplete = false; + return _this; + } + ZipBufferIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]] = function () { + return this; + }; + ZipBufferIterator.prototype.next = function () { + var buffer = this.buffer; + if (buffer.length === 0 && this.isComplete) { + return { value: null, done: true }; + } + else { + return { value: buffer.shift(), done: false }; + } + }; + ZipBufferIterator.prototype.hasValue = function () { + return this.buffer.length > 0; + }; + ZipBufferIterator.prototype.hasCompleted = function () { + return this.buffer.length === 0 && this.isComplete; + }; + ZipBufferIterator.prototype.notifyComplete = function () { + if (this.buffer.length > 0) { + this.isComplete = true; + this.parent.notifyInactive(); + } + else { + this.destination.complete(); + } + }; + ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.buffer.push(innerValue); + this.parent.checkIterators(); + }; + ZipBufferIterator.prototype.subscribe = function (value, index) { + return Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, this.observable, this, index); + }; + return ZipBufferIterator; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"])); +//# sourceMappingURL=zip.js.map -var PRERELEASE = R++; -src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] + - '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'; -var PRERELEASELOOSE = R++; -src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] + - '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'; +/***/ }), +/* 262 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -// ## Build Metadata Identifier -// Any combination of digits, letters, or hyphens. +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(263); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "audit", function() { return _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__["audit"]; }); -var BUILDIDENTIFIER = R++; -src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'; +/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(264); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__["auditTime"]; }); -// ## Build Metadata -// Plus sign, followed by one or more period-separated build metadata -// identifiers. +/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(265); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__["buffer"]; }); -var BUILD = R++; -src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] + - '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'; +/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(266); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferCount", function() { return _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__["bufferCount"]; }); +/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(267); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferTime", function() { return _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__["bufferTime"]; }); -// ## Full Version String -// A main version, followed optionally by a pre-release version and -// build metadata. +/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(268); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferToggle", function() { return _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__["bufferToggle"]; }); -// Note that the only major, minor, patch, and pre-release sections of -// the version string are capturing groups. The build metadata is not a -// capturing group, because it should not ever be used in version -// comparison. +/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(269); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferWhen", function() { return _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__["bufferWhen"]; }); -var FULL = R++; -var FULLPLAIN = 'v?' + src[MAINVERSION] + - src[PRERELEASE] + '?' + - src[BUILD] + '?'; +/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(270); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "catchError", function() { return _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__["catchError"]; }); -src[FULL] = '^' + FULLPLAIN + '$'; +/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(271); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineAll", function() { return _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__["combineAll"]; }); -// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. -// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty -// common in the npm registry. -var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] + - src[PRERELEASELOOSE] + '?' + - src[BUILD] + '?'; +/* harmony import */ var _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(272); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__["combineLatest"]; }); -var LOOSE = R++; -src[LOOSE] = '^' + LOOSEPLAIN + '$'; +/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(273); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__["concat"]; }); -var GTLT = R++; -src[GTLT] = '((?:<|>)?=?)'; +/* harmony import */ var _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(242); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatAll", function() { return _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__["concatAll"]; }); -// Something like "2.*" or "1.2.x". -// Note that "x.x" is a valid xRange identifer, meaning "any version" -// Only the first item is strictly required. -var XRANGEIDENTIFIERLOOSE = R++; -src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'; -var XRANGEIDENTIFIER = R++; -src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'; +/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(274); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMap", function() { return _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__["concatMap"]; }); -var XRANGEPLAIN = R++; -src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + - '(?:' + src[PRERELEASE] + ')?' + - src[BUILD] + '?' + - ')?)?'; +/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(275); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__["concatMapTo"]; }); -var XRANGEPLAINLOOSE = R++; -src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:' + src[PRERELEASELOOSE] + ')?' + - src[BUILD] + '?' + - ')?)?'; +/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(276); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "count", function() { return _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__["count"]; }); -var XRANGE = R++; -src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'; -var XRANGELOOSE = R++; -src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'; +/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(277); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__["debounce"]; }); -// Coercion. -// Extract anything that could conceivably be a part of a valid semver -var COERCE = R++; -src[COERCE] = '(?:^|[^\\d])' + - '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' + - '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + - '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + - '(?:$|[^\\d])'; +/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(278); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounceTime", function() { return _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__["debounceTime"]; }); -// Tilde ranges. -// Meaning is "reasonably at or greater than" -var LONETILDE = R++; -src[LONETILDE] = '(?:~>?)'; +/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(279); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultIfEmpty", function() { return _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__["defaultIfEmpty"]; }); -var TILDETRIM = R++; -src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'; -re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g'); -var tildeTrimReplace = '$1~'; +/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(280); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__["delay"]; }); -var TILDE = R++; -src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'; -var TILDELOOSE = R++; -src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'; +/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(282); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delayWhen", function() { return _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__["delayWhen"]; }); -// Caret ranges. -// Meaning is "at least and backwards compatible with" -var LONECARET = R++; -src[LONECARET] = '(?:\\^)'; +/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(283); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dematerialize", function() { return _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__["dematerialize"]; }); -var CARETTRIM = R++; -src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'; -re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g'); -var caretTrimReplace = '$1^'; +/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(284); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__["distinct"]; }); -var CARET = R++; -src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'; -var CARETLOOSE = R++; -src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'; +/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(285); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__["distinctUntilChanged"]; }); -// A simple gt/lt/eq thing, or just "" to indicate "any version" -var COMPARATORLOOSE = R++; -src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'; -var COMPARATOR = R++; -src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'; +/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(286); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__["distinctUntilKeyChanged"]; }); +/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(287); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__["elementAt"]; }); -// An expression to strip any whitespace between the gtlt and the thing -// it modifies, so that `> 1.2.3` ==> `>1.2.3` -var COMPARATORTRIM = R++; -src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + - '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'; +/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(292); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "endWith", function() { return _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__["endWith"]; }); -// this one has to use the /g flag -re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g'); -var comparatorTrimReplace = '$1$2$3'; +/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(293); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "every", function() { return _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__["every"]; }); +/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(294); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaust", function() { return _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__["exhaust"]; }); -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. -var HYPHENRANGE = R++; -src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + - '\\s+-\\s+' + - '(' + src[XRANGEPLAIN] + ')' + - '\\s*$'; +/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(295); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaustMap", function() { return _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__["exhaustMap"]; }); -var HYPHENRANGELOOSE = R++; -src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + - '\\s+-\\s+' + - '(' + src[XRANGEPLAINLOOSE] + ')' + - '\\s*$'; +/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(296); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "expand", function() { return _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__["expand"]; }); -// Star ranges basically just allow anything at all. -var STAR = R++; -src[STAR] = '(<|>)?=?\\s*\\*'; +/* harmony import */ var _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(288); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__["filter"]; }); -// Compile to actual regexp objects. -// All are flag-free, unless they were created above with a flag. -for (var i = 0; i < R; i++) { - debug(i, src[i]); - if (!re[i]) - re[i] = new RegExp(src[i]); -} +/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(297); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "finalize", function() { return _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__["finalize"]; }); -exports.parse = parse; -function parse(version, loose) { - if (version instanceof SemVer) - return version; +/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(298); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "find", function() { return _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__["find"]; }); - if (typeof version !== 'string') - return null; +/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(299); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__["findIndex"]; }); - if (version.length > MAX_LENGTH) - return null; +/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(300); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "first", function() { return _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__["first"]; }); - var r = loose ? re[LOOSE] : re[FULL]; - if (!r.test(version)) - return null; +/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(187); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__["groupBy"]; }); - try { - return new SemVer(version, loose); - } catch (er) { - return null; - } -} +/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(301); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ignoreElements", function() { return _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__["ignoreElements"]; }); -exports.valid = valid; -function valid(version, loose) { - var v = parse(version, loose); - return v ? v.version : null; -} +/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(302); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__["isEmpty"]; }); +/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(303); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "last", function() { return _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__["last"]; }); -exports.clean = clean; -function clean(version, loose) { - var s = parse(version.trim().replace(/^[=v]+/, ''), loose); - return s ? s.version : null; -} +/* harmony import */ var _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(222); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__["map"]; }); -exports.SemVer = SemVer; +/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(305); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapTo", function() { return _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__["mapTo"]; }); -function SemVer(version, loose) { - if (version instanceof SemVer) { - if (version.loose === loose) - return version; - else - version = version.version; - } else if (typeof version !== 'string') { - throw new TypeError('Invalid Version: ' + version); - } +/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(306); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "materialize", function() { return _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__["materialize"]; }); - if (version.length > MAX_LENGTH) - throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') +/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(307); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__["max"]; }); - if (!(this instanceof SemVer)) - return new SemVer(version, loose); +/* harmony import */ var _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(310); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__["merge"]; }); - debug('SemVer', version, loose); - this.loose = loose; - var m = version.trim().match(loose ? re[LOOSE] : re[FULL]); +/* harmony import */ var _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(243); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeAll", function() { return _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_44__["mergeAll"]; }); - if (!m) - throw new TypeError('Invalid Version: ' + version); +/* harmony import */ var _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(244); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeMap", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__["mergeMap"]; }); - this.raw = version; +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flatMap", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__["mergeMap"]; }); - // these are actually numbers - this.major = +m[1]; - this.minor = +m[2]; - this.patch = +m[3]; +/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(311); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeMapTo", function() { return _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__["mergeMapTo"]; }); - if (this.major > MAX_SAFE_INTEGER || this.major < 0) - throw new TypeError('Invalid major version') +/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(312); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeScan", function() { return _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__["mergeScan"]; }); - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) - throw new TypeError('Invalid minor version') +/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(313); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__["min"]; }); - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) - throw new TypeError('Invalid patch version') +/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(314); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "multicast", function() { return _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__["multicast"]; }); - // numberify any prerelease numeric ids - if (!m[4]) - this.prerelease = []; - else - this.prerelease = m[4].split('.').map(function(id) { - if (/^[0-9]+$/.test(id)) { - var num = +id; - if (num >= 0 && num < MAX_SAFE_INTEGER) - return num; - } - return id; - }); +/* harmony import */ var _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(197); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "observeOn", function() { return _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__["observeOn"]; }); - this.build = m[5] ? m[5].split('.') : []; - this.format(); -} +/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(315); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__["onErrorResumeNext"]; }); -SemVer.prototype.format = function() { - this.version = this.major + '.' + this.minor + '.' + this.patch; - if (this.prerelease.length) - this.version += '-' + this.prerelease.join('.'); - return this.version; -}; +/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(316); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairwise", function() { return _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__["pairwise"]; }); -SemVer.prototype.toString = function() { - return this.version; -}; +/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(317); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__["partition"]; }); -SemVer.prototype.compare = function(other) { - debug('SemVer.compare', this.version, this.loose, other); - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); +/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(319); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pluck", function() { return _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__["pluck"]; }); - return this.compareMain(other) || this.comparePre(other); -}; +/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(320); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__["publish"]; }); -SemVer.prototype.compareMain = function(other) { - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); +/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(321); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__["publishBehavior"]; }); - return compareIdentifiers(this.major, other.major) || - compareIdentifiers(this.minor, other.minor) || - compareIdentifiers(this.patch, other.patch); -}; +/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(322); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__["publishLast"]; }); -SemVer.prototype.comparePre = function(other) { - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); +/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(323); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__["publishReplay"]; }); - // NOT having a prerelease is > having one - if (this.prerelease.length && !other.prerelease.length) - return -1; - else if (!this.prerelease.length && other.prerelease.length) - return 1; - else if (!this.prerelease.length && !other.prerelease.length) - return 0; +/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(324); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "race", function() { return _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__["race"]; }); - var i = 0; - do { - var a = this.prerelease[i]; - var b = other.prerelease[i]; - debug('prerelease compare', i, a, b); - if (a === undefined && b === undefined) - return 0; - else if (b === undefined) - return 1; - else if (a === undefined) - return -1; - else if (a === b) - continue; - else - return compareIdentifiers(a, b); - } while (++i); -}; +/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(308); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__["reduce"]; }); -// preminor will bump the version up to the next minor release, and immediately -// down to pre-release. premajor and prepatch work the same way. -SemVer.prototype.inc = function(release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc('pre', identifier); - break; - case 'preminor': - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc('pre', identifier); - break; - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0; - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case 'prerelease': - if (this.prerelease.length === 0) - this.inc('patch', identifier); - this.inc('pre', identifier); - break; +/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(325); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__["repeat"]; }); - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) - this.major++; - this.minor = 0; - this.patch = 0; - this.prerelease = []; - break; - case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) - this.minor++; - this.patch = 0; - this.prerelease = []; - break; - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) - this.patch++; - this.prerelease = []; - break; - // This probably shouldn't be used publicly. - // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. - case 'pre': - if (this.prerelease.length === 0) - this.prerelease = [0]; - else { - var i = this.prerelease.length; - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++; - i = -2; - } - } - if (i === -1) // didn't increment anything - this.prerelease.push(0); - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) - this.prerelease = [identifier, 0]; - } else - this.prerelease = [identifier, 0]; - } - break; +/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(326); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeatWhen", function() { return _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__["repeatWhen"]; }); - default: - throw new Error('invalid increment argument: ' + release); - } - this.format(); - this.raw = this.version; - return this; -}; +/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(327); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__["retry"]; }); -exports.inc = inc; -function inc(version, release, loose, identifier) { - if (typeof(loose) === 'string') { - identifier = loose; - loose = undefined; - } +/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(328); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retryWhen", function() { return _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__["retryWhen"]; }); - try { - return new SemVer(version, loose).inc(release, identifier).version; - } catch (er) { - return null; - } -} +/* harmony import */ var _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(186); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "refCount", function() { return _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__["refCount"]; }); -exports.diff = diff; -function diff(version1, version2) { - if (eq(version1, version2)) { - return null; - } else { - var v1 = parse(version1); - var v2 = parse(version2); - if (v1.prerelease.length || v2.prerelease.length) { - for (var key in v1) { - if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) { - return 'pre'+key; - } - } - } - return 'prerelease'; - } - for (var key in v1) { - if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) { - return key; - } - } - } - } -} +/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(329); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sample", function() { return _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__["sample"]; }); -exports.compareIdentifiers = compareIdentifiers; +/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(330); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sampleTime", function() { return _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__["sampleTime"]; }); -var numeric = /^[0-9]+$/; -function compareIdentifiers(a, b) { - var anum = numeric.test(a); - var bnum = numeric.test(b); +/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(309); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__["scan"]; }); - if (anum && bnum) { - a = +a; - b = +b; - } +/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(331); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sequenceEqual", function() { return _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__["sequenceEqual"]; }); - return (anum && !bnum) ? -1 : - (bnum && !anum) ? 1 : - a < b ? -1 : - a > b ? 1 : - 0; -} +/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(332); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "share", function() { return _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__["share"]; }); -exports.rcompareIdentifiers = rcompareIdentifiers; -function rcompareIdentifiers(a, b) { - return compareIdentifiers(b, a); -} +/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(333); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shareReplay", function() { return _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__["shareReplay"]; }); -exports.major = major; -function major(a, loose) { - return new SemVer(a, loose).major; -} +/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(334); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "single", function() { return _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__["single"]; }); -exports.minor = minor; -function minor(a, loose) { - return new SemVer(a, loose).minor; -} +/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(335); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skip", function() { return _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__["skip"]; }); -exports.patch = patch; -function patch(a, loose) { - return new SemVer(a, loose).patch; -} +/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(336); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipLast", function() { return _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__["skipLast"]; }); -exports.compare = compare; -function compare(a, b, loose) { - return new SemVer(a, loose).compare(new SemVer(b, loose)); -} +/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(337); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipUntil", function() { return _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__["skipUntil"]; }); -exports.compareLoose = compareLoose; -function compareLoose(a, b) { - return compare(a, b, true); -} +/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(338); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipWhile", function() { return _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__["skipWhile"]; }); -exports.rcompare = rcompare; -function rcompare(a, b, loose) { - return compare(b, a, loose); -} +/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(339); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "startWith", function() { return _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__["startWith"]; }); -exports.sort = sort; -function sort(list, loose) { - return list.sort(function(a, b) { - return exports.compare(a, b, loose); - }); -} +/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(340); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__["subscribeOn"]; }); -exports.rsort = rsort; -function rsort(list, loose) { - return list.sort(function(a, b) { - return exports.rcompare(a, b, loose); - }); -} +/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(342); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__["switchAll"]; }); -exports.gt = gt; -function gt(a, b, loose) { - return compare(a, b, loose) > 0; -} +/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(343); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMap", function() { return _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__["switchMap"]; }); -exports.lt = lt; -function lt(a, b, loose) { - return compare(a, b, loose) < 0; -} +/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(344); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__["switchMapTo"]; }); -exports.eq = eq; -function eq(a, b, loose) { - return compare(a, b, loose) === 0; -} +/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(291); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "take", function() { return _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__["take"]; }); -exports.neq = neq; -function neq(a, b, loose) { - return compare(a, b, loose) !== 0; -} +/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(304); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeLast", function() { return _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__["takeLast"]; }); -exports.gte = gte; -function gte(a, b, loose) { - return compare(a, b, loose) >= 0; -} +/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(345); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeUntil", function() { return _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__["takeUntil"]; }); -exports.lte = lte; -function lte(a, b, loose) { - return compare(a, b, loose) <= 0; -} +/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(346); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeWhile", function() { return _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__["takeWhile"]; }); -exports.cmp = cmp; -function cmp(a, op, b, loose) { - var ret; - switch (op) { - case '===': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - ret = a === b; - break; - case '!==': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - ret = a !== b; - break; - case '': case '=': case '==': ret = eq(a, b, loose); break; - case '!=': ret = neq(a, b, loose); break; - case '>': ret = gt(a, b, loose); break; - case '>=': ret = gte(a, b, loose); break; - case '<': ret = lt(a, b, loose); break; - case '<=': ret = lte(a, b, loose); break; - default: throw new TypeError('Invalid operator: ' + op); - } - return ret; -} +/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(290); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__["tap"]; }); -exports.Comparator = Comparator; -function Comparator(comp, loose) { - if (comp instanceof Comparator) { - if (comp.loose === loose) - return comp; - else - comp = comp.value; - } +/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(347); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__["throttle"]; }); - if (!(this instanceof Comparator)) - return new Comparator(comp, loose); +/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(348); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttleTime", function() { return _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__["throttleTime"]; }); - debug('comparator', comp, loose); - this.loose = loose; - this.parse(comp); +/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(289); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwIfEmpty", function() { return _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__["throwIfEmpty"]; }); - if (this.semver === ANY) - this.value = ''; - else - this.value = this.operator + this.semver.version; +/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(349); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__["timeInterval"]; }); - debug('comp', this); -} +/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(350); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__["timeout"]; }); -var ANY = {}; -Comparator.prototype.parse = function(comp) { - var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var m = comp.match(r); +/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(351); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__["timeoutWith"]; }); - if (!m) - throw new TypeError('Invalid comparator: ' + comp); +/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(352); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timestamp", function() { return _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__["timestamp"]; }); - this.operator = m[1]; - if (this.operator === '=') - this.operator = ''; +/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(353); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__["toArray"]; }); - // if it literally is just '>' or '' then allow anything. - if (!m[2]) - this.semver = ANY; - else - this.semver = new SemVer(m[2], this.loose); -}; +/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(354); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__["window"]; }); -Comparator.prototype.toString = function() { - return this.value; -}; +/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(355); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowCount", function() { return _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__["windowCount"]; }); -Comparator.prototype.test = function(version) { - debug('Comparator.test', version, this.loose); +/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(356); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowTime", function() { return _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__["windowTime"]; }); - if (this.semver === ANY) - return true; +/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(357); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowToggle", function() { return _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__["windowToggle"]; }); - if (typeof version === 'string') - version = new SemVer(version, this.loose); +/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(358); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowWhen", function() { return _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__["windowWhen"]; }); - return cmp(version, this.operator, this.semver, this.loose); -}; +/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(359); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withLatestFrom", function() { return _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__["withLatestFrom"]; }); -Comparator.prototype.intersects = function(comp, loose) { - if (!(comp instanceof Comparator)) { - throw new TypeError('a Comparator is required'); - } +/* harmony import */ var _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(360); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__["zip"]; }); + +/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(361); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zipAll", function() { return _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__["zipAll"]; }); + +/** PURE_IMPORTS_START PURE_IMPORTS_END */ - var rangeTmp; - if (this.operator === '') { - rangeTmp = new Range(comp.value, loose); - return satisfies(this.value, rangeTmp, loose); - } else if (comp.operator === '') { - rangeTmp = new Range(this.value, loose); - return satisfies(comp.semver, rangeTmp, loose); - } - var sameDirectionIncreasing = - (this.operator === '>=' || this.operator === '>') && - (comp.operator === '>=' || comp.operator === '>'); - var sameDirectionDecreasing = - (this.operator === '<=' || this.operator === '<') && - (comp.operator === '<=' || comp.operator === '<'); - var sameSemVer = this.semver.version === comp.semver.version; - var differentDirectionsInclusive = - (this.operator === '>=' || this.operator === '<=') && - (comp.operator === '>=' || comp.operator === '<='); - var oppositeDirectionsLessThan = - cmp(this.semver, '<', comp.semver, loose) && - ((this.operator === '>=' || this.operator === '>') && - (comp.operator === '<=' || comp.operator === '<')); - var oppositeDirectionsGreaterThan = - cmp(this.semver, '>', comp.semver, loose) && - ((this.operator === '<=' || this.operator === '<') && - (comp.operator === '>=' || comp.operator === '>')); - return sameDirectionIncreasing || sameDirectionDecreasing || - (sameSemVer && differentDirectionsInclusive) || - oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; -}; -exports.Range = Range; -function Range(range, loose) { - if (range instanceof Range) { - if (range.loose === loose) { - return range; - } else { - return new Range(range.raw, loose); - } - } - if (range instanceof Comparator) { - return new Range(range.value, loose); - } - if (!(this instanceof Range)) - return new Range(range, loose); - this.loose = loose; - // First, split based on boolean or || - this.raw = range; - this.set = range.split(/\s*\|\|\s*/).map(function(range) { - return this.parseRange(range.trim()); - }, this).filter(function(c) { - // throw out any that are not relevant for whatever reason - return c.length; - }); - if (!this.set.length) { - throw new TypeError('Invalid SemVer Range: ' + range); - } - this.format(); -} -Range.prototype.format = function() { - this.range = this.set.map(function(comps) { - return comps.join(' ').trim(); - }).join('||').trim(); - return this.range; -}; -Range.prototype.toString = function() { - return this.range; -}; -Range.prototype.parseRange = function(range) { - var loose = this.loose; - range = range.trim(); - debug('range', range, loose); - // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]; - range = range.replace(hr, hyphenReplace); - debug('hyphen replace', range); - // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace); - debug('comparator trim', range, re[COMPARATORTRIM]); - // `~ 1.2.3` => `~1.2.3` - range = range.replace(re[TILDETRIM], tildeTrimReplace); - // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[CARETTRIM], caretTrimReplace); - // normalize spaces - range = range.split(/\s+/).join(' '); - // At this point, the range is completely trimmed and - // ready to be split into comparators. - var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var set = range.split(' ').map(function(comp) { - return parseComparator(comp, loose); - }).join(' ').split(/\s+/); - if (this.loose) { - // in loose mode, throw out any that are not valid comparators - set = set.filter(function(comp) { - return !!comp.match(compRe); - }); - } - set = set.map(function(comp) { - return new Comparator(comp, loose); - }); - return set; -}; -Range.prototype.intersects = function(range, loose) { - if (!(range instanceof Range)) { - throw new TypeError('a Range is required'); - } - return this.set.some(function(thisComparators) { - return thisComparators.every(function(thisComparator) { - return range.set.some(function(rangeComparators) { - return rangeComparators.every(function(rangeComparator) { - return thisComparator.intersects(rangeComparator, loose); - }); - }); - }); - }); -}; -// Mostly just for testing and legacy API reasons -exports.toComparators = toComparators; -function toComparators(range, loose) { - return new Range(range, loose).set.map(function(comp) { - return comp.map(function(c) { - return c.value; - }).join(' ').trim().split(' '); - }); -} -// comprised of xranges, tildes, stars, and gtlt's at this point. -// already replaced the hyphen ranges -// turn into a set of JUST comparators. -function parseComparator(comp, loose) { - debug('comp', comp); - comp = replaceCarets(comp, loose); - debug('caret', comp); - comp = replaceTildes(comp, loose); - debug('tildes', comp); - comp = replaceXRanges(comp, loose); - debug('xrange', comp); - comp = replaceStars(comp, loose); - debug('stars', comp); - return comp; -} -function isX(id) { - return !id || id.toLowerCase() === 'x' || id === '*'; -} -// ~, ~> --> * (any, kinda silly) -// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 -// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 -// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 -// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 -// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 -function replaceTildes(comp, loose) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceTilde(comp, loose); - }).join(' '); -} -function replaceTilde(comp, loose) { - var r = loose ? re[TILDELOOSE] : re[TILDE]; - return comp.replace(r, function(_, M, m, p, pr) { - debug('tilde', comp, _, M, m, p, pr); - var ret; - if (isX(M)) - ret = ''; - else if (isX(m)) - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - else if (isX(p)) - // ~1.2 == >=1.2.0 <1.3.0 - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - else if (pr) { - debug('replaceTilde pr', pr); - if (pr.charAt(0) !== '-') - pr = '-' + pr; - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - // ~1.2.3 == >=1.2.3 <1.3.0 - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0'; - debug('tilde return', ret); - return ret; - }); -} -// ^ --> * (any, kinda silly) -// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 -// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 -// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 -// ^1.2.3 --> >=1.2.3 <2.0.0 -// ^1.2.0 --> >=1.2.0 <2.0.0 -function replaceCarets(comp, loose) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceCaret(comp, loose); - }).join(' '); -} -function replaceCaret(comp, loose) { - debug('caret', comp, loose); - var r = loose ? re[CARETLOOSE] : re[CARET]; - return comp.replace(r, function(_, M, m, p, pr) { - debug('caret', comp, _, M, m, p, pr); - var ret; - if (isX(M)) - ret = ''; - else if (isX(m)) - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - else if (isX(p)) { - if (M === '0') - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - else - ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'; - } else if (pr) { - debug('replaceCaret pr', pr); - if (pr.charAt(0) !== '-') - pr = '-' + pr; - if (M === '0') { - if (m === '0') - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + m + '.' + (+p + 1); - else - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + (+M + 1) + '.0.0'; - } else { - debug('no pr'); - if (M === '0') { - if (m === '0') - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + m + '.' + (+p + 1); - else - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - ret = '>=' + M + '.' + m + '.' + p + - ' <' + (+M + 1) + '.0.0'; - } - debug('caret return', ret); - return ret; - }); -} -function replaceXRanges(comp, loose) { - debug('replaceXRanges', comp, loose); - return comp.split(/\s+/).map(function(comp) { - return replaceXRange(comp, loose); - }).join(' '); -} -function replaceXRange(comp, loose) { - comp = comp.trim(); - var r = loose ? re[XRANGELOOSE] : re[XRANGE]; - return comp.replace(r, function(ret, gtlt, M, m, p, pr) { - debug('xRange', comp, ret, gtlt, M, m, p, pr); - var xM = isX(M); - var xm = xM || isX(m); - var xp = xm || isX(p); - var anyX = xp; - if (gtlt === '=' && anyX) - gtlt = ''; - if (xM) { - if (gtlt === '>' || gtlt === '<') { - // nothing is allowed - ret = '<0.0.0'; - } else { - // nothing is forbidden - ret = '*'; - } - } else if (gtlt && anyX) { - // replace X with 0 - if (xm) - m = 0; - if (xp) - p = 0; - if (gtlt === '>') { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - // >1.2.3 => >= 1.2.4 - gtlt = '>='; - if (xm) { - M = +M + 1; - m = 0; - p = 0; - } else if (xp) { - m = +m + 1; - p = 0; - } - } else if (gtlt === '<=') { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - gtlt = '<'; - if (xm) - M = +M + 1; - else - m = +m + 1; - } - ret = gtlt + M + '.' + m + '.' + p; - } else if (xm) { - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - } else if (xp) { - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - } - debug('xRange return', ret); - return ret; - }); -} -// Because * is AND-ed with everything else in the comparator, -// and '' means "any version", just remove the *s entirely. -function replaceStars(comp, loose) { - debug('replaceStars', comp, loose); - // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(re[STAR], ''); -} -// This function is passed to string.replace(re[HYPHENRANGE]) -// M, m, patch, prerelease, build -// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 -// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do -// 1.2 - 3.4 => >=1.2.0 <3.5.0 -function hyphenReplace($0, - from, fM, fm, fp, fpr, fb, - to, tM, tm, tp, tpr, tb) { - if (isX(fM)) - from = ''; - else if (isX(fm)) - from = '>=' + fM + '.0.0'; - else if (isX(fp)) - from = '>=' + fM + '.' + fm + '.0'; - else - from = '>=' + from; - if (isX(tM)) - to = ''; - else if (isX(tm)) - to = '<' + (+tM + 1) + '.0.0'; - else if (isX(tp)) - to = '<' + tM + '.' + (+tm + 1) + '.0'; - else if (tpr) - to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr; - else - to = '<=' + to; - return (from + ' ' + to).trim(); -} -// if ANY of the sets match ALL of its comparators, then pass -Range.prototype.test = function(version) { - if (!version) - return false; - if (typeof version === 'string') - version = new SemVer(version, this.loose); - for (var i = 0; i < this.set.length; i++) { - if (testSet(this.set[i], version)) - return true; - } - return false; -}; -function testSet(set, version) { - for (var i = 0; i < set.length; i++) { - if (!set[i].test(version)) - return false; - } - if (version.prerelease.length) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for (var i = 0; i < set.length; i++) { - debug(set[i].semver); - if (set[i].semver === ANY) - continue; - if (set[i].semver.prerelease.length > 0) { - var allowed = set[i].semver; - if (allowed.major === version.major && - allowed.minor === version.minor && - allowed.patch === version.patch) - return true; - } - } - // Version has a -pre, but it's not one of the ones we like. - return false; - } - return true; -} -exports.satisfies = satisfies; -function satisfies(version, range, loose) { - try { - range = new Range(range, loose); - } catch (er) { - return false; - } - return range.test(version); -} -exports.maxSatisfying = maxSatisfying; -function maxSatisfying(versions, range, loose) { - var max = null; - var maxSV = null; - try { - var rangeObj = new Range(range, loose); - } catch (er) { - return null; - } - versions.forEach(function (v) { - if (rangeObj.test(v)) { // satisfies(v, range, loose) - if (!max || maxSV.compare(v) === -1) { // compare(max, v, true) - max = v; - maxSV = new SemVer(max, loose); - } - } - }) - return max; -} -exports.minSatisfying = minSatisfying; -function minSatisfying(versions, range, loose) { - var min = null; - var minSV = null; - try { - var rangeObj = new Range(range, loose); - } catch (er) { - return null; - } - versions.forEach(function (v) { - if (rangeObj.test(v)) { // satisfies(v, range, loose) - if (!min || minSV.compare(v) === 1) { // compare(min, v, true) - min = v; - minSV = new SemVer(min, loose); - } - } - }) - return min; -} -exports.validRange = validRange; -function validRange(range, loose) { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, loose).range || '*'; - } catch (er) { - return null; - } -} -// Determine if version is less than all the versions possible in the range -exports.ltr = ltr; -function ltr(version, range, loose) { - return outside(version, range, '<', loose); -} -// Determine if version is greater than all the versions possible in the range. -exports.gtr = gtr; -function gtr(version, range, loose) { - return outside(version, range, '>', loose); -} -exports.outside = outside; -function outside(version, range, hilo, loose) { - version = new SemVer(version, loose); - range = new Range(range, loose); - var gtfn, ltefn, ltfn, comp, ecomp; - switch (hilo) { - case '>': - gtfn = gt; - ltefn = lte; - ltfn = lt; - comp = '>'; - ecomp = '>='; - break; - case '<': - gtfn = lt; - ltefn = gte; - ltfn = gt; - comp = '<'; - ecomp = '<='; - break; - default: - throw new TypeError('Must provide a hilo val of "<" or ">"'); - } - // If it satisifes the range it is not outside - if (satisfies(version, range, loose)) { - return false; - } - // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. - for (var i = 0; i < range.set.length; ++i) { - var comparators = range.set[i]; - var high = null; - var low = null; - comparators.forEach(function(comparator) { - if (comparator.semver === ANY) { - comparator = new Comparator('>=0.0.0') - } - high = high || comparator; - low = low || comparator; - if (gtfn(comparator.semver, high.semver, loose)) { - high = comparator; - } else if (ltfn(comparator.semver, low.semver, loose)) { - low = comparator; - } - }); - // If the edge version comparator has a operator then our version - // isn't outside it - if (high.operator === comp || high.operator === ecomp) { - return false; - } - // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range - if ((!low.operator || low.operator === comp) && - ltefn(version, low.semver)) { - return false; - } else if (low.operator === ecomp && ltfn(version, low.semver)) { - return false; - } - } - return true; -} -exports.prerelease = prerelease; -function prerelease(version, loose) { - var parsed = parse(version, loose); - return (parsed && parsed.prerelease.length) ? parsed.prerelease : null; -} -exports.intersects = intersects; -function intersects(r1, r2, loose) { - r1 = new Range(r1, loose) - r2 = new Range(r2, loose) - return r1.intersects(r2) -} -exports.coerce = coerce; -function coerce(version) { - if (version instanceof SemVer) - return version; - if (typeof version !== 'string') - return null; - var match = version.match(re[COERCE]); - if (match == null) - return null; - return parse((match[1] || '0') + '.' + (match[2] || '0') + '.' + (match[3] || '0')); -} -/***/ }), -/* 238 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; -const isWin = process.platform === 'win32'; -function notFoundError(original, syscall) { - return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), { - code: 'ENOENT', - errno: 'ENOENT', - syscall: `${syscall} ${original.command}`, - path: original.command, - spawnargs: original.args, - }); -} -function hookChildProcess(cp, parsed) { - if (!isWin) { - return; - } - const originalEmit = cp.emit; - cp.emit = function (name, arg1) { - // If emitting "exit" event and exit code is 1, we need to check if - // the command exists and emit an "error" instead - // See https://github.com/IndigoUnited/node-cross-spawn/issues/16 - if (name === 'exit') { - const err = verifyENOENT(arg1, parsed, 'spawn'); - if (err) { - return originalEmit.call(cp, 'error', err); - } - } - return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params - }; -} -function verifyENOENT(status, parsed) { - if (isWin && status === 1 && !parsed.file) { - return notFoundError(parsed.original, 'spawn'); - } - return null; -} -function verifyENOENTSync(status, parsed) { - if (isWin && status === 1 && !parsed.file) { - return notFoundError(parsed.original, 'spawnSync'); - } - return null; -} -module.exports = { - hookChildProcess, - verifyENOENT, - verifyENOENTSync, - notFoundError, -}; -/***/ }), -/* 239 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; -module.exports = function (x) { - var lf = typeof x === 'string' ? '\n' : '\n'.charCodeAt(); - var cr = typeof x === 'string' ? '\r' : '\r'.charCodeAt(); - if (x[x.length - 1] === lf) { - x = x.slice(0, x.length - 1); - } - if (x[x.length - 1] === cr) { - x = x.slice(0, x.length - 1); - } - return x; -}; + + + +//# sourceMappingURL=index.js.map /***/ }), -/* 240 */ -/***/ (function(module, exports, __webpack_require__) { +/* 263 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "audit", function() { return audit; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(175); +/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(176); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -const path = __webpack_require__(5); -const pathKey = __webpack_require__(241); -module.exports = opts => { - opts = Object.assign({ - cwd: process.cwd(), - path: process.env[pathKey()] - }, opts); - let prev; - let pth = path.resolve(opts.cwd); - const ret = []; - while (prev !== pth) { - ret.push(path.join(pth, 'node_modules/.bin')); - prev = pth; - pth = path.resolve(pth, '..'); - } - // ensure the running `node` binary is used - ret.push(path.dirname(process.execPath)); +function audit(durationSelector) { + return function auditOperatorFunction(source) { + return source.lift(new AuditOperator(durationSelector)); + }; +} +var AuditOperator = /*@__PURE__*/ (function () { + function AuditOperator(durationSelector) { + this.durationSelector = durationSelector; + } + AuditOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector)); + }; + return AuditOperator; +}()); +var AuditSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AuditSubscriber, _super); + function AuditSubscriber(destination, durationSelector) { + var _this = _super.call(this, destination) || this; + _this.durationSelector = durationSelector; + _this.hasValue = false; + return _this; + } + AuditSubscriber.prototype._next = function (value) { + this.value = value; + this.hasValue = true; + if (!this.throttled) { + var duration = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_1__["tryCatch"])(this.durationSelector)(value); + if (duration === _util_errorObject__WEBPACK_IMPORTED_MODULE_2__["errorObject"]) { + this.destination.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_2__["errorObject"].e); + } + else { + var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, duration); + if (!innerSubscription || innerSubscription.closed) { + this.clearThrottle(); + } + else { + this.add(this.throttled = innerSubscription); + } + } + } + }; + AuditSubscriber.prototype.clearThrottle = function () { + var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled; + if (throttled) { + this.remove(throttled); + this.throttled = null; + throttled.unsubscribe(); + } + if (hasValue) { + this.value = null; + this.hasValue = false; + this.destination.next(value); + } + }; + AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) { + this.clearThrottle(); + }; + AuditSubscriber.prototype.notifyComplete = function () { + this.clearThrottle(); + }; + return AuditSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); +//# sourceMappingURL=audit.js.map - return ret.concat(opts.path).join(path.delimiter); -}; -module.exports.env = opts => { - opts = Object.assign({ - env: process.env - }, opts); +/***/ }), +/* 264 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - const env = Object.assign({}, opts.env); - const path = pathKey({env}); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return auditTime; }); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(211); +/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(263); +/* harmony import */ var _observable_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(259); +/** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */ - opts.path = env[path]; - env[path] = module.exports(opts); - return env; -}; + +function auditTime(duration, scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]; + } + return Object(_audit__WEBPACK_IMPORTED_MODULE_1__["audit"])(function () { return Object(_observable_timer__WEBPACK_IMPORTED_MODULE_2__["timer"])(duration, scheduler); }); +} +//# sourceMappingURL=auditTime.js.map /***/ }), -/* 241 */ -/***/ (function(module, exports, __webpack_require__) { +/* 265 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return buffer; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -module.exports = opts => { - opts = opts || {}; - - const env = opts.env || process.env; - const platform = opts.platform || process.platform; - if (platform !== 'win32') { - return 'PATH'; - } - return Object.keys(env).find(x => x.toUpperCase() === 'PATH') || 'Path'; -}; +function buffer(closingNotifier) { + return function bufferOperatorFunction(source) { + return source.lift(new BufferOperator(closingNotifier)); + }; +} +var BufferOperator = /*@__PURE__*/ (function () { + function BufferOperator(closingNotifier) { + this.closingNotifier = closingNotifier; + } + BufferOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier)); + }; + return BufferOperator; +}()); +var BufferSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferSubscriber, _super); + function BufferSubscriber(destination, closingNotifier) { + var _this = _super.call(this, destination) || this; + _this.buffer = []; + _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, closingNotifier)); + return _this; + } + BufferSubscriber.prototype._next = function (value) { + this.buffer.push(value); + }; + BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + var buffer = this.buffer; + this.buffer = []; + this.destination.next(buffer); + }; + return BufferSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=buffer.js.map /***/ }), -/* 242 */ -/***/ (function(module, exports, __webpack_require__) { +/* 266 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferCount", function() { return bufferCount; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -var isStream = module.exports = function (stream) { - return stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function'; -}; +function bufferCount(bufferSize, startBufferEvery) { + if (startBufferEvery === void 0) { + startBufferEvery = null; + } + return function bufferCountOperatorFunction(source) { + return source.lift(new BufferCountOperator(bufferSize, startBufferEvery)); + }; +} +var BufferCountOperator = /*@__PURE__*/ (function () { + function BufferCountOperator(bufferSize, startBufferEvery) { + this.bufferSize = bufferSize; + this.startBufferEvery = startBufferEvery; + if (!startBufferEvery || bufferSize === startBufferEvery) { + this.subscriberClass = BufferCountSubscriber; + } + else { + this.subscriberClass = BufferSkipCountSubscriber; + } + } + BufferCountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery)); + }; + return BufferCountOperator; +}()); +var BufferCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferCountSubscriber, _super); + function BufferCountSubscriber(destination, bufferSize) { + var _this = _super.call(this, destination) || this; + _this.bufferSize = bufferSize; + _this.buffer = []; + return _this; + } + BufferCountSubscriber.prototype._next = function (value) { + var buffer = this.buffer; + buffer.push(value); + if (buffer.length == this.bufferSize) { + this.destination.next(buffer); + this.buffer = []; + } + }; + BufferCountSubscriber.prototype._complete = function () { + var buffer = this.buffer; + if (buffer.length > 0) { + this.destination.next(buffer); + } + _super.prototype._complete.call(this); + }; + return BufferCountSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +var BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferSkipCountSubscriber, _super); + function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) { + var _this = _super.call(this, destination) || this; + _this.bufferSize = bufferSize; + _this.startBufferEvery = startBufferEvery; + _this.buffers = []; + _this.count = 0; + return _this; + } + BufferSkipCountSubscriber.prototype._next = function (value) { + var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count; + this.count++; + if (count % startBufferEvery === 0) { + buffers.push([]); + } + for (var i = buffers.length; i--;) { + var buffer = buffers[i]; + buffer.push(value); + if (buffer.length === bufferSize) { + buffers.splice(i, 1); + this.destination.next(buffer); + } + } + }; + BufferSkipCountSubscriber.prototype._complete = function () { + var _a = this, buffers = _a.buffers, destination = _a.destination; + while (buffers.length > 0) { + var buffer = buffers.shift(); + if (buffer.length > 0) { + destination.next(buffer); + } + } + _super.prototype._complete.call(this); + }; + return BufferSkipCountSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=bufferCount.js.map -isStream.writable = function (stream) { - return isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object'; -}; -isStream.readable = function (stream) { - return isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object'; -}; +/***/ }), +/* 267 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -isStream.duplex = function (stream) { - return isStream.writable(stream) && isStream.readable(stream); -}; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferTime", function() { return bufferTime; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(211); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(166); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(201); +/** PURE_IMPORTS_START tslib,_scheduler_async,_Subscriber,_util_isScheduler PURE_IMPORTS_END */ -isStream.transform = function (stream) { - return isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object'; -}; + + + +function bufferTime(bufferTimeSpan) { + var length = arguments.length; + var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(arguments[arguments.length - 1])) { + scheduler = arguments[arguments.length - 1]; + length--; + } + var bufferCreationInterval = null; + if (length >= 2) { + bufferCreationInterval = arguments[1]; + } + var maxBufferSize = Number.POSITIVE_INFINITY; + if (length >= 3) { + maxBufferSize = arguments[2]; + } + return function bufferTimeOperatorFunction(source) { + return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler)); + }; +} +var BufferTimeOperator = /*@__PURE__*/ (function () { + function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { + this.bufferTimeSpan = bufferTimeSpan; + this.bufferCreationInterval = bufferCreationInterval; + this.maxBufferSize = maxBufferSize; + this.scheduler = scheduler; + } + BufferTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler)); + }; + return BufferTimeOperator; +}()); +var Context = /*@__PURE__*/ (function () { + function Context() { + this.buffer = []; + } + return Context; +}()); +var BufferTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferTimeSubscriber, _super); + function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { + var _this = _super.call(this, destination) || this; + _this.bufferTimeSpan = bufferTimeSpan; + _this.bufferCreationInterval = bufferCreationInterval; + _this.maxBufferSize = maxBufferSize; + _this.scheduler = scheduler; + _this.contexts = []; + var context = _this.openContext(); + _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0; + if (_this.timespanOnly) { + var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan }; + _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } + else { + var closeState = { subscriber: _this, context: context }; + var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler }; + _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState)); + _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState)); + } + return _this; + } + BufferTimeSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + var len = contexts.length; + var filledBufferContext; + for (var i = 0; i < len; i++) { + var context_1 = contexts[i]; + var buffer = context_1.buffer; + buffer.push(value); + if (buffer.length == this.maxBufferSize) { + filledBufferContext = context_1; + } + } + if (filledBufferContext) { + this.onBufferFull(filledBufferContext); + } + }; + BufferTimeSubscriber.prototype._error = function (err) { + this.contexts.length = 0; + _super.prototype._error.call(this, err); + }; + BufferTimeSubscriber.prototype._complete = function () { + var _a = this, contexts = _a.contexts, destination = _a.destination; + while (contexts.length > 0) { + var context_2 = contexts.shift(); + destination.next(context_2.buffer); + } + _super.prototype._complete.call(this); + }; + BufferTimeSubscriber.prototype._unsubscribe = function () { + this.contexts = null; + }; + BufferTimeSubscriber.prototype.onBufferFull = function (context) { + this.closeContext(context); + var closeAction = context.closeAction; + closeAction.unsubscribe(); + this.remove(closeAction); + if (!this.closed && this.timespanOnly) { + context = this.openContext(); + var bufferTimeSpan = this.bufferTimeSpan; + var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan }; + this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } + }; + BufferTimeSubscriber.prototype.openContext = function () { + var context = new Context(); + this.contexts.push(context); + return context; + }; + BufferTimeSubscriber.prototype.closeContext = function (context) { + this.destination.next(context.buffer); + var contexts = this.contexts; + var spliceIndex = contexts ? contexts.indexOf(context) : -1; + if (spliceIndex >= 0) { + contexts.splice(contexts.indexOf(context), 1); + } + }; + return BufferTimeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__["Subscriber"])); +function dispatchBufferTimeSpanOnly(state) { + var subscriber = state.subscriber; + var prevContext = state.context; + if (prevContext) { + subscriber.closeContext(prevContext); + } + if (!subscriber.closed) { + state.context = subscriber.openContext(); + state.context.closeAction = this.schedule(state, state.bufferTimeSpan); + } +} +function dispatchBufferCreation(state) { + var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler; + var context = subscriber.openContext(); + var action = this; + if (!subscriber.closed) { + subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context })); + action.schedule(state, bufferCreationInterval); + } +} +function dispatchBufferClose(arg) { + var subscriber = arg.subscriber, context = arg.context; + subscriber.closeContext(context); +} +//# sourceMappingURL=bufferTime.js.map /***/ }), -/* 243 */ -/***/ (function(module, exports, __webpack_require__) { +/* 268 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferToggle", function() { return bufferToggle; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(225); +/** PURE_IMPORTS_START tslib,_Subscription,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */ -const pump = __webpack_require__(244); -const bufferStream = __webpack_require__(246); - -class MaxBufferError extends Error { - constructor() { - super('maxBuffer exceeded'); - this.name = 'MaxBufferError'; - } -} - -function getStream(inputStream, options) { - if (!inputStream) { - return Promise.reject(new Error('Expected a stream')); - } - - options = Object.assign({maxBuffer: Infinity}, options); - - const {maxBuffer} = options; - - let stream; - return new Promise((resolve, reject) => { - const rejectPromise = error => { - if (error) { // A null check - error.bufferedData = stream.getBufferedValue(); - } - reject(error); - }; - stream = pump(inputStream, bufferStream(options), error => { - if (error) { - rejectPromise(error); - return; - } - resolve(); - }); - stream.on('data', () => { - if (stream.getBufferedLength() > maxBuffer) { - rejectPromise(new MaxBufferError()); - } - }); - }).then(() => stream.getBufferedValue()); +function bufferToggle(openings, closingSelector) { + return function bufferToggleOperatorFunction(source) { + return source.lift(new BufferToggleOperator(openings, closingSelector)); + }; } - -module.exports = getStream; -module.exports.buffer = (stream, options) => getStream(stream, Object.assign({}, options, {encoding: 'buffer'})); -module.exports.array = (stream, options) => getStream(stream, Object.assign({}, options, {array: true})); -module.exports.MaxBufferError = MaxBufferError; +var BufferToggleOperator = /*@__PURE__*/ (function () { + function BufferToggleOperator(openings, closingSelector) { + this.openings = openings; + this.closingSelector = closingSelector; + } + BufferToggleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector)); + }; + return BufferToggleOperator; +}()); +var BufferToggleSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferToggleSubscriber, _super); + function BufferToggleSubscriber(destination, openings, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.openings = openings; + _this.closingSelector = closingSelector; + _this.contexts = []; + _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, openings)); + return _this; + } + BufferToggleSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + var len = contexts.length; + for (var i = 0; i < len; i++) { + contexts[i].buffer.push(value); + } + }; + BufferToggleSubscriber.prototype._error = function (err) { + var contexts = this.contexts; + while (contexts.length > 0) { + var context_1 = contexts.shift(); + context_1.subscription.unsubscribe(); + context_1.buffer = null; + context_1.subscription = null; + } + this.contexts = null; + _super.prototype._error.call(this, err); + }; + BufferToggleSubscriber.prototype._complete = function () { + var contexts = this.contexts; + while (contexts.length > 0) { + var context_2 = contexts.shift(); + this.destination.next(context_2.buffer); + context_2.subscription.unsubscribe(); + context_2.buffer = null; + context_2.subscription = null; + } + this.contexts = null; + _super.prototype._complete.call(this); + }; + BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue); + }; + BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) { + this.closeBuffer(innerSub.context); + }; + BufferToggleSubscriber.prototype.openBuffer = function (value) { + try { + var closingSelector = this.closingSelector; + var closingNotifier = closingSelector.call(this, value); + if (closingNotifier) { + this.trySubscribe(closingNotifier); + } + } + catch (err) { + this._error(err); + } + }; + BufferToggleSubscriber.prototype.closeBuffer = function (context) { + var contexts = this.contexts; + if (contexts && context) { + var buffer = context.buffer, subscription = context.subscription; + this.destination.next(buffer); + contexts.splice(contexts.indexOf(context), 1); + this.remove(subscription); + subscription.unsubscribe(); + } + }; + BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) { + var contexts = this.contexts; + var buffer = []; + var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + var context = { buffer: buffer, subscription: subscription }; + contexts.push(context); + var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, closingNotifier, context); + if (!innerSubscription || innerSubscription.closed) { + this.closeBuffer(context); + } + else { + innerSubscription.context = context; + this.add(innerSubscription); + subscription.add(innerSubscription); + } + }; + return BufferToggleSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); +//# sourceMappingURL=bufferToggle.js.map /***/ }), -/* 244 */ -/***/ (function(module, exports, __webpack_require__) { - -var once = __webpack_require__(71) -var eos = __webpack_require__(245) -var fs = __webpack_require__(13) // we only need fs to get the ReadStream and WriteStream prototypes +/* 269 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var noop = function () {} -var ancient = /^v?\.0/.test(process.version) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferWhen", function() { return bufferWhen; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(175); +/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(176); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_Subscription,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -var isFn = function (fn) { - return typeof fn === 'function' -} -var isFS = function (stream) { - if (!ancient) return false // newer node version do not need to care about fs is a special way - if (!fs) return false // browser - return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close) -} -var isRequest = function (stream) { - return stream.setHeader && isFn(stream.abort) -} -var destroyer = function (stream, reading, writing, callback) { - callback = once(callback) - var closed = false - stream.on('close', function () { - closed = true - }) - eos(stream, {readable: reading, writable: writing}, function (err) { - if (err) return callback(err) - closed = true - callback() - }) +function bufferWhen(closingSelector) { + return function (source) { + return source.lift(new BufferWhenOperator(closingSelector)); + }; +} +var BufferWhenOperator = /*@__PURE__*/ (function () { + function BufferWhenOperator(closingSelector) { + this.closingSelector = closingSelector; + } + BufferWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector)); + }; + return BufferWhenOperator; +}()); +var BufferWhenSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferWhenSubscriber, _super); + function BufferWhenSubscriber(destination, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.closingSelector = closingSelector; + _this.subscribing = false; + _this.openBuffer(); + return _this; + } + BufferWhenSubscriber.prototype._next = function (value) { + this.buffer.push(value); + }; + BufferWhenSubscriber.prototype._complete = function () { + var buffer = this.buffer; + if (buffer) { + this.destination.next(buffer); + } + _super.prototype._complete.call(this); + }; + BufferWhenSubscriber.prototype._unsubscribe = function () { + this.buffer = null; + this.subscribing = false; + }; + BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.openBuffer(); + }; + BufferWhenSubscriber.prototype.notifyComplete = function () { + if (this.subscribing) { + this.complete(); + } + else { + this.openBuffer(); + } + }; + BufferWhenSubscriber.prototype.openBuffer = function () { + var closingSubscription = this.closingSubscription; + if (closingSubscription) { + this.remove(closingSubscription); + closingSubscription.unsubscribe(); + } + var buffer = this.buffer; + if (this.buffer) { + this.destination.next(buffer); + } + this.buffer = []; + var closingNotifier = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(this.closingSelector)(); + if (closingNotifier === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) { + this.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"].e); + } + else { + closingSubscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + this.closingSubscription = closingSubscription; + this.add(closingSubscription); + this.subscribing = true; + closingSubscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, closingNotifier)); + this.subscribing = false; + } + }; + return BufferWhenSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"])); +//# sourceMappingURL=bufferWhen.js.map - var destroyed = false - return function (err) { - if (closed) return - if (destroyed) return - destroyed = true - if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks - if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want +/***/ }), +/* 270 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (isFn(stream.destroy)) return stream.destroy() +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "catchError", function() { return catchError; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - callback(err || new Error('stream was destroyed')) - } -} -var call = function (fn) { - fn() -} -var pipe = function (from, to) { - return from.pipe(to) +function catchError(selector) { + return function catchErrorOperatorFunction(source) { + var operator = new CatchOperator(selector); + var caught = source.lift(operator); + return (operator.caught = caught); + }; } +var CatchOperator = /*@__PURE__*/ (function () { + function CatchOperator(selector) { + this.selector = selector; + } + CatchOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught)); + }; + return CatchOperator; +}()); +var CatchSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CatchSubscriber, _super); + function CatchSubscriber(destination, selector, caught) { + var _this = _super.call(this, destination) || this; + _this.selector = selector; + _this.caught = caught; + return _this; + } + CatchSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var result = void 0; + try { + result = this.selector(err, this.caught); + } + catch (err2) { + _super.prototype.error.call(this, err2); + return; + } + this._unsubscribeAndRecycle(); + this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, result)); + } + }; + return CatchSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=catchError.js.map -var pump = function () { - var streams = Array.prototype.slice.call(arguments) - var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop - if (Array.isArray(streams[0])) streams = streams[0] - if (streams.length < 2) throw new Error('pump requires two streams per minimum') +/***/ }), +/* 271 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - var error - var destroys = streams.map(function (stream, i) { - var reading = i < streams.length - 1 - var writing = i > 0 - return destroyer(stream, reading, writing, function (err) { - if (!error) error = err - if (err) destroys.forEach(call) - if (reading) return - destroys.forEach(call) - callback(error) - }) - }) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineAll", function() { return combineAll; }); +/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(224); +/** PURE_IMPORTS_START _observable_combineLatest PURE_IMPORTS_END */ - return streams.reduce(pipe) +function combineAll(project) { + return function (source) { return source.lift(new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__["CombineLatestOperator"](project)); }; } - -module.exports = pump +//# sourceMappingURL=combineAll.js.map /***/ }), -/* 245 */ -/***/ (function(module, exports, __webpack_require__) { - -var once = __webpack_require__(71); - -var noop = function() {}; - -var isRequest = function(stream) { - return stream.setHeader && typeof stream.abort === 'function'; -}; +/* 272 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var isChildProcess = function(stream) { - return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 -}; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return combineLatest; }); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(173); +/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(224); +/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(236); +/** PURE_IMPORTS_START _util_isArray,_observable_combineLatest,_observable_from PURE_IMPORTS_END */ -var eos = function(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts); - if (!opts) opts = {}; - callback = once(callback || noop); - var ws = stream._writableState; - var rs = stream._readableState; - var readable = opts.readable || (opts.readable !== false && stream.readable); - var writable = opts.writable || (opts.writable !== false && stream.writable); +var none = {}; +function combineLatest() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var project = null; + if (typeof observables[observables.length - 1] === 'function') { + project = observables.pop(); + } + if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(observables[0])) { + observables = observables[0].slice(); + } + return function (source) { return source.lift.call(Object(_observable_from__WEBPACK_IMPORTED_MODULE_2__["from"])([source].concat(observables)), new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_1__["CombineLatestOperator"](project)); }; +} +//# sourceMappingURL=combineLatest.js.map - var onlegacyfinish = function() { - if (!stream.writable) onfinish(); - }; - var onfinish = function() { - writable = false; - if (!readable) callback.call(stream); - }; +/***/ }), +/* 273 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - var onend = function() { - readable = false; - if (!writable) callback.call(stream); - }; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return concat; }); +/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(235); +/** PURE_IMPORTS_START _observable_concat PURE_IMPORTS_END */ - var onexit = function(exitCode) { - callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null); - }; +function concat() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function (source) { return source.lift.call(_observable_concat__WEBPACK_IMPORTED_MODULE_0__["concat"].apply(void 0, [source].concat(observables))); }; +} +//# sourceMappingURL=concat.js.map - var onerror = function(err) { - callback.call(stream, err); - }; - var onclose = function() { - if (readable && !(rs && rs.ended)) return callback.call(stream, new Error('premature close')); - if (writable && !(ws && ws.ended)) return callback.call(stream, new Error('premature close')); - }; +/***/ }), +/* 274 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - var onrequest = function() { - stream.req.on('finish', onfinish); - }; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatMap", function() { return concatMap; }); +/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(244); +/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */ - if (isRequest(stream)) { - stream.on('complete', onfinish); - stream.on('abort', onclose); - if (stream.req) onrequest(); - else stream.on('request', onrequest); - } else if (writable && !ws) { // legacy streams - stream.on('end', onlegacyfinish); - stream.on('close', onlegacyfinish); - } +function concatMap(project, resultSelector) { + return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(project, resultSelector, 1); +} +//# sourceMappingURL=concatMap.js.map - if (isChildProcess(stream)) stream.on('exit', onexit); - stream.on('end', onend); - stream.on('finish', onfinish); - if (opts.error !== false) stream.on('error', onerror); - stream.on('close', onclose); +/***/ }), +/* 275 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return function() { - stream.removeListener('complete', onfinish); - stream.removeListener('abort', onclose); - stream.removeListener('request', onrequest); - if (stream.req) stream.req.removeListener('finish', onfinish); - stream.removeListener('end', onlegacyfinish); - stream.removeListener('close', onlegacyfinish); - stream.removeListener('finish', onfinish); - stream.removeListener('exit', onexit); - stream.removeListener('end', onend); - stream.removeListener('error', onerror); - stream.removeListener('close', onclose); - }; -}; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return concatMapTo; }); +/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(274); +/** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */ -module.exports = eos; +function concatMapTo(innerObservable, resultSelector) { + return Object(_concatMap__WEBPACK_IMPORTED_MODULE_0__["concatMap"])(function () { return innerObservable; }, resultSelector); +} +//# sourceMappingURL=concatMapTo.js.map /***/ }), -/* 246 */ -/***/ (function(module, exports, __webpack_require__) { +/* 276 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "count", function() { return count; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -const {PassThrough} = __webpack_require__(39); -module.exports = options => { - options = Object.assign({}, options); +function count(predicate) { + return function (source) { return source.lift(new CountOperator(predicate, source)); }; +} +var CountOperator = /*@__PURE__*/ (function () { + function CountOperator(predicate, source) { + this.predicate = predicate; + this.source = source; + } + CountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source)); + }; + return CountOperator; +}()); +var CountSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CountSubscriber, _super); + function CountSubscriber(destination, predicate, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.count = 0; + _this.index = 0; + return _this; + } + CountSubscriber.prototype._next = function (value) { + if (this.predicate) { + this._tryPredicate(value); + } + else { + this.count++; + } + }; + CountSubscriber.prototype._tryPredicate = function (value) { + var result; + try { + result = this.predicate(value, this.index++, this.source); + } + catch (err) { + this.destination.error(err); + return; + } + if (result) { + this.count++; + } + }; + CountSubscriber.prototype._complete = function () { + this.destination.next(this.count); + this.destination.complete(); + }; + return CountSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=count.js.map - const {array} = options; - let {encoding} = options; - const buffer = encoding === 'buffer'; - let objectMode = false; - if (array) { - objectMode = !(encoding || buffer); - } else { - encoding = encoding || 'utf8'; - } +/***/ }), +/* 277 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - if (buffer) { - encoding = null; - } - let len = 0; - const ret = []; - const stream = new PassThrough({objectMode}); - if (encoding) { - stream.setEncoding(encoding); - } +function debounce(durationSelector) { + return function (source) { return source.lift(new DebounceOperator(durationSelector)); }; +} +var DebounceOperator = /*@__PURE__*/ (function () { + function DebounceOperator(durationSelector) { + this.durationSelector = durationSelector; + } + DebounceOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector)); + }; + return DebounceOperator; +}()); +var DebounceSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DebounceSubscriber, _super); + function DebounceSubscriber(destination, durationSelector) { + var _this = _super.call(this, destination) || this; + _this.durationSelector = durationSelector; + _this.hasValue = false; + _this.durationSubscription = null; + return _this; + } + DebounceSubscriber.prototype._next = function (value) { + try { + var result = this.durationSelector.call(this, value); + if (result) { + this._tryNext(value, result); + } + } + catch (err) { + this.destination.error(err); + } + }; + DebounceSubscriber.prototype._complete = function () { + this.emitValue(); + this.destination.complete(); + }; + DebounceSubscriber.prototype._tryNext = function (value, duration) { + var subscription = this.durationSubscription; + this.value = value; + this.hasValue = true; + if (subscription) { + subscription.unsubscribe(); + this.remove(subscription); + } + subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, duration); + if (subscription && !subscription.closed) { + this.add(this.durationSubscription = subscription); + } + }; + DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.emitValue(); + }; + DebounceSubscriber.prototype.notifyComplete = function () { + this.emitValue(); + }; + DebounceSubscriber.prototype.emitValue = function () { + if (this.hasValue) { + var value = this.value; + var subscription = this.durationSubscription; + if (subscription) { + this.durationSubscription = null; + subscription.unsubscribe(); + this.remove(subscription); + } + this.value = null; + this.hasValue = false; + _super.prototype._next.call(this, value); + } + }; + return DebounceSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=debounce.js.map - stream.on('data', chunk => { - ret.push(chunk); - if (objectMode) { - len = ret.length; - } else { - len += chunk.length; - } - }); +/***/ }), +/* 278 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - stream.getBufferedValue = () => { - if (array) { - return ret; - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounceTime", function() { return debounceTime; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(211); +/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */ - return buffer ? Buffer.concat(ret, len) : ret.join(''); - }; - stream.getBufferedLength = () => len; - return stream; -}; +function debounceTime(dueTime, scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"]; + } + return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); }; +} +var DebounceTimeOperator = /*@__PURE__*/ (function () { + function DebounceTimeOperator(dueTime, scheduler) { + this.dueTime = dueTime; + this.scheduler = scheduler; + } + DebounceTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler)); + }; + return DebounceTimeOperator; +}()); +var DebounceTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DebounceTimeSubscriber, _super); + function DebounceTimeSubscriber(destination, dueTime, scheduler) { + var _this = _super.call(this, destination) || this; + _this.dueTime = dueTime; + _this.scheduler = scheduler; + _this.debouncedSubscription = null; + _this.lastValue = null; + _this.hasValue = false; + return _this; + } + DebounceTimeSubscriber.prototype._next = function (value) { + this.clearDebounce(); + this.lastValue = value; + this.hasValue = true; + this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this)); + }; + DebounceTimeSubscriber.prototype._complete = function () { + this.debouncedNext(); + this.destination.complete(); + }; + DebounceTimeSubscriber.prototype.debouncedNext = function () { + this.clearDebounce(); + if (this.hasValue) { + var lastValue = this.lastValue; + this.lastValue = null; + this.hasValue = false; + this.destination.next(lastValue); + } + }; + DebounceTimeSubscriber.prototype.clearDebounce = function () { + var debouncedSubscription = this.debouncedSubscription; + if (debouncedSubscription !== null) { + this.remove(debouncedSubscription); + debouncedSubscription.unsubscribe(); + this.debouncedSubscription = null; + } + }; + return DebounceTimeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +function dispatchNext(subscriber) { + subscriber.debouncedNext(); +} +//# sourceMappingURL=debounceTime.js.map /***/ }), -/* 247 */ -/***/ (function(module, exports, __webpack_require__) { +/* 279 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultIfEmpty", function() { return defaultIfEmpty; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -module.exports = (promise, onFinally) => { - onFinally = onFinally || (() => {}); - return promise.then( - val => new Promise(resolve => { - resolve(onFinally()); - }).then(() => val), - err => new Promise(resolve => { - resolve(onFinally()); - }).then(() => { - throw err; - }) - ); -}; +function defaultIfEmpty(defaultValue) { + if (defaultValue === void 0) { + defaultValue = null; + } + return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); }; +} +var DefaultIfEmptyOperator = /*@__PURE__*/ (function () { + function DefaultIfEmptyOperator(defaultValue) { + this.defaultValue = defaultValue; + } + DefaultIfEmptyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue)); + }; + return DefaultIfEmptyOperator; +}()); +var DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DefaultIfEmptySubscriber, _super); + function DefaultIfEmptySubscriber(destination, defaultValue) { + var _this = _super.call(this, destination) || this; + _this.defaultValue = defaultValue; + _this.isEmpty = true; + return _this; + } + DefaultIfEmptySubscriber.prototype._next = function (value) { + this.isEmpty = false; + this.destination.next(value); + }; + DefaultIfEmptySubscriber.prototype._complete = function () { + if (this.isEmpty) { + this.destination.next(this.defaultValue); + } + this.destination.complete(); + }; + return DefaultIfEmptySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=defaultIfEmpty.js.map /***/ }), -/* 248 */ -/***/ (function(module, exports, __webpack_require__) { +/* 280 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return delay; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(211); +/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(281); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(166); +/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(198); +/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */ -// Older verions of Node.js might not have `util.getSystemErrorName()`. -// In that case, fall back to a deprecated internal. -const util = __webpack_require__(14); -let uv; -if (typeof util.getSystemErrorName === 'function') { - module.exports = util.getSystemErrorName; -} else { - try { - uv = process.binding('uv'); - if (typeof uv.errname !== 'function') { - throw new TypeError('uv.errname is not a function'); - } - } catch (err) { - console.error('execa/lib/errname: unable to establish process.binding(\'uv\')', err); - uv = null; - } - module.exports = code => errname(uv, code); +function delay(delay, scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; + } + var absoluteDelay = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__["isDate"])(delay); + var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay); + return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); }; } +var DelayOperator = /*@__PURE__*/ (function () { + function DelayOperator(delay, scheduler) { + this.delay = delay; + this.scheduler = scheduler; + } + DelayOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler)); + }; + return DelayOperator; +}()); +var DelaySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DelaySubscriber, _super); + function DelaySubscriber(destination, delay, scheduler) { + var _this = _super.call(this, destination) || this; + _this.delay = delay; + _this.scheduler = scheduler; + _this.queue = []; + _this.active = false; + _this.errored = false; + return _this; + } + DelaySubscriber.dispatch = function (state) { + var source = state.source; + var queue = source.queue; + var scheduler = state.scheduler; + var destination = state.destination; + while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) { + queue.shift().notification.observe(destination); + } + if (queue.length > 0) { + var delay_1 = Math.max(0, queue[0].time - scheduler.now()); + this.schedule(state, delay_1); + } + else { + this.unsubscribe(); + source.active = false; + } + }; + DelaySubscriber.prototype._schedule = function (scheduler) { + this.active = true; + this.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { + source: this, destination: this.destination, scheduler: scheduler + })); + }; + DelaySubscriber.prototype.scheduleNotification = function (notification) { + if (this.errored === true) { + return; + } + var scheduler = this.scheduler; + var message = new DelayMessage(scheduler.now() + this.delay, notification); + this.queue.push(message); + if (this.active === false) { + this._schedule(scheduler); + } + }; + DelaySubscriber.prototype._next = function (value) { + this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_4__["Notification"].createNext(value)); + }; + DelaySubscriber.prototype._error = function (err) { + this.errored = true; + this.queue = []; + this.destination.error(err); + }; + DelaySubscriber.prototype._complete = function () { + this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_4__["Notification"].createComplete()); + }; + return DelaySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"])); +var DelayMessage = /*@__PURE__*/ (function () { + function DelayMessage(time, notification) { + this.time = time; + this.notification = notification; + } + return DelayMessage; +}()); +//# sourceMappingURL=delay.js.map -// Used for testing the fallback behavior -module.exports.__test__ = errname; - -function errname(uv, code) { - if (uv) { - return uv.errname(code); - } - if (!(code < 0)) { - throw new Error('err >= 0'); - } +/***/ }), +/* 281 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return `Unknown system error ${code}`; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDate", function() { return isDate; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function isDate(value) { + return value instanceof Date && !isNaN(+value); } - +//# sourceMappingURL=isDate.js.map /***/ }), -/* 249 */ -/***/ (function(module, exports, __webpack_require__) { +/* 282 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delayWhen", function() { return delayWhen; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(164); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -const alias = ['stdin', 'stdout', 'stderr']; - -const hasAlias = opts => alias.some(x => Boolean(opts[x])); - -module.exports = opts => { - if (!opts) { - return null; - } - - if (opts.stdio && hasAlias(opts)) { - throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${alias.map(x => `\`${x}\``).join(', ')}`); - } - - if (typeof opts.stdio === 'string') { - return opts.stdio; - } - - const stdio = opts.stdio || []; - - if (!Array.isArray(stdio)) { - throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``); - } - - const result = []; - const len = Math.max(stdio.length, alias.length); - for (let i = 0; i < len; i++) { - let value = null; - if (stdio[i] !== undefined) { - value = stdio[i]; - } else if (opts[alias[i]] !== undefined) { - value = opts[alias[i]]; - } - result[i] = value; - } - return result; -}; +function delayWhen(delayDurationSelector, subscriptionDelay) { + if (subscriptionDelay) { + return function (source) { + return new SubscriptionDelayObservable(source, subscriptionDelay) + .lift(new DelayWhenOperator(delayDurationSelector)); + }; + } + return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); }; +} +var DelayWhenOperator = /*@__PURE__*/ (function () { + function DelayWhenOperator(delayDurationSelector) { + this.delayDurationSelector = delayDurationSelector; + } + DelayWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector)); + }; + return DelayWhenOperator; +}()); +var DelayWhenSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DelayWhenSubscriber, _super); + function DelayWhenSubscriber(destination, delayDurationSelector) { + var _this = _super.call(this, destination) || this; + _this.delayDurationSelector = delayDurationSelector; + _this.completed = false; + _this.delayNotifierSubscriptions = []; + return _this; + } + DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(outerValue); + this.removeSubscription(innerSub); + this.tryComplete(); + }; + DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) { + this._error(error); + }; + DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) { + var value = this.removeSubscription(innerSub); + if (value) { + this.destination.next(value); + } + this.tryComplete(); + }; + DelayWhenSubscriber.prototype._next = function (value) { + try { + var delayNotifier = this.delayDurationSelector(value); + if (delayNotifier) { + this.tryDelay(delayNotifier, value); + } + } + catch (err) { + this.destination.error(err); + } + }; + DelayWhenSubscriber.prototype._complete = function () { + this.completed = true; + this.tryComplete(); + }; + DelayWhenSubscriber.prototype.removeSubscription = function (subscription) { + subscription.unsubscribe(); + var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription); + if (subscriptionIdx !== -1) { + this.delayNotifierSubscriptions.splice(subscriptionIdx, 1); + } + return subscription.outerValue; + }; + DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) { + var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, delayNotifier, value); + if (notifierSubscription && !notifierSubscription.closed) { + this.add(notifierSubscription); + this.delayNotifierSubscriptions.push(notifierSubscription); + } + }; + DelayWhenSubscriber.prototype.tryComplete = function () { + if (this.completed && this.delayNotifierSubscriptions.length === 0) { + this.destination.complete(); + } + }; + return DelayWhenSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); +var SubscriptionDelayObservable = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubscriptionDelayObservable, _super); + function SubscriptionDelayObservable(source, subscriptionDelay) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subscriptionDelay = subscriptionDelay; + return _this; + } + SubscriptionDelayObservable.prototype._subscribe = function (subscriber) { + this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source)); + }; + return SubscriptionDelayObservable; +}(_Observable__WEBPACK_IMPORTED_MODULE_2__["Observable"])); +var SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubscriptionDelaySubscriber, _super); + function SubscriptionDelaySubscriber(parent, source) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.source = source; + _this.sourceSubscribed = false; + return _this; + } + SubscriptionDelaySubscriber.prototype._next = function (unused) { + this.subscribeToSource(); + }; + SubscriptionDelaySubscriber.prototype._error = function (err) { + this.unsubscribe(); + this.parent.error(err); + }; + SubscriptionDelaySubscriber.prototype._complete = function () { + this.subscribeToSource(); + }; + SubscriptionDelaySubscriber.prototype.subscribeToSource = function () { + if (!this.sourceSubscribed) { + this.sourceSubscribed = true; + this.unsubscribe(); + this.source.subscribe(this.parent); + } + }; + return SubscriptionDelaySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=delayWhen.js.map /***/ }), -/* 250 */ -/***/ (function(module, exports, __webpack_require__) { +/* 283 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -// Copyright IBM Corp. 2014,2018. All Rights Reserved. -// Node module: strong-log-transformer -// This file is licensed under the Apache License 2.0. -// License text available at https://opensource.org/licenses/Apache-2.0 +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dematerialize", function() { return dematerialize; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -module.exports = __webpack_require__(129); -module.exports.cli = __webpack_require__(255); + +function dematerialize() { + return function dematerializeOperatorFunction(source) { + return source.lift(new DeMaterializeOperator()); + }; +} +var DeMaterializeOperator = /*@__PURE__*/ (function () { + function DeMaterializeOperator() { + } + DeMaterializeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DeMaterializeSubscriber(subscriber)); + }; + return DeMaterializeOperator; +}()); +var DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DeMaterializeSubscriber, _super); + function DeMaterializeSubscriber(destination) { + return _super.call(this, destination) || this; + } + DeMaterializeSubscriber.prototype._next = function (value) { + value.observe(this.destination); + }; + return DeMaterializeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=dematerialize.js.map /***/ }), -/* 251 */ -/***/ (function(module, exports, __webpack_require__) { +/* 284 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -// Copyright (C) 2011-2015 John Hewson -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return distinct; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DistinctSubscriber", function() { return DistinctSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -var stream = __webpack_require__(39), - util = __webpack_require__(14), - timers = __webpack_require__(252); -// convinience API -module.exports = function(readStream, options) { - return module.exports.createStream(readStream, options); -}; -// basic API -module.exports.createStream = function(readStream, options) { - if (readStream) { - return createLineStream(readStream, options); - } else { - return new LineStream(options); - } -}; +function distinct(keySelector, flushes) { + return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); }; +} +var DistinctOperator = /*@__PURE__*/ (function () { + function DistinctOperator(keySelector, flushes) { + this.keySelector = keySelector; + this.flushes = flushes; + } + DistinctOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes)); + }; + return DistinctOperator; +}()); +var DistinctSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DistinctSubscriber, _super); + function DistinctSubscriber(destination, keySelector, flushes) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.values = new Set(); + if (flushes) { + _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, flushes)); + } + return _this; + } + DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.values.clear(); + }; + DistinctSubscriber.prototype.notifyError = function (error, innerSub) { + this._error(error); + }; + DistinctSubscriber.prototype._next = function (value) { + if (this.keySelector) { + this._useKeySelector(value); + } + else { + this._finalizeNext(value, value); + } + }; + DistinctSubscriber.prototype._useKeySelector = function (value) { + var key; + var destination = this.destination; + try { + key = this.keySelector(value); + } + catch (err) { + destination.error(err); + return; + } + this._finalizeNext(key, value); + }; + DistinctSubscriber.prototype._finalizeNext = function (key, value) { + var values = this.values; + if (!values.has(key)) { + values.add(key); + this.destination.next(value); + } + }; + return DistinctSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -// deprecated API -module.exports.createLineStream = function(readStream) { - console.log('WARNING: byline#createLineStream is deprecated and will be removed soon'); - return createLineStream(readStream); -}; +//# sourceMappingURL=distinct.js.map -function createLineStream(readStream, options) { - if (!readStream) { - throw new Error('expected readStream'); - } - if (!readStream.readable) { - throw new Error('readStream must be readable'); - } - var ls = new LineStream(options); - readStream.pipe(ls); - return ls; -} -// -// using the new node v0.10 "streams2" API -// +/***/ }), +/* 285 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -module.exports.LineStream = LineStream; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return distinctUntilChanged; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(175); +/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(176); +/** PURE_IMPORTS_START tslib,_Subscriber,_util_tryCatch,_util_errorObject PURE_IMPORTS_END */ -function LineStream(options) { - stream.Transform.call(this, options); - options = options || {}; - // use objectMode to stop the output from being buffered - // which re-concatanates the lines, just without newlines. - this._readableState.objectMode = true; - this._lineBuffer = []; - this._keepEmptyLines = options.keepEmptyLines || false; - this._lastChunkEndedWithCR = false; - // take the source's encoding if we don't have one - var self = this; - this.on('pipe', function(src) { - if (!self.encoding) { - // but we can't do this for old-style streams - if (src instanceof stream.Readable) { - self.encoding = src._readableState.encoding; - } - } - }); -} -util.inherits(LineStream, stream.Transform); -LineStream.prototype._transform = function(chunk, encoding, done) { - // decode binary chunks as UTF-8 - encoding = encoding || 'utf8'; - - if (Buffer.isBuffer(chunk)) { - if (encoding == 'buffer') { - chunk = chunk.toString(); // utf8 - encoding = 'utf8'; +function distinctUntilChanged(compare, keySelector) { + return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); }; +} +var DistinctUntilChangedOperator = /*@__PURE__*/ (function () { + function DistinctUntilChangedOperator(compare, keySelector) { + this.compare = compare; + this.keySelector = keySelector; } - else { - chunk = chunk.toString(encoding); + DistinctUntilChangedOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector)); + }; + return DistinctUntilChangedOperator; +}()); +var DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DistinctUntilChangedSubscriber, _super); + function DistinctUntilChangedSubscriber(destination, compare, keySelector) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.hasKey = false; + if (typeof compare === 'function') { + _this.compare = compare; + } + return _this; } - } - this._chunkEncoding = encoding; - - // see: http://www.unicode.org/reports/tr18/#Line_Boundaries - var lines = chunk.split(/\r\n|[\n\v\f\r\x85\u2028\u2029]/g); - - // don't split CRLF which spans chunks - if (this._lastChunkEndedWithCR && chunk[0] == '\n') { - lines.shift(); - } - - if (this._lineBuffer.length > 0) { - this._lineBuffer[this._lineBuffer.length - 1] += lines[0]; - lines.shift(); - } + DistinctUntilChangedSubscriber.prototype.compare = function (x, y) { + return x === y; + }; + DistinctUntilChangedSubscriber.prototype._next = function (value) { + var keySelector = this.keySelector; + var key = value; + if (keySelector) { + key = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(this.keySelector)(value); + if (key === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) { + return this.destination.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"].e); + } + } + var result = false; + if (this.hasKey) { + result = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(this.compare)(this.key, key); + if (result === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) { + return this.destination.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"].e); + } + } + else { + this.hasKey = true; + } + if (Boolean(result) === false) { + this.key = key; + this.destination.next(value); + } + }; + return DistinctUntilChangedSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=distinctUntilChanged.js.map - this._lastChunkEndedWithCR = chunk[chunk.length - 1] == '\r'; - this._lineBuffer = this._lineBuffer.concat(lines); - this._pushBuffer(encoding, 1, done); -}; -LineStream.prototype._pushBuffer = function(encoding, keep, done) { - // always buffer the last (possibly partial) line - while (this._lineBuffer.length > keep) { - var line = this._lineBuffer.shift(); - // skip empty lines - if (this._keepEmptyLines || line.length > 0 ) { - if (!this.push(this._reencode(line, encoding))) { - // when the high-water mark is reached, defer pushes until the next tick - var self = this; - timers.setImmediate(function() { - self._pushBuffer(encoding, keep, done); - }); - return; - } - } - } - done(); -}; +/***/ }), +/* 286 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -LineStream.prototype._flush = function(done) { - this._pushBuffer(this._chunkEncoding, 0, done); -}; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return distinctUntilKeyChanged; }); +/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(285); +/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */ -// see Readable::push -LineStream.prototype._reencode = function(line, chunkEncoding) { - if (this.encoding && this.encoding != chunkEncoding) { - return new Buffer(line, chunkEncoding).toString(this.encoding); - } - else if (this.encoding) { - // this should be the most common case, i.e. we're using an encoded source stream - return line; - } - else { - return new Buffer(line, chunkEncoding); - } -}; +function distinctUntilKeyChanged(key, compare) { + return Object(_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__["distinctUntilChanged"])(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; }); +} +//# sourceMappingURL=distinctUntilKeyChanged.js.map /***/ }), -/* 252 */ -/***/ (function(module, exports) { +/* 287 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -module.exports = require("timers"); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return elementAt; }); +/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(218); +/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(288); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(289); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(279); +/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(291); +/** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */ -/***/ }), -/* 253 */ -/***/ (function(module, exports, __webpack_require__) { -var Stream = __webpack_require__(39) -// through -// -// a stream that does nothing but re-emit the input. -// useful for aggregating a series of changing but not ending streams into one stream) -exports = module.exports = through -through.through = through -//create a readable writable stream. +function elementAt(index, defaultValue) { + if (index < 0) { + throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__["ArgumentOutOfRangeError"](); + } + var hasDefaultValue = arguments.length >= 2; + return function (source) { + return source.pipe(Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (v, i) { return i === index; }), Object(_take__WEBPACK_IMPORTED_MODULE_4__["take"])(1), hasDefaultValue + ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__["defaultIfEmpty"])(defaultValue) + : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__["throwIfEmpty"])(function () { return new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__["ArgumentOutOfRangeError"](); })); + }; +} +//# sourceMappingURL=elementAt.js.map -function through (write, end, opts) { - write = write || function (data) { this.queue(data) } - end = end || function () { this.queue(null) } - var ended = false, destroyed = false, buffer = [], _ended = false - var stream = new Stream() - stream.readable = stream.writable = true - stream.paused = false +/***/ }), +/* 288 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -// stream.autoPause = !(opts && opts.autoPause === false) - stream.autoDestroy = !(opts && opts.autoDestroy === false) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return filter; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - stream.write = function (data) { - write.call(this, data) - return !stream.paused - } - function drain() { - while(buffer.length && !stream.paused) { - var data = buffer.shift() - if(null === data) - return stream.emit('end') - else - stream.emit('data', data) +function filter(predicate, thisArg) { + return function filterOperatorFunction(source) { + return source.lift(new FilterOperator(predicate, thisArg)); + }; +} +var FilterOperator = /*@__PURE__*/ (function () { + function FilterOperator(predicate, thisArg) { + this.predicate = predicate; + this.thisArg = thisArg; } - } - - stream.queue = stream.push = function (data) { -// console.error(ended) - if(_ended) return stream - if(data === null) _ended = true - buffer.push(data) - drain() - return stream - } - - //this will be registered as the first 'end' listener - //must call destroy next tick, to make sure we're after any - //stream piped from here. - //this is only a problem if end is not emitted synchronously. - //a nicer way to do this is to make sure this is the last listener for 'end' - - stream.on('end', function () { - stream.readable = false - if(!stream.writable && stream.autoDestroy) - process.nextTick(function () { - stream.destroy() - }) - }) + FilterOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg)); + }; + return FilterOperator; +}()); +var FilterSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FilterSubscriber, _super); + function FilterSubscriber(destination, predicate, thisArg) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.thisArg = thisArg; + _this.count = 0; + return _this; + } + FilterSubscriber.prototype._next = function (value) { + var result; + try { + result = this.predicate.call(this.thisArg, value, this.count++); + } + catch (err) { + this.destination.error(err); + return; + } + if (result) { + this.destination.next(value); + } + }; + return FilterSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=filter.js.map - function _end () { - stream.writable = false - end.call(stream) - if(!stream.readable && stream.autoDestroy) - stream.destroy() - } - stream.end = function (data) { - if(ended) return - ended = true - if(arguments.length) stream.write(data) - _end() // will emit or queue - return stream - } +/***/ }), +/* 289 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - stream.destroy = function () { - if(destroyed) return - destroyed = true - ended = true - buffer.length = 0 - stream.writable = stream.readable = false - stream.emit('close') - return stream - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throwIfEmpty", function() { return throwIfEmpty; }); +/* harmony import */ var _tap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(290); +/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(219); +/** PURE_IMPORTS_START _tap,_util_EmptyError PURE_IMPORTS_END */ - stream.pause = function () { - if(stream.paused) return - stream.paused = true - return stream - } - stream.resume = function () { - if(stream.paused) { - stream.paused = false - stream.emit('resume') +var throwIfEmpty = function (errorFactory) { + if (errorFactory === void 0) { + errorFactory = defaultErrorFactory; } - drain() - //may have become paused again, - //as drain emits 'data'. - if(!stream.paused) - stream.emit('drain') - return stream - } - return stream + return Object(_tap__WEBPACK_IMPORTED_MODULE_0__["tap"])({ + hasValue: false, + next: function () { this.hasValue = true; }, + complete: function () { + if (!this.hasValue) { + throw errorFactory(); + } + } + }); +}; +function defaultErrorFactory() { + return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__["EmptyError"](); } - +//# sourceMappingURL=throwIfEmpty.js.map /***/ }), -/* 254 */ -/***/ (function(module, exports, __webpack_require__) { - -var Stream = __webpack_require__(39) -var writeMethods = ["write", "end", "destroy"] -var readMethods = ["resume", "pause"] -var readEvents = ["data", "close"] -var slice = Array.prototype.slice - -module.exports = duplex - -function forEach (arr, fn) { - if (arr.forEach) { - return arr.forEach(fn) - } +/* 290 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - for (var i = 0; i < arr.length; i++) { - fn(arr[i], i) - } -} +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return tap; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(181); +/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(168); +/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */ -function duplex(writer, reader) { - var stream = new Stream() - var ended = false - forEach(writeMethods, proxyWriter) - forEach(readMethods, proxyReader) - forEach(readEvents, proxyStream) +function tap(nextOrObserver, error, complete) { + return function tapOperatorFunction(source) { + return source.lift(new DoOperator(nextOrObserver, error, complete)); + }; +} +var DoOperator = /*@__PURE__*/ (function () { + function DoOperator(nextOrObserver, error, complete) { + this.nextOrObserver = nextOrObserver; + this.error = error; + this.complete = complete; + } + DoOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete)); + }; + return DoOperator; +}()); +var TapSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TapSubscriber, _super); + function TapSubscriber(destination, observerOrNext, error, complete) { + var _this = _super.call(this, destination) || this; + _this._tapNext = _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + _this._tapError = _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + _this._tapComplete = _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + _this._tapError = error || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + _this._tapComplete = complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_3__["isFunction"])(observerOrNext)) { + _this._context = _this; + _this._tapNext = observerOrNext; + } + else if (observerOrNext) { + _this._context = observerOrNext; + _this._tapNext = observerOrNext.next || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + _this._tapError = observerOrNext.error || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + _this._tapComplete = observerOrNext.complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + } + return _this; + } + TapSubscriber.prototype._next = function (value) { + try { + this._tapNext.call(this._context, value); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(value); + }; + TapSubscriber.prototype._error = function (err) { + try { + this._tapError.call(this._context, err); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.error(err); + }; + TapSubscriber.prototype._complete = function () { + try { + this._tapComplete.call(this._context); + } + catch (err) { + this.destination.error(err); + return; + } + return this.destination.complete(); + }; + return TapSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=tap.js.map - reader.on("end", handleEnd) - writer.on("drain", function() { - stream.emit("drain") - }) +/***/ }), +/* 291 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - writer.on("error", reemit) - reader.on("error", reemit) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "take", function() { return take; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(218); +/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(199); +/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */ - stream.writable = writer.writable - stream.readable = reader.readable - return stream - function proxyWriter(methodName) { - stream[methodName] = method - function method() { - return writer[methodName].apply(writer, arguments) +function take(count) { + return function (source) { + if (count === 0) { + return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_3__["empty"])(); + } + else { + return source.lift(new TakeOperator(count)); + } + }; +} +var TakeOperator = /*@__PURE__*/ (function () { + function TakeOperator(total) { + this.total = total; + if (this.total < 0) { + throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__["ArgumentOutOfRangeError"]; } } - - function proxyReader(methodName) { - stream[methodName] = method - - function method() { - stream.emit(methodName) - var func = reader[methodName] - if (func) { - return func.apply(reader, arguments) + TakeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeSubscriber(subscriber, this.total)); + }; + return TakeOperator; +}()); +var TakeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeSubscriber, _super); + function TakeSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.count = 0; + return _this; + } + TakeSubscriber.prototype._next = function (value) { + var total = this.total; + var count = ++this.count; + if (count <= total) { + this.destination.next(value); + if (count === total) { + this.destination.complete(); + this.unsubscribe(); } - reader.emit(methodName) } - } + }; + return TakeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=take.js.map - function proxyStream(methodName) { - reader.on(methodName, reemit) - function reemit() { - var args = slice.call(arguments) - args.unshift(methodName) - stream.emit.apply(stream, args) - } - } +/***/ }), +/* 292 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - function handleEnd() { - if (ended) { - return - } - ended = true - var args = slice.call(arguments) - args.unshift("end") - stream.emit.apply(stream, args) - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "endWith", function() { return endWith; }); +/* harmony import */ var _observable_fromArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(202); +/* harmony import */ var _observable_scalar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(204); +/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(199); +/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(235); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(201); +/** PURE_IMPORTS_START _observable_fromArray,_observable_scalar,_observable_empty,_observable_concat,_util_isScheduler PURE_IMPORTS_END */ - function reemit(err) { - stream.emit("error", err) + + + + +function endWith() { + var array = []; + for (var _i = 0; _i < arguments.length; _i++) { + array[_i] = arguments[_i]; } + return function (source) { + var scheduler = array[array.length - 1]; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_4__["isScheduler"])(scheduler)) { + array.pop(); + } + else { + scheduler = null; + } + var len = array.length; + if (len === 1 && !scheduler) { + return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_3__["concat"])(source, Object(_observable_scalar__WEBPACK_IMPORTED_MODULE_1__["scalar"])(array[0])); + } + else if (len > 0) { + return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_3__["concat"])(source, Object(_observable_fromArray__WEBPACK_IMPORTED_MODULE_0__["fromArray"])(array, scheduler)); + } + else { + return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_3__["concat"])(source, Object(_observable_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])(scheduler)); + } + }; } +//# sourceMappingURL=endWith.js.map /***/ }), -/* 255 */ -/***/ (function(module, exports, __webpack_require__) { +/* 293 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -// Copyright IBM Corp. 2014,2018. All Rights Reserved. -// Node module: strong-log-transformer -// This file is licensed under the Apache License 2.0. -// License text available at https://opensource.org/licenses/Apache-2.0 +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "every", function() { return every; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + +function every(predicate, thisArg) { + return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); }; +} +var EveryOperator = /*@__PURE__*/ (function () { + function EveryOperator(predicate, thisArg, source) { + this.predicate = predicate; + this.thisArg = thisArg; + this.source = source; + } + EveryOperator.prototype.call = function (observer, source) { + return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source)); + }; + return EveryOperator; +}()); +var EverySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](EverySubscriber, _super); + function EverySubscriber(destination, predicate, thisArg, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.thisArg = thisArg; + _this.source = source; + _this.index = 0; + _this.thisArg = thisArg || _this; + return _this; + } + EverySubscriber.prototype.notifyComplete = function (everyValueMatch) { + this.destination.next(everyValueMatch); + this.destination.complete(); + }; + EverySubscriber.prototype._next = function (value) { + var result = false; + try { + result = this.predicate.call(this.thisArg, value, this.index++, this.source); + } + catch (err) { + this.destination.error(err); + return; + } + if (!result) { + this.notifyComplete(false); + } + }; + EverySubscriber.prototype._complete = function () { + this.notifyComplete(true); + }; + return EverySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=every.js.map -var minimist = __webpack_require__(256); -var path = __webpack_require__(5); +/***/ }), +/* 294 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var Logger = __webpack_require__(129); -var pkg = __webpack_require__(257); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exhaust", function() { return exhaust; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -module.exports = cli; -function cli(args) { - var opts = minimist(args.slice(2)); - var $0 = path.basename(args[1]); - var p = console.log.bind(console); - if (opts.v || opts.version) { - version($0, p); - } else if (opts.h || opts.help) { - usage($0, p); - } else if (args.length < 3) { - process.stdin.pipe(Logger()).pipe(process.stdout); - } else { - process.stdin.pipe(Logger(opts)).pipe(process.stdout); - } -} -function version($0, p) { - p('%s v%s', pkg.name, pkg.version); +function exhaust() { + return function (source) { return source.lift(new SwitchFirstOperator()); }; } +var SwitchFirstOperator = /*@__PURE__*/ (function () { + function SwitchFirstOperator() { + } + SwitchFirstOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SwitchFirstSubscriber(subscriber)); + }; + return SwitchFirstOperator; +}()); +var SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SwitchFirstSubscriber, _super); + function SwitchFirstSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasCompleted = false; + _this.hasSubscription = false; + return _this; + } + SwitchFirstSubscriber.prototype._next = function (value) { + if (!this.hasSubscription) { + this.hasSubscription = true; + this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, value)); + } + }; + SwitchFirstSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + }; + SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) { + this.remove(innerSub); + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + }; + return SwitchFirstSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=exhaust.js.map -function usage($0, p) { - var PADDING = ' '; - var opt, def; - p('Usage: %s [options]', $0); - p(''); - p('%s', pkg.description); - p(''); - p('OPTIONS:'); - for (opt in Logger.DEFAULTS) { - def = Logger.DEFAULTS[opt]; - if (typeof def === 'boolean') - boolOpt(opt, Logger.DEFAULTS[opt]); - else - stdOpt(opt, Logger.DEFAULTS[opt]); - } - p(''); - function boolOpt(name, def) { - name = name + PADDING.slice(0, 20-name.length); - p(' --%s default: %s', name, def); - } +/***/ }), +/* 295 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - function stdOpt(name, def) { - var value = name.toUpperCase() + - PADDING.slice(0, 19 - name.length*2); - p(' --%s %s default: %j', name, value, def); - } -} +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exhaustMap", function() { return exhaustMap; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(222); +/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(236); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */ -/***/ }), -/* 256 */ -/***/ (function(module, exports) { -module.exports = function (args, opts) { - if (!opts) opts = {}; - - var flags = { bools : {}, strings : {}, unknownFn: null }; - if (typeof opts['unknown'] === 'function') { - flags.unknownFn = opts['unknown']; - } - if (typeof opts['boolean'] === 'boolean' && opts['boolean']) { - flags.allBools = true; - } else { - [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { - flags.bools[key] = true; - }); +function exhaustMap(project, resultSelector) { + if (resultSelector) { + return function (source) { return source.pipe(exhaustMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_4__["from"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; } - - var aliases = {}; - Object.keys(opts.alias || {}).forEach(function (key) { - aliases[key] = [].concat(opts.alias[key]); - aliases[key].forEach(function (x) { - aliases[x] = [key].concat(aliases[key].filter(function (y) { - return x !== y; - })); - }); - }); - - [].concat(opts.string).filter(Boolean).forEach(function (key) { - flags.strings[key] = true; - if (aliases[key]) { - flags.strings[aliases[key]] = true; + return function (source) { + return source.lift(new ExhauseMapOperator(project)); + }; +} +var ExhauseMapOperator = /*@__PURE__*/ (function () { + function ExhauseMapOperator(project) { + this.project = project; + } + ExhauseMapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project)); + }; + return ExhauseMapOperator; +}()); +var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ExhaustMapSubscriber, _super); + function ExhaustMapSubscriber(destination, project) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.hasSubscription = false; + _this.hasCompleted = false; + _this.index = 0; + return _this; + } + ExhaustMapSubscriber.prototype._next = function (value) { + if (!this.hasSubscription) { + this.tryNext(value); } - }); + }; + ExhaustMapSubscriber.prototype.tryNext = function (value) { + var index = this.index++; + var destination = this.destination; + try { + var result = this.project(value, index); + this.hasSubscription = true; + this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, result, value, index)); + } + catch (err) { + destination.error(err); + } + }; + ExhaustMapSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + }; + ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(innerValue); + }; + ExhaustMapSubscriber.prototype.notifyError = function (err) { + this.destination.error(err); + }; + ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) { + this.remove(innerSub); + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + }; + return ExhaustMapSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=exhaustMap.js.map - var defaults = opts['default'] || {}; - - var argv = { _ : [] }; - Object.keys(flags.bools).forEach(function (key) { - setArg(key, defaults[key] === undefined ? false : defaults[key]); - }); - - var notFlags = []; - if (args.indexOf('--') !== -1) { - notFlags = args.slice(args.indexOf('--')+1); - args = args.slice(0, args.indexOf('--')); - } +/***/ }), +/* 296 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - function argDefined(key, arg) { - return (flags.allBools && /^--[^=]+$/.test(arg)) || - flags.strings[key] || flags.bools[key] || aliases[key]; - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expand", function() { return expand; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandOperator", function() { return ExpandOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandSubscriber", function() { return ExpandSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(175); +/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(176); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - function setArg (key, val, arg) { - if (arg && flags.unknownFn && !argDefined(key, arg)) { - if (flags.unknownFn(arg) === false) return; - } - var value = !flags.strings[key] && isNumber(val) - ? Number(val) : val - ; - setKey(argv, key.split('.'), value); - - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), value); - }); - } - function setKey (obj, keys, value) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - if (o[key] === undefined) o[key] = {}; - o = o[key]; - }); - var key = keys[keys.length - 1]; - if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') { - o[key] = value; - } - else if (Array.isArray(o[key])) { - o[key].push(value); - } - else { - o[key] = [ o[key], value ]; - } + +function expand(project, concurrent, scheduler) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; } - - function aliasIsBoolean(key) { - return aliases[key].some(function (x) { - return flags.bools[x]; - }); + if (scheduler === void 0) { + scheduler = undefined; + } + concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent; + return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); }; +} +var ExpandOperator = /*@__PURE__*/ (function () { + function ExpandOperator(project, concurrent, scheduler) { + this.project = project; + this.concurrent = concurrent; + this.scheduler = scheduler; } + ExpandOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler)); + }; + return ExpandOperator; +}()); - for (var i = 0; i < args.length; i++) { - var arg = args[i]; - - if (/^--.+=/.test(arg)) { - // Using [\s\S] instead of . because js doesn't support the - // 'dotall' regex modifier. See: - // http://stackoverflow.com/a/1068308/13216 - var m = arg.match(/^--([^=]+)=([\s\S]*)$/); - var key = m[1]; - var value = m[2]; - if (flags.bools[key]) { - value = value !== 'false'; - } - setArg(key, value, arg); - } - else if (/^--no-.+/.test(arg)) { - var key = arg.match(/^--no-(.+)/)[1]; - setArg(key, false, arg); +var ExpandSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ExpandSubscriber, _super); + function ExpandSubscriber(destination, project, concurrent, scheduler) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.concurrent = concurrent; + _this.scheduler = scheduler; + _this.index = 0; + _this.active = 0; + _this.hasCompleted = false; + if (concurrent < Number.POSITIVE_INFINITY) { + _this.buffer = []; } - else if (/^--.+/.test(arg)) { - var key = arg.match(/^--(.+)/)[1]; - var next = args[i + 1]; - if (next !== undefined && !/^-/.test(next) - && !flags.bools[key] - && !flags.allBools - && (aliases[key] ? !aliasIsBoolean(key) : true)) { - setArg(key, next, arg); - i++; - } - else if (/^(true|false)$/.test(next)) { - setArg(key, next === 'true', arg); - i++; - } - else { - setArg(key, flags.strings[key] ? '' : true, arg); - } + return _this; + } + ExpandSubscriber.dispatch = function (arg) { + var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index; + subscriber.subscribeToProjection(result, value, index); + }; + ExpandSubscriber.prototype._next = function (value) { + var destination = this.destination; + if (destination.closed) { + this._complete(); + return; } - else if (/^-[^-]+/.test(arg)) { - var letters = arg.slice(1,-1).split(''); - - var broken = false; - for (var j = 0; j < letters.length; j++) { - var next = arg.slice(j+2); - - if (next === '-') { - setArg(letters[j], next, arg) - continue; - } - - if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) { - setArg(letters[j], next.split('=')[1], arg); - broken = true; - break; - } - - if (/[A-Za-z]/.test(letters[j]) - && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { - setArg(letters[j], next, arg); - broken = true; - break; - } - - if (letters[j+1] && letters[j+1].match(/\W/)) { - setArg(letters[j], arg.slice(j+2), arg); - broken = true; - break; - } - else { - setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg); - } + var index = this.index++; + if (this.active < this.concurrent) { + destination.next(value); + var result = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_1__["tryCatch"])(this.project)(value, index); + if (result === _util_errorObject__WEBPACK_IMPORTED_MODULE_2__["errorObject"]) { + destination.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_2__["errorObject"].e); } - - var key = arg.slice(-1)[0]; - if (!broken && key !== '-') { - if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1]) - && !flags.bools[key] - && (aliases[key] ? !aliasIsBoolean(key) : true)) { - setArg(key, args[i+1], arg); - i++; - } - else if (args[i+1] && /true|false/.test(args[i+1])) { - setArg(key, args[i+1] === 'true', arg); - i++; - } - else { - setArg(key, flags.strings[key] ? '' : true, arg); - } + else if (!this.scheduler) { + this.subscribeToProjection(result, value, index); + } + else { + var state = { subscriber: this, result: result, value: value, index: index }; + this.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); } } else { - if (!flags.unknownFn || flags.unknownFn(arg) !== false) { - argv._.push( - flags.strings['_'] || !isNumber(arg) ? arg : Number(arg) - ); - } - if (opts.stopEarly) { - argv._.push.apply(argv._, args.slice(i + 1)); - break; - } + this.buffer.push(value); } - } - - Object.keys(defaults).forEach(function (key) { - if (!hasKey(argv, key.split('.'))) { - setKey(argv, key.split('.'), defaults[key]); - - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), defaults[key]); - }); + }; + ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) { + this.active++; + this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, result, value, index)); + }; + ExpandSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); } - }); - - if (opts['--']) { - argv['--'] = new Array(); - notFlags.forEach(function(key) { - argv['--'].push(key); - }); + }; + ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this._next(innerValue); + }; + ExpandSubscriber.prototype.notifyComplete = function (innerSub) { + var buffer = this.buffer; + this.remove(innerSub); + this.active--; + if (buffer && buffer.length > 0) { + this._next(buffer.shift()); + } + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); + } + }; + return ExpandSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); + +//# sourceMappingURL=expand.js.map + + +/***/ }), +/* 297 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "finalize", function() { return finalize; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */ + + + +function finalize(callback) { + return function (source) { return source.lift(new FinallyOperator(callback)); }; +} +var FinallyOperator = /*@__PURE__*/ (function () { + function FinallyOperator(callback) { + this.callback = callback; } - else { - notFlags.forEach(function(key) { - argv._.push(key); - }); + FinallyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new FinallySubscriber(subscriber, this.callback)); + }; + return FinallyOperator; +}()); +var FinallySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FinallySubscriber, _super); + function FinallySubscriber(destination, callback) { + var _this = _super.call(this, destination) || this; + _this.add(new _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"](callback)); + return _this; } + return FinallySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=finalize.js.map - return argv; -}; -function hasKey (obj, keys) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - o = (o[key] || {}); - }); +/***/ }), +/* 298 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - var key = keys[keys.length - 1]; - return key in o; -} +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "find", function() { return find; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FindValueOperator", function() { return FindValueOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FindValueSubscriber", function() { return FindValueSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function isNumber (x) { - if (typeof x === 'number') return true; - if (/^0x[0-9a-f]+$/i.test(x)) return true; - return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); + +function find(predicate, thisArg) { + if (typeof predicate !== 'function') { + throw new TypeError('predicate is not a function'); + } + return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); }; } +var FindValueOperator = /*@__PURE__*/ (function () { + function FindValueOperator(predicate, source, yieldIndex, thisArg) { + this.predicate = predicate; + this.source = source; + this.yieldIndex = yieldIndex; + this.thisArg = thisArg; + } + FindValueOperator.prototype.call = function (observer, source) { + return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg)); + }; + return FindValueOperator; +}()); + +var FindValueSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FindValueSubscriber, _super); + function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.yieldIndex = yieldIndex; + _this.thisArg = thisArg; + _this.index = 0; + return _this; + } + FindValueSubscriber.prototype.notifyComplete = function (value) { + var destination = this.destination; + destination.next(value); + destination.complete(); + }; + FindValueSubscriber.prototype._next = function (value) { + var _a = this, predicate = _a.predicate, thisArg = _a.thisArg; + var index = this.index++; + try { + var result = predicate.call(thisArg || this, value, index, this.source); + if (result) { + this.notifyComplete(this.yieldIndex ? index : value); + } + } + catch (err) { + this.destination.error(err); + } + }; + FindValueSubscriber.prototype._complete = function () { + this.notifyComplete(this.yieldIndex ? -1 : undefined); + }; + return FindValueSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=find.js.map /***/ }), -/* 257 */ -/***/ (function(module) { +/* 299 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return findIndex; }); +/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(298); +/** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */ + +function findIndex(predicate, thisArg) { + return function (source) { return source.lift(new _operators_find__WEBPACK_IMPORTED_MODULE_0__["FindValueOperator"](predicate, source, true, thisArg)); }; +} +//# sourceMappingURL=findIndex.js.map -module.exports = {"name":"strong-log-transformer","version":"2.0.0","description":"Stream transformer that prefixes lines with timestamps and other things.","author":"Ryan Graham ","license":"Apache-2.0","repository":{"type":"git","url":"git://github.com/strongloop/strong-log-transformer"},"keywords":["logging","streams"],"bugs":{"url":"https://github.com/strongloop/strong-log-transformer/issues"},"homepage":"https://github.com/strongloop/strong-log-transformer","directories":{"test":"test"},"bin":{"sl-log-transformer":"bin/sl-log-transformer.js"},"main":"index.js","scripts":{"test":"tap --100 test/test-*"},"dependencies":{"byline":"^5.0.0","duplexer":"^0.1.1","minimist":"^1.2.0","through":"^2.3.4"},"devDependencies":{"tap":"^12.0.1"},"engines":{"node":">=4"}}; /***/ }), -/* 258 */ -/***/ (function(module, exports, __webpack_require__) { +/* 300 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "first", function() { return first; }); +/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(219); +/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(288); +/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(291); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(279); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(289); +/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(216); +/** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */ -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.CleanCommand = undefined; -var _chalk = __webpack_require__(26); -var _chalk2 = _interopRequireDefault(_chalk); -var _del = __webpack_require__(131); -var _del2 = _interopRequireDefault(_del); +function first(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__["identity"], Object(_take__WEBPACK_IMPORTED_MODULE_2__["take"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__["defaultIfEmpty"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__["throwIfEmpty"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__["EmptyError"](); })); }; +} +//# sourceMappingURL=first.js.map -var _ora = __webpack_require__(272); -var _ora2 = _interopRequireDefault(_ora); +/***/ }), +/* 301 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var _path = __webpack_require__(5); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ignoreElements", function() { return ignoreElements; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -var _fs = __webpack_require__(70); -var _log = __webpack_require__(40); +function ignoreElements() { + return function ignoreElementsOperatorFunction(source) { + return source.lift(new IgnoreElementsOperator()); + }; +} +var IgnoreElementsOperator = /*@__PURE__*/ (function () { + function IgnoreElementsOperator() { + } + IgnoreElementsOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new IgnoreElementsSubscriber(subscriber)); + }; + return IgnoreElementsOperator; +}()); +var IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](IgnoreElementsSubscriber, _super); + function IgnoreElementsSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + IgnoreElementsSubscriber.prototype._next = function (unused) { + }; + return IgnoreElementsSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=ignoreElements.js.map -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ +/***/ }), +/* 302 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return isEmpty; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -const CleanCommand = exports.CleanCommand = { - description: 'Remove the node_modules and target directories from all projects.', - name: 'clean', - run(projects) { - return _asyncToGenerator(function* () { - const toDelete = []; - for (const project of projects.values()) { - if (yield (0, _fs.isDirectory)(project.nodeModulesLocation)) { - toDelete.push({ - cwd: project.path, - pattern: (0, _path.relative)(project.path, project.nodeModulesLocation) - }); - } - if (yield (0, _fs.isDirectory)(project.targetLocation)) { - toDelete.push({ - cwd: project.path, - pattern: (0, _path.relative)(project.path, project.targetLocation) - }); - } - const { extraPatterns } = project.getCleanConfig(); - if (extraPatterns) { - toDelete.push({ - cwd: project.path, - pattern: extraPatterns - }); - } - } - if (toDelete.length === 0) { - _log.log.write(_chalk2.default.bold.green('\n\nNothing to delete')); - } else { - _log.log.write(_chalk2.default.bold.red('\n\nDeleting:\n')); - /** - * In order to avoid patterns like `/build` in packages from accidentally - * impacting files outside the package we use `process.chdir()` to change - * the cwd to the package and execute `del()` without the `force` option - * so it will check that each file being deleted is within the package. - * - * `del()` does support a `cwd` option, but it's only for resolving the - * patterns and does not impact the cwd check. - */ - const originalCwd = process.cwd(); - try { - for (const _ref of toDelete) { - const { pattern, cwd } = _ref; - process.chdir(cwd); - const promise = (0, _del2.default)(pattern); - _ora2.default.promise(promise, (0, _path.relative)(originalCwd, (0, _path.join)(cwd, String(pattern)))); - yield promise; - } - } finally { - process.chdir(originalCwd); - } - } - })(); +function isEmpty() { + return function (source) { return source.lift(new IsEmptyOperator()); }; +} +var IsEmptyOperator = /*@__PURE__*/ (function () { + function IsEmptyOperator() { } -}; + IsEmptyOperator.prototype.call = function (observer, source) { + return source.subscribe(new IsEmptySubscriber(observer)); + }; + return IsEmptyOperator; +}()); +var IsEmptySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](IsEmptySubscriber, _super); + function IsEmptySubscriber(destination) { + return _super.call(this, destination) || this; + } + IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) { + var destination = this.destination; + destination.next(isEmpty); + destination.complete(); + }; + IsEmptySubscriber.prototype._next = function (value) { + this.notifyComplete(false); + }; + IsEmptySubscriber.prototype._complete = function () { + this.notifyComplete(true); + }; + return IsEmptySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=isEmpty.js.map + /***/ }), -/* 259 */ -/***/ (function(module, exports, __webpack_require__) { +/* 303 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "last", function() { return last; }); +/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(219); +/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(288); +/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(304); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(289); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(279); +/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(216); +/** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */ -var Promise = __webpack_require__(260); -var arrayUnion = __webpack_require__(132); -var objectAssign = __webpack_require__(263); -var glob = __webpack_require__(48); -var pify = __webpack_require__(264); -var globP = pify(glob, Promise).bind(glob); -function isNegative(pattern) { - return pattern[0] === '!'; -} -function isString(value) { - return typeof value === 'string'; -} -function assertPatternsInput(patterns) { - if (!patterns.every(isString)) { - throw new TypeError('patterns must be a string or an array of strings'); - } + +function last(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__["identity"], Object(_takeLast__WEBPACK_IMPORTED_MODULE_2__["takeLast"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__["defaultIfEmpty"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__["throwIfEmpty"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__["EmptyError"](); })); }; } +//# sourceMappingURL=last.js.map -function generateGlobTasks(patterns, opts) { - patterns = [].concat(patterns); - assertPatternsInput(patterns); - var globTasks = []; +/***/ }), +/* 304 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - opts = objectAssign({ - cache: Object.create(null), - statCache: Object.create(null), - realpathCache: Object.create(null), - symlinks: Object.create(null), - ignore: [] - }, opts); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeLast", function() { return takeLast; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(218); +/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(199); +/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */ - patterns.forEach(function (pattern, i) { - if (isNegative(pattern)) { - return; - } - var ignore = patterns.slice(i).filter(isNegative).map(function (pattern) { - return pattern.slice(1); - }); - globTasks.push({ - pattern: pattern, - opts: objectAssign({}, opts, { - ignore: opts.ignore.concat(ignore) - }) - }); - }); - return globTasks; +function takeLast(count) { + return function takeLastOperatorFunction(source) { + if (count === 0) { + return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_3__["empty"])(); + } + else { + return source.lift(new TakeLastOperator(count)); + } + }; } +var TakeLastOperator = /*@__PURE__*/ (function () { + function TakeLastOperator(total) { + this.total = total; + if (this.total < 0) { + throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__["ArgumentOutOfRangeError"]; + } + } + TakeLastOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeLastSubscriber(subscriber, this.total)); + }; + return TakeLastOperator; +}()); +var TakeLastSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeLastSubscriber, _super); + function TakeLastSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.ring = new Array(); + _this.count = 0; + return _this; + } + TakeLastSubscriber.prototype._next = function (value) { + var ring = this.ring; + var total = this.total; + var count = this.count++; + if (ring.length < total) { + ring.push(value); + } + else { + var index = count % total; + ring[index] = value; + } + }; + TakeLastSubscriber.prototype._complete = function () { + var destination = this.destination; + var count = this.count; + if (count > 0) { + var total = this.count >= this.total ? this.total : this.count; + var ring = this.ring; + for (var i = 0; i < total; i++) { + var idx = (count++) % total; + destination.next(ring[idx]); + } + } + destination.complete(); + }; + return TakeLastSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=takeLast.js.map -module.exports = function (patterns, opts) { - var globTasks; - try { - globTasks = generateGlobTasks(patterns, opts); - } catch (err) { - return Promise.reject(err); - } +/***/ }), +/* 305 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return Promise.all(globTasks.map(function (task) { - return globP(task.pattern, task.opts); - })).then(function (paths) { - return arrayUnion.apply(null, paths); - }); -}; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapTo", function() { return mapTo; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -module.exports.sync = function (patterns, opts) { - var globTasks = generateGlobTasks(patterns, opts); - return globTasks.reduce(function (matches, task) { - return arrayUnion(matches, glob.sync(task.pattern, task.opts)); - }, []); -}; +function mapTo(value) { + return function (source) { return source.lift(new MapToOperator(value)); }; +} +var MapToOperator = /*@__PURE__*/ (function () { + function MapToOperator(value) { + this.value = value; + } + MapToOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MapToSubscriber(subscriber, this.value)); + }; + return MapToOperator; +}()); +var MapToSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MapToSubscriber, _super); + function MapToSubscriber(destination, value) { + var _this = _super.call(this, destination) || this; + _this.value = value; + return _this; + } + MapToSubscriber.prototype._next = function (x) { + this.destination.next(this.value); + }; + return MapToSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=mapTo.js.map -module.exports.generateGlobTasks = generateGlobTasks; -module.exports.hasMagic = function (patterns, opts) { - return [].concat(patterns).some(function (pattern) { - return glob.hasMagic(pattern, opts); - }); -}; +/***/ }), +/* 306 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "materialize", function() { return materialize; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(198); +/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */ + + + +function materialize() { + return function materializeOperatorFunction(source) { + return source.lift(new MaterializeOperator()); + }; +} +var MaterializeOperator = /*@__PURE__*/ (function () { + function MaterializeOperator() { + } + MaterializeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MaterializeSubscriber(subscriber)); + }; + return MaterializeOperator; +}()); +var MaterializeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MaterializeSubscriber, _super); + function MaterializeSubscriber(destination) { + return _super.call(this, destination) || this; + } + MaterializeSubscriber.prototype._next = function (value) { + this.destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createNext(value)); + }; + MaterializeSubscriber.prototype._error = function (err) { + var destination = this.destination; + destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createError(err)); + destination.complete(); + }; + MaterializeSubscriber.prototype._complete = function () { + var destination = this.destination; + destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createComplete()); + destination.complete(); + }; + return MaterializeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=materialize.js.map /***/ }), -/* 260 */ -/***/ (function(module, exports, __webpack_require__) { +/* 307 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; }); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(308); +/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ - -module.exports = typeof Promise === 'function' ? Promise : __webpack_require__(261); +function max(comparer) { + var max = (typeof comparer === 'function') + ? function (x, y) { return comparer(x, y) > 0 ? x : y; } + : function (x, y) { return x > y ? x : y; }; + return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__["reduce"])(max); +} +//# sourceMappingURL=max.js.map /***/ }), -/* 261 */ -/***/ (function(module, exports, __webpack_require__) { +/* 308 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return reduce; }); +/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(309); +/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(304); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(279); +/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(180); +/** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */ -var PENDING = 'pending'; -var SETTLED = 'settled'; -var FULFILLED = 'fulfilled'; -var REJECTED = 'rejected'; -var NOOP = function () {}; -var isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function'; - -var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate; -var asyncQueue = []; -var asyncTimer; -function asyncFlush() { - // run promise callbacks - for (var i = 0; i < asyncQueue.length; i++) { - asyncQueue[i][0](asyncQueue[i][1]); - } - // reset async asyncQueue - asyncQueue = []; - asyncTimer = false; +function reduce(accumulator, seed) { + if (arguments.length >= 2) { + return function reduceOperatorFunctionWithSeed(source) { + return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipe"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__["scan"])(accumulator, seed), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__["takeLast"])(1), Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__["defaultIfEmpty"])(seed))(source); + }; + } + return function reduceOperatorFunction(source) { + return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipe"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__["scan"])(function (acc, value, index) { + return accumulator(acc, value, index + 1); + }), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__["takeLast"])(1))(source); + }; } +//# sourceMappingURL=reduce.js.map -function asyncCall(callback, arg) { - asyncQueue.push([callback, arg]); - if (!asyncTimer) { - asyncTimer = true; - asyncSetTimer(asyncFlush, 0); - } -} +/***/ }), +/* 309 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function invokeResolver(resolver, promise) { - function resolvePromise(value) { - resolve(promise, value); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return scan; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - function rejectPromise(reason) { - reject(promise, reason); - } - try { - resolver(resolvePromise, rejectPromise); - } catch (e) { - rejectPromise(e); - } +function scan(accumulator, seed) { + var hasSeed = false; + if (arguments.length >= 2) { + hasSeed = true; + } + return function scanOperatorFunction(source) { + return source.lift(new ScanOperator(accumulator, seed, hasSeed)); + }; } +var ScanOperator = /*@__PURE__*/ (function () { + function ScanOperator(accumulator, seed, hasSeed) { + if (hasSeed === void 0) { + hasSeed = false; + } + this.accumulator = accumulator; + this.seed = seed; + this.hasSeed = hasSeed; + } + ScanOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed)); + }; + return ScanOperator; +}()); +var ScanSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ScanSubscriber, _super); + function ScanSubscriber(destination, accumulator, _seed, hasSeed) { + var _this = _super.call(this, destination) || this; + _this.accumulator = accumulator; + _this._seed = _seed; + _this.hasSeed = hasSeed; + _this.index = 0; + return _this; + } + Object.defineProperty(ScanSubscriber.prototype, "seed", { + get: function () { + return this._seed; + }, + set: function (value) { + this.hasSeed = true; + this._seed = value; + }, + enumerable: true, + configurable: true + }); + ScanSubscriber.prototype._next = function (value) { + if (!this.hasSeed) { + this.seed = value; + this.destination.next(value); + } + else { + return this._tryNext(value); + } + }; + ScanSubscriber.prototype._tryNext = function (value) { + var index = this.index++; + var result; + try { + result = this.accumulator(this.seed, value, index); + } + catch (err) { + this.destination.error(err); + } + this.seed = result; + this.destination.next(result); + }; + return ScanSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=scan.js.map -function invokeCallback(subscriber) { - var owner = subscriber.owner; - var settled = owner._state; - var value = owner._data; - var callback = subscriber[settled]; - var promise = subscriber.then; - if (typeof callback === 'function') { - settled = FULFILLED; - try { - value = callback(value); - } catch (e) { - reject(promise, e); - } - } +/***/ }), +/* 310 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (!handleThenable(promise, value)) { - if (settled === FULFILLED) { - resolve(promise, value); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; }); +/* harmony import */ var _observable_merge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(253); +/** PURE_IMPORTS_START _observable_merge PURE_IMPORTS_END */ - if (settled === REJECTED) { - reject(promise, value); - } - } +function merge() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function (source) { return source.lift.call(_observable_merge__WEBPACK_IMPORTED_MODULE_0__["merge"].apply(void 0, [source].concat(observables))); }; } +//# sourceMappingURL=merge.js.map -function handleThenable(promise, value) { - var resolved; - try { - if (promise === value) { - throw new TypeError('A promises callback cannot return that same promise.'); - } +/***/ }), +/* 311 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (value && (typeof value === 'function' || typeof value === 'object')) { - // then should be retrieved only once - var then = value.then; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeMapTo", function() { return mergeMapTo; }); +/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(244); +/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */ - if (typeof then === 'function') { - then.call(value, function (val) { - if (!resolved) { - resolved = true; +function mergeMapTo(innerObservable, resultSelector, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + if (typeof resultSelector === 'function') { + return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(function () { return innerObservable; }, resultSelector, concurrent); + } + if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(function () { return innerObservable; }, concurrent); +} +//# sourceMappingURL=mergeMapTo.js.map - if (value === val) { - fulfill(promise, val); - } else { - resolve(promise, val); - } - } - }, function (reason) { - if (!resolved) { - resolved = true; - reject(promise, reason); - } - }); +/***/ }), +/* 312 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return true; - } - } - } catch (e) { - if (!resolved) { - reject(promise, e); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeScan", function() { return mergeScan; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeScanOperator", function() { return MergeScanOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeScanSubscriber", function() { return MergeScanSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(175); +/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(176); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(226); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(225); +/** PURE_IMPORTS_START tslib,_util_tryCatch,_util_errorObject,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */ - return true; - } - return false; -} -function resolve(promise, value) { - if (promise === value || !handleThenable(promise, value)) { - fulfill(promise, value); - } -} -function fulfill(promise, value) { - if (promise._state === PENDING) { - promise._state = SETTLED; - promise._data = value; - asyncCall(publishFulfillment, promise); - } +function mergeScan(accumulator, seed, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); }; } +var MergeScanOperator = /*@__PURE__*/ (function () { + function MergeScanOperator(accumulator, seed, concurrent) { + this.accumulator = accumulator; + this.seed = seed; + this.concurrent = concurrent; + } + MergeScanOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent)); + }; + return MergeScanOperator; +}()); -function reject(promise, reason) { - if (promise._state === PENDING) { - promise._state = SETTLED; - promise._data = reason; +var MergeScanSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MergeScanSubscriber, _super); + function MergeScanSubscriber(destination, accumulator, acc, concurrent) { + var _this = _super.call(this, destination) || this; + _this.accumulator = accumulator; + _this.acc = acc; + _this.concurrent = concurrent; + _this.hasValue = false; + _this.hasCompleted = false; + _this.buffer = []; + _this.active = 0; + _this.index = 0; + return _this; + } + MergeScanSubscriber.prototype._next = function (value) { + if (this.active < this.concurrent) { + var index = this.index++; + var ish = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_1__["tryCatch"])(this.accumulator)(this.acc, value); + var destination = this.destination; + if (ish === _util_errorObject__WEBPACK_IMPORTED_MODULE_2__["errorObject"]) { + destination.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_2__["errorObject"].e); + } + else { + this.active++; + this._innerSub(ish, value, index); + } + } + else { + this.buffer.push(value); + } + }; + MergeScanSubscriber.prototype._innerSub = function (ish, value, index) { + this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, ish, value, index)); + }; + MergeScanSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + if (this.hasValue === false) { + this.destination.next(this.acc); + } + this.destination.complete(); + } + }; + MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + var destination = this.destination; + this.acc = innerValue; + this.hasValue = true; + destination.next(innerValue); + }; + MergeScanSubscriber.prototype.notifyComplete = function (innerSub) { + var buffer = this.buffer; + this.remove(innerSub); + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + if (this.hasValue === false) { + this.destination.next(this.acc); + } + this.destination.complete(); + } + }; + return MergeScanSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"])); - asyncCall(publishRejection, promise); - } -} +//# sourceMappingURL=mergeScan.js.map -function publish(promise) { - promise._then = promise._then.forEach(invokeCallback); -} -function publishFulfillment(promise) { - promise._state = FULFILLED; - publish(promise); -} +/***/ }), +/* 313 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function publishRejection(promise) { - promise._state = REJECTED; - publish(promise); - if (!promise._handled && isNode) { - global.process.emit('unhandledRejection', promise._data, promise); - } -} +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "min", function() { return min; }); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(308); +/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ -function notifyRejectionHandled(promise) { - global.process.emit('rejectionHandled', promise); +function min(comparer) { + var min = (typeof comparer === 'function') + ? function (x, y) { return comparer(x, y) < 0 ? x : y; } + : function (x, y) { return x < y ? x : y; }; + return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__["reduce"])(min); } +//# sourceMappingURL=min.js.map -/** - * @class - */ -function Promise(resolver) { - if (typeof resolver !== 'function') { - throw new TypeError('Promise resolver ' + resolver + ' is not a function'); - } - if (this instanceof Promise === false) { - throw new TypeError('Failed to construct \'Promise\': Please use the \'new\' operator, this object constructor cannot be called as a function.'); - } +/***/ }), +/* 314 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - this._then = []; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "multicast", function() { return multicast; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MulticastOperator", function() { return MulticastOperator; }); +/* harmony import */ var _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(182); +/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */ - invokeResolver(resolver, this); +function multicast(subjectOrSubjectFactory, selector) { + return function multicastOperatorFunction(source) { + var subjectFactory; + if (typeof subjectOrSubjectFactory === 'function') { + subjectFactory = subjectOrSubjectFactory; + } + else { + subjectFactory = function subjectFactory() { + return subjectOrSubjectFactory; + }; + } + if (typeof selector === 'function') { + return source.lift(new MulticastOperator(subjectFactory, selector)); + } + var connectable = Object.create(source, _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__["connectableObservableDescriptor"]); + connectable.source = source; + connectable.subjectFactory = subjectFactory; + return connectable; + }; } +var MulticastOperator = /*@__PURE__*/ (function () { + function MulticastOperator(subjectFactory, selector) { + this.subjectFactory = subjectFactory; + this.selector = selector; + } + MulticastOperator.prototype.call = function (subscriber, source) { + var selector = this.selector; + var subject = this.subjectFactory(); + var subscription = selector(subject).subscribe(subscriber); + subscription.add(source.subscribe(subject)); + return subscription; + }; + return MulticastOperator; +}()); -Promise.prototype = { - constructor: Promise, - - _state: PENDING, - _then: null, - _data: undefined, - _handled: false, +//# sourceMappingURL=multicast.js.map - then: function (onFulfillment, onRejection) { - var subscriber = { - owner: this, - then: new this.constructor(NOOP), - fulfilled: onFulfillment, - rejected: onRejection - }; - if ((onRejection || onFulfillment) && !this._handled) { - this._handled = true; - if (this._state === REJECTED && isNode) { - asyncCall(notifyRejectionHandled, this); - } - } +/***/ }), +/* 315 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (this._state === FULFILLED || this._state === REJECTED) { - // already resolved, call callback async - asyncCall(invokeCallback, subscriber); - } else { - // subscribe - this._then.push(subscriber); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return onErrorResumeNext; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNextStatic", function() { return onErrorResumeNextStatic; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(236); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(173); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_observable_from,_util_isArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - return subscriber.then; - }, - catch: function (onRejection) { - return this.then(null, onRejection); - } -}; -Promise.all = function (promises) { - if (!Array.isArray(promises)) { - throw new TypeError('You must pass an array to Promise.all().'); - } - return new Promise(function (resolve, reject) { - var results = []; - var remaining = 0; - function resolver(index) { - remaining++; - return function (value) { - results[index] = value; - if (!--remaining) { - resolve(results); - } - }; - } +function onErrorResumeNext() { + var nextSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + nextSources[_i] = arguments[_i]; + } + if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(nextSources[0])) { + nextSources = nextSources[0]; + } + return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); }; +} +function onErrorResumeNextStatic() { + var nextSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + nextSources[_i] = arguments[_i]; + } + var source = null; + if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(nextSources[0])) { + nextSources = nextSources[0]; + } + source = nextSources.shift(); + return Object(_observable_from__WEBPACK_IMPORTED_MODULE_1__["from"])(source, null).lift(new OnErrorResumeNextOperator(nextSources)); +} +var OnErrorResumeNextOperator = /*@__PURE__*/ (function () { + function OnErrorResumeNextOperator(nextSources) { + this.nextSources = nextSources; + } + OnErrorResumeNextOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources)); + }; + return OnErrorResumeNextOperator; +}()); +var OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](OnErrorResumeNextSubscriber, _super); + function OnErrorResumeNextSubscriber(destination, nextSources) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.nextSources = nextSources; + return _this; + } + OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) { + this.subscribeToNextSource(); + }; + OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) { + this.subscribeToNextSource(); + }; + OnErrorResumeNextSubscriber.prototype._error = function (err) { + this.subscribeToNextSource(); + }; + OnErrorResumeNextSubscriber.prototype._complete = function () { + this.subscribeToNextSource(); + }; + OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () { + var next = this.nextSources.shift(); + if (next) { + this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, next)); + } + else { + this.destination.complete(); + } + }; + return OnErrorResumeNextSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); +//# sourceMappingURL=onErrorResumeNext.js.map - for (var i = 0, promise; i < promises.length; i++) { - promise = promises[i]; - if (promise && typeof promise.then === 'function') { - promise.then(resolver(i), reject); - } else { - results[i] = promise; - } - } +/***/ }), +/* 316 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (!remaining) { - resolve(results); - } - }); -}; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pairwise", function() { return pairwise; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -Promise.race = function (promises) { - if (!Array.isArray(promises)) { - throw new TypeError('You must pass an array to Promise.race().'); - } - return new Promise(function (resolve, reject) { - for (var i = 0, promise; i < promises.length; i++) { - promise = promises[i]; +function pairwise() { + return function (source) { return source.lift(new PairwiseOperator()); }; +} +var PairwiseOperator = /*@__PURE__*/ (function () { + function PairwiseOperator() { + } + PairwiseOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new PairwiseSubscriber(subscriber)); + }; + return PairwiseOperator; +}()); +var PairwiseSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PairwiseSubscriber, _super); + function PairwiseSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasPrev = false; + return _this; + } + PairwiseSubscriber.prototype._next = function (value) { + if (this.hasPrev) { + this.destination.next([this.prev, value]); + } + else { + this.hasPrev = true; + } + this.prev = value; + }; + return PairwiseSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=pairwise.js.map - if (promise && typeof promise.then === 'function') { - promise.then(resolve, reject); - } else { - resolve(promise); - } - } - }); -}; -Promise.resolve = function (value) { - if (value && typeof value === 'object' && value.constructor === Promise) { - return value; - } +/***/ }), +/* 317 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return new Promise(function (resolve) { - resolve(value); - }); -}; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return partition; }); +/* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(318); +/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(288); +/** PURE_IMPORTS_START _util_not,_filter PURE_IMPORTS_END */ -Promise.reject = function (reason) { - return new Promise(function (resolve, reject) { - reject(reason); - }); -}; -module.exports = Promise; +function partition(predicate, thisArg) { + return function (source) { + return [ + Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(predicate, thisArg)(source), + Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__["not"])(predicate, thisArg))(source) + ]; + }; +} +//# sourceMappingURL=partition.js.map /***/ }), -/* 262 */ -/***/ (function(module, exports, __webpack_require__) { +/* 318 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "not", function() { return not; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function not(pred, thisArg) { + function notPred() { + return !(notPred.pred.apply(notPred.thisArg, arguments)); + } + notPred.pred = pred; + notPred.thisArg = thisArg; + return notPred; +} +//# sourceMappingURL=not.js.map -// there's 3 implementations written in increasing order of efficiency - -// 1 - no Set type is defined -function uniqNoSet(arr) { - var ret = []; +/***/ }), +/* 319 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - for (var i = 0; i < arr.length; i++) { - if (ret.indexOf(arr[i]) === -1) { - ret.push(arr[i]); - } - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pluck", function() { return pluck; }); +/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(222); +/** PURE_IMPORTS_START _map PURE_IMPORTS_END */ - return ret; +function pluck() { + var properties = []; + for (var _i = 0; _i < arguments.length; _i++) { + properties[_i] = arguments[_i]; + } + var length = properties.length; + if (length === 0) { + throw new Error('list of properties cannot be empty.'); + } + return function (source) { return Object(_map__WEBPACK_IMPORTED_MODULE_0__["map"])(plucker(properties, length))(source); }; +} +function plucker(props, length) { + var mapper = function (x) { + var currentProp = x; + for (var i = 0; i < length; i++) { + var p = currentProp[props[i]]; + if (typeof p !== 'undefined') { + currentProp = p; + } + else { + return undefined; + } + } + return currentProp; + }; + return mapper; } +//# sourceMappingURL=pluck.js.map -// 2 - a simple Set type is defined -function uniqSet(arr) { - var seen = new Set(); - return arr.filter(function (el) { - if (!seen.has(el)) { - seen.add(el); - return true; - } - return false; - }); -} +/***/ }), +/* 320 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -// 3 - a standard Set type is defined and it has a forEach method -function uniqSetWithForEach(arr) { - var ret = []; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return publish; }); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(183); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314); +/** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */ - (new Set(arr)).forEach(function (el) { - ret.push(el); - }); - return ret; +function publish(selector) { + return selector ? + Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(function () { return new _Subject__WEBPACK_IMPORTED_MODULE_0__["Subject"](); }, selector) : + Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(new _Subject__WEBPACK_IMPORTED_MODULE_0__["Subject"]()); } +//# sourceMappingURL=publish.js.map -// V8 currently has a broken implementation -// https://github.com/joyent/node/issues/8449 -function doesForEachActuallyWork() { - var ret = false; - (new Set([true])).forEach(function (el) { - ret = el; - }); +/***/ }), +/* 321 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return ret === true; -} +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return publishBehavior; }); +/* harmony import */ var _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(188); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314); +/** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */ -if ('Set' in global) { - if (typeof Set.prototype.forEach === 'function' && doesForEachActuallyWork()) { - module.exports = uniqSetWithForEach; - } else { - module.exports = uniqSet; - } -} else { - module.exports = uniqNoSet; + +function publishBehavior(value) { + return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(new _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__["BehaviorSubject"](value))(source); }; } +//# sourceMappingURL=publishBehavior.js.map /***/ }), -/* 263 */ -/***/ (function(module, exports, __webpack_require__) { +/* 322 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - - -/* eslint-disable no-unused-vars */ -var getOwnPropertySymbols = Object.getOwnPropertySymbols; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return publishLast; }); +/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(206); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314); +/** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */ -function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - return Object(val); +function publishLast() { + return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(new _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__["AsyncSubject"]())(source); }; } +//# sourceMappingURL=publishLast.js.map -function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } +/***/ }), +/* 323 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return publishReplay; }); +/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(189); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314); +/** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */ - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } +function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { + if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') { + scheduler = selectorOrScheduler; + } + var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined; + var subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__["ReplaySubject"](bufferSize, windowTime, scheduler); + return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(function () { return subject; }, selector)(source); }; } +//# sourceMappingURL=publishReplay.js.map -module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); +/***/ }), +/* 324 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "race", function() { return race; }); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(173); +/* harmony import */ var _observable_race__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(257); +/** PURE_IMPORTS_START _util_isArray,_observable_race PURE_IMPORTS_END */ - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - return to; -}; +function race() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function raceOperatorFunction(source) { + if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(observables[0])) { + observables = observables[0]; + } + return source.lift.call(_observable_race__WEBPACK_IMPORTED_MODULE_1__["race"].apply(void 0, [source].concat(observables))); + }; +} +//# sourceMappingURL=race.js.map /***/ }), -/* 264 */ -/***/ (function(module, exports, __webpack_require__) { +/* 325 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return repeat; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(199); +/** PURE_IMPORTS_START tslib,_Subscriber,_observable_empty PURE_IMPORTS_END */ -var processFn = function (fn, P, opts) { - return function () { - var that = this; - var args = new Array(arguments.length); - for (var i = 0; i < arguments.length; i++) { - args[i] = arguments[i]; - } +function repeat(count) { + if (count === void 0) { + count = -1; + } + return function (source) { + if (count === 0) { + return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])(); + } + else if (count < 0) { + return source.lift(new RepeatOperator(-1, source)); + } + else { + return source.lift(new RepeatOperator(count - 1, source)); + } + }; +} +var RepeatOperator = /*@__PURE__*/ (function () { + function RepeatOperator(count, source) { + this.count = count; + this.source = source; + } + RepeatOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source)); + }; + return RepeatOperator; +}()); +var RepeatSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RepeatSubscriber, _super); + function RepeatSubscriber(destination, count, source) { + var _this = _super.call(this, destination) || this; + _this.count = count; + _this.source = source; + return _this; + } + RepeatSubscriber.prototype.complete = function () { + if (!this.isStopped) { + var _a = this, source = _a.source, count = _a.count; + if (count === 0) { + return _super.prototype.complete.call(this); + } + else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + }; + return RepeatSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=repeat.js.map - return new P(function (resolve, reject) { - args.push(function (err, result) { - if (err) { - reject(err); - } else if (opts.multiArgs) { - var results = new Array(arguments.length - 1); - for (var i = 1; i < arguments.length; i++) { - results[i - 1] = arguments[i]; - } +/***/ }), +/* 326 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - resolve(results); - } else { - resolve(result); - } - }); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repeatWhen", function() { return repeatWhen; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(183); +/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(175); +/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(176); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_Subject,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - fn.apply(that, args); - }); - }; -}; -var pify = module.exports = function (obj, P, opts) { - if (typeof P !== 'function') { - opts = P; - P = Promise; - } - opts = opts || {}; - opts.exclude = opts.exclude || [/.+Sync$/]; - var filter = function (key) { - var match = function (pattern) { - return typeof pattern === 'string' ? key === pattern : pattern.test(key); - }; - return opts.include ? opts.include.some(match) : !opts.exclude.some(match); - }; - var ret = typeof obj === 'function' ? function () { - if (opts.excludeMain) { - return obj.apply(this, arguments); - } +function repeatWhen(notifier) { + return function (source) { return source.lift(new RepeatWhenOperator(notifier)); }; +} +var RepeatWhenOperator = /*@__PURE__*/ (function () { + function RepeatWhenOperator(notifier) { + this.notifier = notifier; + } + RepeatWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source)); + }; + return RepeatWhenOperator; +}()); +var RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RepeatWhenSubscriber, _super); + function RepeatWhenSubscriber(destination, notifier, source) { + var _this = _super.call(this, destination) || this; + _this.notifier = notifier; + _this.source = source; + _this.sourceIsBeingSubscribedTo = true; + return _this; + } + RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.sourceIsBeingSubscribedTo = true; + this.source.subscribe(this); + }; + RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) { + if (this.sourceIsBeingSubscribedTo === false) { + return _super.prototype.complete.call(this); + } + }; + RepeatWhenSubscriber.prototype.complete = function () { + this.sourceIsBeingSubscribedTo = false; + if (!this.isStopped) { + if (!this.retries) { + this.subscribeToRetries(); + } + if (!this.retriesSubscription || this.retriesSubscription.closed) { + return _super.prototype.complete.call(this); + } + this._unsubscribeAndRecycle(); + this.notifications.next(); + } + }; + RepeatWhenSubscriber.prototype._unsubscribe = function () { + var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription; + if (notifications) { + notifications.unsubscribe(); + this.notifications = null; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = null; + } + this.retries = null; + }; + RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () { + var _unsubscribe = this._unsubscribe; + this._unsubscribe = null; + _super.prototype._unsubscribeAndRecycle.call(this); + this._unsubscribe = _unsubscribe; + return this; + }; + RepeatWhenSubscriber.prototype.subscribeToRetries = function () { + this.notifications = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + var retries = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(this.notifier)(this.notifications); + if (retries === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) { + return _super.prototype.complete.call(this); + } + this.retries = retries; + this.retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, retries); + }; + return RepeatWhenSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"])); +//# sourceMappingURL=repeatWhen.js.map - return processFn(obj, P, opts).apply(this, arguments); - } : {}; - return Object.keys(obj).reduce(function (ret, key) { - var x = obj[key]; +/***/ }), +/* 327 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - ret[key] = typeof x === 'function' && filter(key) ? processFn(x, P, opts) : x; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return retry; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - return ret; - }, ret); -}; -pify.all = pify; +function retry(count) { + if (count === void 0) { + count = -1; + } + return function (source) { return source.lift(new RetryOperator(count, source)); }; +} +var RetryOperator = /*@__PURE__*/ (function () { + function RetryOperator(count, source) { + this.count = count; + this.source = source; + } + RetryOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source)); + }; + return RetryOperator; +}()); +var RetrySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RetrySubscriber, _super); + function RetrySubscriber(destination, count, source) { + var _this = _super.call(this, destination) || this; + _this.count = count; + _this.source = source; + return _this; + } + RetrySubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var _a = this, source = _a.source, count = _a.count; + if (count === 0) { + return _super.prototype.error.call(this, err); + } + else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + }; + return RetrySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=retry.js.map /***/ }), -/* 265 */ -/***/ (function(module, exports, __webpack_require__) { +/* 328 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "retryWhen", function() { return retryWhen; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(183); +/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(175); +/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(176); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_Subject,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -var path = __webpack_require__(5); - -module.exports = function (str) { - return path.resolve(str) === path.resolve(process.cwd()); -}; -/***/ }), -/* 266 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; -var isPathInside = __webpack_require__(267); -module.exports = function (str) { - return isPathInside(str, process.cwd()); -}; +function retryWhen(notifier) { + return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); }; +} +var RetryWhenOperator = /*@__PURE__*/ (function () { + function RetryWhenOperator(notifier, source) { + this.notifier = notifier; + this.source = source; + } + RetryWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source)); + }; + return RetryWhenOperator; +}()); +var RetryWhenSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RetryWhenSubscriber, _super); + function RetryWhenSubscriber(destination, notifier, source) { + var _this = _super.call(this, destination) || this; + _this.notifier = notifier; + _this.source = source; + return _this; + } + RetryWhenSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var errors = this.errors; + var retries = this.retries; + var retriesSubscription = this.retriesSubscription; + if (!retries) { + errors = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + retries = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(this.notifier)(errors); + if (retries === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) { + return _super.prototype.error.call(this, _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"].e); + } + retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, retries); + } + else { + this.errors = null; + this.retriesSubscription = null; + } + this._unsubscribeAndRecycle(); + this.errors = errors; + this.retries = retries; + this.retriesSubscription = retriesSubscription; + errors.next(err); + } + }; + RetryWhenSubscriber.prototype._unsubscribe = function () { + var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription; + if (errors) { + errors.unsubscribe(); + this.errors = null; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = null; + } + this.retries = null; + }; + RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + var _unsubscribe = this._unsubscribe; + this._unsubscribe = null; + this._unsubscribeAndRecycle(); + this._unsubscribe = _unsubscribe; + this.source.subscribe(this); + }; + return RetryWhenSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"])); +//# sourceMappingURL=retryWhen.js.map /***/ }), -/* 267 */ -/***/ (function(module, exports, __webpack_require__) { +/* 329 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sample", function() { return sample; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -var path = __webpack_require__(5); -var pathIsInside = __webpack_require__(268); - -module.exports = function (a, b) { - a = path.resolve(a); - b = path.resolve(b); - if (a === b) { - return false; - } - return pathIsInside(a, b); -}; +function sample(notifier) { + return function (source) { return source.lift(new SampleOperator(notifier)); }; +} +var SampleOperator = /*@__PURE__*/ (function () { + function SampleOperator(notifier) { + this.notifier = notifier; + } + SampleOperator.prototype.call = function (subscriber, source) { + var sampleSubscriber = new SampleSubscriber(subscriber); + var subscription = source.subscribe(sampleSubscriber); + subscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(sampleSubscriber, this.notifier)); + return subscription; + }; + return SampleOperator; +}()); +var SampleSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SampleSubscriber, _super); + function SampleSubscriber() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.hasValue = false; + return _this; + } + SampleSubscriber.prototype._next = function (value) { + this.value = value; + this.hasValue = true; + }; + SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.emitValue(); + }; + SampleSubscriber.prototype.notifyComplete = function () { + this.emitValue(); + }; + SampleSubscriber.prototype.emitValue = function () { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.value); + } + }; + return SampleSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=sample.js.map /***/ }), -/* 268 */ -/***/ (function(module, exports, __webpack_require__) { +/* 330 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sampleTime", function() { return sampleTime; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(211); +/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */ -var path = __webpack_require__(5); - -module.exports = function (thePath, potentialParent) { - // For inside-directory checking, we want to allow trailing slashes, so normalize. - thePath = stripTrailingSep(thePath); - potentialParent = stripTrailingSep(potentialParent); - // Node treats only Windows as case-insensitive in its path module; we follow those conventions. - if (process.platform === "win32") { - thePath = thePath.toLowerCase(); - potentialParent = potentialParent.toLowerCase(); +function sampleTime(period, scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"]; } - - return thePath.lastIndexOf(potentialParent, 0) === 0 && - ( - thePath[potentialParent.length] === path.sep || - thePath[potentialParent.length] === undefined - ); -}; - -function stripTrailingSep(thePath) { - if (thePath[thePath.length - 1] === path.sep) { - return thePath.slice(0, -1); + return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); }; +} +var SampleTimeOperator = /*@__PURE__*/ (function () { + function SampleTimeOperator(period, scheduler) { + this.period = period; + this.scheduler = scheduler; } - return thePath; + SampleTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler)); + }; + return SampleTimeOperator; +}()); +var SampleTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SampleTimeSubscriber, _super); + function SampleTimeSubscriber(destination, period, scheduler) { + var _this = _super.call(this, destination) || this; + _this.period = period; + _this.scheduler = scheduler; + _this.hasValue = false; + _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period })); + return _this; + } + SampleTimeSubscriber.prototype._next = function (value) { + this.lastValue = value; + this.hasValue = true; + }; + SampleTimeSubscriber.prototype.notifyNext = function () { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.lastValue); + } + }; + return SampleTimeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +function dispatchNotification(state) { + var subscriber = state.subscriber, period = state.period; + subscriber.notifyNext(); + this.schedule(state, period); } +//# sourceMappingURL=sampleTime.js.map /***/ }), -/* 269 */ -/***/ (function(module, exports, __webpack_require__) { +/* 331 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sequenceEqual", function() { return sequenceEqual; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SequenceEqualOperator", function() { return SequenceEqualOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SequenceEqualSubscriber", function() { return SequenceEqualSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(175); +/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(176); +/** PURE_IMPORTS_START tslib,_Subscriber,_util_tryCatch,_util_errorObject PURE_IMPORTS_END */ -const processFn = (fn, opts) => function () { - const P = opts.promiseModule; - const args = new Array(arguments.length); - - for (let i = 0; i < arguments.length; i++) { - args[i] = arguments[i]; - } - - return new P((resolve, reject) => { - if (opts.errorFirst) { - args.push(function (err, result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); - - for (let i = 1; i < arguments.length; i++) { - results[i - 1] = arguments[i]; - } - if (err) { - results.unshift(err); - reject(results); - } else { - resolve(results); - } - } else if (err) { - reject(err); - } else { - resolve(result); - } - }); - } else { - args.push(function (result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); - for (let i = 0; i < arguments.length; i++) { - results[i] = arguments[i]; - } +function sequenceEqual(compareTo, comparor) { + return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparor)); }; +} +var SequenceEqualOperator = /*@__PURE__*/ (function () { + function SequenceEqualOperator(compareTo, comparor) { + this.compareTo = compareTo; + this.comparor = comparor; + } + SequenceEqualOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparor)); + }; + return SequenceEqualOperator; +}()); - resolve(results); - } else { - resolve(result); - } - }); - } +var SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SequenceEqualSubscriber, _super); + function SequenceEqualSubscriber(destination, compareTo, comparor) { + var _this = _super.call(this, destination) || this; + _this.compareTo = compareTo; + _this.comparor = comparor; + _this._a = []; + _this._b = []; + _this._oneComplete = false; + _this.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this))); + return _this; + } + SequenceEqualSubscriber.prototype._next = function (value) { + if (this._oneComplete && this._b.length === 0) { + this.emit(false); + } + else { + this._a.push(value); + this.checkValues(); + } + }; + SequenceEqualSubscriber.prototype._complete = function () { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + }; + SequenceEqualSubscriber.prototype.checkValues = function () { + var _c = this, _a = _c._a, _b = _c._b, comparor = _c.comparor; + while (_a.length > 0 && _b.length > 0) { + var a = _a.shift(); + var b = _b.shift(); + var areEqual = false; + if (comparor) { + areEqual = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(comparor)(a, b); + if (areEqual === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) { + this.destination.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"].e); + } + } + else { + areEqual = a === b; + } + if (!areEqual) { + this.emit(false); + } + } + }; + SequenceEqualSubscriber.prototype.emit = function (value) { + var destination = this.destination; + destination.next(value); + destination.complete(); + }; + SequenceEqualSubscriber.prototype.nextB = function (value) { + if (this._oneComplete && this._a.length === 0) { + this.emit(false); + } + else { + this._b.push(value); + this.checkValues(); + } + }; + return SequenceEqualSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); - fn.apply(this, args); - }); -}; +var SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SequenceEqualCompareToSubscriber, _super); + function SequenceEqualCompareToSubscriber(destination, parent) { + var _this = _super.call(this, destination) || this; + _this.parent = parent; + return _this; + } + SequenceEqualCompareToSubscriber.prototype._next = function (value) { + this.parent.nextB(value); + }; + SequenceEqualCompareToSubscriber.prototype._error = function (err) { + this.parent.error(err); + }; + SequenceEqualCompareToSubscriber.prototype._complete = function () { + this.parent._complete(); + }; + return SequenceEqualCompareToSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=sequenceEqual.js.map -module.exports = (obj, opts) => { - opts = Object.assign({ - exclude: [/.+(Sync|Stream)$/], - errorFirst: true, - promiseModule: Promise - }, opts); - const filter = key => { - const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); - return opts.include ? opts.include.some(match) : !opts.exclude.some(match); - }; +/***/ }), +/* 332 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - let ret; - if (typeof obj === 'function') { - ret = function () { - if (opts.excludeMain) { - return obj.apply(this, arguments); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "share", function() { return share; }); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(314); +/* harmony import */ var _refCount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(186); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(183); +/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */ - return processFn(obj, opts).apply(this, arguments); - }; - } else { - ret = Object.create(Object.getPrototypeOf(obj)); - } - for (const key in obj) { // eslint-disable-line guard-for-in - const x = obj[key]; - ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; - } - return ret; -}; +function shareSubjectFactory() { + return new _Subject__WEBPACK_IMPORTED_MODULE_2__["Subject"](); +} +function share() { + return function (source) { return Object(_refCount__WEBPACK_IMPORTED_MODULE_1__["refCount"])()(Object(_multicast__WEBPACK_IMPORTED_MODULE_0__["multicast"])(shareSubjectFactory)(source)); }; +} +//# sourceMappingURL=share.js.map /***/ }), -/* 270 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = rimraf -rimraf.sync = rimrafSync +/* 333 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var assert = __webpack_require__(62) -var path = __webpack_require__(5) -var fs = __webpack_require__(13) -var glob = __webpack_require__(48) -var _0666 = parseInt('666', 8) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shareReplay", function() { return shareReplay; }); +/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(189); +/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */ -var defaultGlobOpts = { - nosort: true, - silent: true +function shareReplay(bufferSize, windowTime, scheduler) { + return function (source) { return source.lift(shareReplayOperator(bufferSize, windowTime, scheduler)); }; +} +function shareReplayOperator(bufferSize, windowTime, scheduler) { + var subject; + var refCount = 0; + var subscription; + var hasError = false; + var isComplete = false; + return function shareReplayOperation(source) { + refCount++; + if (!subject || hasError) { + hasError = false; + subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__["ReplaySubject"](bufferSize, windowTime, scheduler); + subscription = source.subscribe({ + next: function (value) { subject.next(value); }, + error: function (err) { + hasError = true; + subject.error(err); + }, + complete: function () { + isComplete = true; + subject.complete(); + }, + }); + } + var innerSub = subject.subscribe(this); + return function () { + refCount--; + innerSub.unsubscribe(); + if (subscription && refCount === 0 && isComplete) { + subscription.unsubscribe(); + } + }; + }; } +//# sourceMappingURL=shareReplay.js.map -// for EMFILE handling -var timeout = 0 -var isWindows = (process.platform === "win32") +/***/ }), +/* 334 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function defaults (options) { - var methods = [ - 'unlink', - 'chmod', - 'stat', - 'lstat', - 'rmdir', - 'readdir' - ] - methods.forEach(function(m) { - options[m] = options[m] || fs[m] - m = m + 'Sync' - options[m] = options[m] || fs[m] - }) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "single", function() { return single; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(219); +/** PURE_IMPORTS_START tslib,_Subscriber,_util_EmptyError PURE_IMPORTS_END */ - options.maxBusyTries = options.maxBusyTries || 3 - options.emfileWait = options.emfileWait || 1000 - if (options.glob === false) { - options.disableGlob = true - } - options.disableGlob = options.disableGlob || false - options.glob = options.glob || defaultGlobOpts -} -function rimraf (p, options, cb) { - if (typeof options === 'function') { - cb = options - options = {} - } - assert(p, 'rimraf: missing path') - assert.equal(typeof p, 'string', 'rimraf: path should be a string') - assert.equal(typeof cb, 'function', 'rimraf: callback function required') - assert(options, 'rimraf: invalid options argument provided') - assert.equal(typeof options, 'object', 'rimraf: options should be object') +function single(predicate) { + return function (source) { return source.lift(new SingleOperator(predicate, source)); }; +} +var SingleOperator = /*@__PURE__*/ (function () { + function SingleOperator(predicate, source) { + this.predicate = predicate; + this.source = source; + } + SingleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source)); + }; + return SingleOperator; +}()); +var SingleSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SingleSubscriber, _super); + function SingleSubscriber(destination, predicate, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.seenValue = false; + _this.index = 0; + return _this; + } + SingleSubscriber.prototype.applySingleValue = function (value) { + if (this.seenValue) { + this.destination.error('Sequence contains more than one element'); + } + else { + this.seenValue = true; + this.singleValue = value; + } + }; + SingleSubscriber.prototype._next = function (value) { + var index = this.index++; + if (this.predicate) { + this.tryNext(value, index); + } + else { + this.applySingleValue(value); + } + }; + SingleSubscriber.prototype.tryNext = function (value, index) { + try { + if (this.predicate(value, index, this.source)) { + this.applySingleValue(value); + } + } + catch (err) { + this.destination.error(err); + } + }; + SingleSubscriber.prototype._complete = function () { + var destination = this.destination; + if (this.index > 0) { + destination.next(this.seenValue ? this.singleValue : undefined); + destination.complete(); + } + else { + destination.error(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__["EmptyError"]); + } + }; + return SingleSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=single.js.map - defaults(options) - var busyTries = 0 - var errState = null - var n = 0 +/***/ }), +/* 335 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (options.disableGlob || !glob.hasMagic(p)) - return afterGlob(null, [p]) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skip", function() { return skip; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - options.lstat(p, function (er, stat) { - if (!er) - return afterGlob(null, [p]) - glob(p, options.glob, afterGlob) - }) +function skip(count) { + return function (source) { return source.lift(new SkipOperator(count)); }; +} +var SkipOperator = /*@__PURE__*/ (function () { + function SkipOperator(total) { + this.total = total; + } + SkipOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SkipSubscriber(subscriber, this.total)); + }; + return SkipOperator; +}()); +var SkipSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipSubscriber, _super); + function SkipSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.count = 0; + return _this; + } + SkipSubscriber.prototype._next = function (x) { + if (++this.count > this.total) { + this.destination.next(x); + } + }; + return SkipSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=skip.js.map - function next (er) { - errState = errState || er - if (--n === 0) - cb(errState) - } - function afterGlob (er, results) { - if (er) - return cb(er) +/***/ }), +/* 336 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - n = results.length - if (n === 0) - return cb() +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipLast", function() { return skipLast; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(218); +/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */ - results.forEach(function (p) { - rimraf_(p, options, function CB (er) { - if (er) { - if ((er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") && - busyTries < options.maxBusyTries) { - busyTries ++ - var time = busyTries * 100 - // try again, with the same exact callback as this one. - return setTimeout(function () { - rimraf_(p, options, CB) - }, time) - } - // this one won't happen if graceful-fs is used. - if (er.code === "EMFILE" && timeout < options.emfileWait) { - return setTimeout(function () { - rimraf_(p, options, CB) - }, timeout ++) - } - // already gone - if (er.code === "ENOENT") er = null +function skipLast(count) { + return function (source) { return source.lift(new SkipLastOperator(count)); }; +} +var SkipLastOperator = /*@__PURE__*/ (function () { + function SkipLastOperator(_skipCount) { + this._skipCount = _skipCount; + if (this._skipCount < 0) { + throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__["ArgumentOutOfRangeError"]; + } + } + SkipLastOperator.prototype.call = function (subscriber, source) { + if (this._skipCount === 0) { + return source.subscribe(new _Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"](subscriber)); + } + else { + return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount)); + } + }; + return SkipLastOperator; +}()); +var SkipLastSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipLastSubscriber, _super); + function SkipLastSubscriber(destination, _skipCount) { + var _this = _super.call(this, destination) || this; + _this._skipCount = _skipCount; + _this._count = 0; + _this._ring = new Array(_skipCount); + return _this; + } + SkipLastSubscriber.prototype._next = function (value) { + var skipCount = this._skipCount; + var count = this._count++; + if (count < skipCount) { + this._ring[count] = value; + } + else { + var currentIndex = count % skipCount; + var ring = this._ring; + var oldValue = ring[currentIndex]; + ring[currentIndex] = value; + this.destination.next(oldValue); } + }; + return SkipLastSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=skipLast.js.map - timeout = 0 - next(er) - }) - }) - } -} -// Two possible strategies. -// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR -// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR -// -// Both result in an extra syscall when you guess wrong. However, there -// are likely far more normal files in the world than directories. This -// is based on the assumption that a the average number of files per -// directory is >= 1. -// -// If anyone ever complains about this, then I guess the strategy could -// be made configurable somehow. But until then, YAGNI. -function rimraf_ (p, options, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') +/***/ }), +/* 337 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - // sunos lets the root user unlink directories, which is... weird. - // so we have to lstat here and make sure it's not a dir. - options.lstat(p, function (er, st) { - if (er && er.code === "ENOENT") - return cb(null) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipUntil", function() { return skipUntil; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - // Windows can EPERM on stat. Life is suffering. - if (er && er.code === "EPERM" && isWindows) - fixWinEPERM(p, options, er, cb) - if (st && st.isDirectory()) - return rmdir(p, options, er, cb) - options.unlink(p, function (er) { - if (er) { - if (er.code === "ENOENT") - return cb(null) - if (er.code === "EPERM") - return (isWindows) - ? fixWinEPERM(p, options, er, cb) - : rmdir(p, options, er, cb) - if (er.code === "EISDIR") - return rmdir(p, options, er, cb) - } - return cb(er) - }) - }) +function skipUntil(notifier) { + return function (source) { return source.lift(new SkipUntilOperator(notifier)); }; } +var SkipUntilOperator = /*@__PURE__*/ (function () { + function SkipUntilOperator(notifier) { + this.notifier = notifier; + } + SkipUntilOperator.prototype.call = function (destination, source) { + return source.subscribe(new SkipUntilSubscriber(destination, this.notifier)); + }; + return SkipUntilOperator; +}()); +var SkipUntilSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipUntilSubscriber, _super); + function SkipUntilSubscriber(destination, notifier) { + var _this = _super.call(this, destination) || this; + _this.hasValue = false; + _this.add(_this.innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, notifier)); + return _this; + } + SkipUntilSubscriber.prototype._next = function (value) { + if (this.hasValue) { + _super.prototype._next.call(this, value); + } + }; + SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.hasValue = true; + if (this.innerSubscription) { + this.innerSubscription.unsubscribe(); + } + }; + SkipUntilSubscriber.prototype.notifyComplete = function () { + }; + return SkipUntilSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=skipUntil.js.map -function fixWinEPERM (p, options, er, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') - if (er) - assert(er instanceof Error) - - options.chmod(p, _0666, function (er2) { - if (er2) - cb(er2.code === "ENOENT" ? null : er) - else - options.stat(p, function(er3, stats) { - if (er3) - cb(er3.code === "ENOENT" ? null : er) - else if (stats.isDirectory()) - rmdir(p, options, er, cb) - else - options.unlink(p, cb) - }) - }) -} -function fixWinEPERMSync (p, options, er) { - assert(p) - assert(options) - if (er) - assert(er instanceof Error) +/***/ }), +/* 338 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - try { - options.chmodSync(p, _0666) - } catch (er2) { - if (er2.code === "ENOENT") - return - else - throw er - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipWhile", function() { return skipWhile; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - try { - var stats = options.statSync(p) - } catch (er3) { - if (er3.code === "ENOENT") - return - else - throw er - } - if (stats.isDirectory()) - rmdirSync(p, options, er) - else - options.unlinkSync(p) +function skipWhile(predicate) { + return function (source) { return source.lift(new SkipWhileOperator(predicate)); }; } +var SkipWhileOperator = /*@__PURE__*/ (function () { + function SkipWhileOperator(predicate) { + this.predicate = predicate; + } + SkipWhileOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate)); + }; + return SkipWhileOperator; +}()); +var SkipWhileSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipWhileSubscriber, _super); + function SkipWhileSubscriber(destination, predicate) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.skipping = true; + _this.index = 0; + return _this; + } + SkipWhileSubscriber.prototype._next = function (value) { + var destination = this.destination; + if (this.skipping) { + this.tryCallPredicate(value); + } + if (!this.skipping) { + destination.next(value); + } + }; + SkipWhileSubscriber.prototype.tryCallPredicate = function (value) { + try { + var result = this.predicate(value, this.index++); + this.skipping = Boolean(result); + } + catch (err) { + this.destination.error(err); + } + }; + return SkipWhileSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=skipWhile.js.map -function rmdir (p, options, originalEr, cb) { - assert(p) - assert(options) - if (originalEr) - assert(originalEr instanceof Error) - assert(typeof cb === 'function') - // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) - // if we guessed wrong, and it's not a directory, then - // raise the original error. - options.rmdir(p, function (er) { - if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")) - rmkids(p, options, cb) - else if (er && er.code === "ENOTDIR") - cb(originalEr) - else - cb(er) - }) -} +/***/ }), +/* 339 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function rmkids(p, options, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startWith", function() { return startWith; }); +/* harmony import */ var _observable_fromArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(202); +/* harmony import */ var _observable_scalar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(204); +/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(199); +/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(235); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(201); +/** PURE_IMPORTS_START _observable_fromArray,_observable_scalar,_observable_empty,_observable_concat,_util_isScheduler PURE_IMPORTS_END */ - options.readdir(p, function (er, files) { - if (er) - return cb(er) - var n = files.length - if (n === 0) - return options.rmdir(p, cb) - var errState - files.forEach(function (f) { - rimraf(path.join(p, f), options, function (er) { - if (errState) - return - if (er) - return cb(errState = er) - if (--n === 0) - options.rmdir(p, cb) - }) - }) - }) -} -// this looks simpler, and is strictly *faster*, but will -// tie up the JavaScript thread and fail on excessively -// deep directory trees. -function rimrafSync (p, options) { - options = options || {} - defaults(options) - assert(p, 'rimraf: missing path') - assert.equal(typeof p, 'string', 'rimraf: path should be a string') - assert(options, 'rimraf: missing options') - assert.equal(typeof options, 'object', 'rimraf: options should be object') - var results - if (options.disableGlob || !glob.hasMagic(p)) { - results = [p] - } else { - try { - options.lstatSync(p) - results = [p] - } catch (er) { - results = glob.sync(p, options.glob) +function startWith() { + var array = []; + for (var _i = 0; _i < arguments.length; _i++) { + array[_i] = arguments[_i]; } - } + return function (source) { + var scheduler = array[array.length - 1]; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_4__["isScheduler"])(scheduler)) { + array.pop(); + } + else { + scheduler = null; + } + var len = array.length; + if (len === 1 && !scheduler) { + return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_3__["concat"])(Object(_observable_scalar__WEBPACK_IMPORTED_MODULE_1__["scalar"])(array[0]), source); + } + else if (len > 0) { + return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_3__["concat"])(Object(_observable_fromArray__WEBPACK_IMPORTED_MODULE_0__["fromArray"])(array, scheduler), source); + } + else { + return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_3__["concat"])(Object(_observable_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])(scheduler), source); + } + }; +} +//# sourceMappingURL=startWith.js.map - if (!results.length) - return - for (var i = 0; i < results.length; i++) { - var p = results[i] +/***/ }), +/* 340 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - try { - var st = options.lstatSync(p) - } catch (er) { - if (er.code === "ENOENT") - return +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return subscribeOn; }); +/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(341); +/** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */ - // Windows can EPERM on stat. Life is suffering. - if (er.code === "EPERM" && isWindows) - fixWinEPERMSync(p, options, er) +function subscribeOn(scheduler, delay) { + if (delay === void 0) { + delay = 0; } + return function subscribeOnOperatorFunction(source) { + return source.lift(new SubscribeOnOperator(scheduler, delay)); + }; +} +var SubscribeOnOperator = /*@__PURE__*/ (function () { + function SubscribeOnOperator(scheduler, delay) { + this.scheduler = scheduler; + this.delay = delay; + } + SubscribeOnOperator.prototype.call = function (subscriber, source) { + return new _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__["SubscribeOnObservable"](source, this.delay, this.scheduler).subscribe(subscriber); + }; + return SubscribeOnOperator; +}()); +//# sourceMappingURL=subscribeOn.js.map - try { - // sunos lets the root user unlink directories, which is... weird. - if (st && st.isDirectory()) - rmdirSync(p, options, null) - else - options.unlinkSync(p) - } catch (er) { - if (er.code === "ENOENT") - return - if (er.code === "EPERM") - return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er) - if (er.code !== "EISDIR") - throw er - rmdirSync(p, options, er) - } - } -} +/***/ }), +/* 341 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function rmdirSync (p, options, originalEr) { - assert(p) - assert(options) - if (originalEr) - assert(originalEr instanceof Error) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubscribeOnObservable", function() { return SubscribeOnObservable; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(164); +/* harmony import */ var _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(207); +/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(252); +/** PURE_IMPORTS_START tslib,_Observable,_scheduler_asap,_util_isNumeric PURE_IMPORTS_END */ - try { - options.rmdirSync(p) - } catch (er) { - if (er.code === "ENOENT") - return - if (er.code === "ENOTDIR") - throw originalEr - if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM") - rmkidsSync(p, options) - } -} -function rmkidsSync (p, options) { - assert(p) - assert(options) - options.readdirSync(p).forEach(function (f) { - rimrafSync(path.join(p, f), options) - }) - // We only end up here once we got ENOTEMPTY at least once, and - // at this point, we are guaranteed to have removed all the kids. - // So, we know that it won't be ENOENT or ENOTDIR or anything else. - // try really hard to delete stuff on windows, because it has a - // PROFOUNDLY annoying habit of not closing handles promptly when - // files are deleted, resulting in spurious ENOTEMPTY errors. - var retries = isWindows ? 100 : 1 - var i = 0 - do { - var threw = true - try { - var ret = options.rmdirSync(p, options) - threw = false - return ret - } finally { - if (++i < retries && threw) - continue + +var SubscribeOnObservable = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubscribeOnObservable, _super); + function SubscribeOnObservable(source, delayTime, scheduler) { + if (delayTime === void 0) { + delayTime = 0; + } + if (scheduler === void 0) { + scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__["asap"]; + } + var _this = _super.call(this) || this; + _this.source = source; + _this.delayTime = delayTime; + _this.scheduler = scheduler; + if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_3__["isNumeric"])(delayTime) || delayTime < 0) { + _this.delayTime = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + _this.scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__["asap"]; + } + return _this; } - } while (true) -} + SubscribeOnObservable.create = function (source, delay, scheduler) { + if (delay === void 0) { + delay = 0; + } + if (scheduler === void 0) { + scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__["asap"]; + } + return new SubscribeOnObservable(source, delay, scheduler); + }; + SubscribeOnObservable.dispatch = function (arg) { + var source = arg.source, subscriber = arg.subscriber; + return this.add(source.subscribe(subscriber)); + }; + SubscribeOnObservable.prototype._subscribe = function (subscriber) { + var delay = this.delayTime; + var source = this.source; + var scheduler = this.scheduler; + return scheduler.schedule(SubscribeOnObservable.dispatch, delay, { + source: source, subscriber: subscriber + }); + }; + return SubscribeOnObservable; +}(_Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"])); + +//# sourceMappingURL=SubscribeOnObservable.js.map /***/ }), -/* 271 */ -/***/ (function(module, exports, __webpack_require__) { +/* 342 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return switchAll; }); +/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(343); +/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(216); +/** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */ -module.exports = (iterable, mapper, opts) => new Promise((resolve, reject) => { - opts = Object.assign({ - concurrency: Infinity - }, opts); - if (typeof mapper !== 'function') { - throw new TypeError('Mapper function is required'); - } +function switchAll() { + return Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__["switchMap"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"]); +} +//# sourceMappingURL=switchAll.js.map - const concurrency = opts.concurrency; - if (!(typeof concurrency === 'number' && concurrency >= 1)) { - throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${concurrency}\` (${typeof concurrency})`); - } +/***/ }), +/* 343 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - const ret = []; - const iterator = iterable[Symbol.iterator](); - let isRejected = false; - let iterableDone = false; - let resolvingCount = 0; - let currentIdx = 0; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchMap", function() { return switchMap; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(222); +/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(236); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */ - const next = () => { - if (isRejected) { - return; - } - const nextItem = iterator.next(); - const i = currentIdx; - currentIdx++; - if (nextItem.done) { - iterableDone = true; - if (resolvingCount === 0) { - resolve(ret); - } - return; - } +function switchMap(project, resultSelector) { + if (typeof resultSelector === 'function') { + return function (source) { return source.pipe(switchMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_4__["from"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; + } + return function (source) { return source.lift(new SwitchMapOperator(project)); }; +} +var SwitchMapOperator = /*@__PURE__*/ (function () { + function SwitchMapOperator(project) { + this.project = project; + } + SwitchMapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SwitchMapSubscriber(subscriber, this.project)); + }; + return SwitchMapOperator; +}()); +var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SwitchMapSubscriber, _super); + function SwitchMapSubscriber(destination, project) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.index = 0; + return _this; + } + SwitchMapSubscriber.prototype._next = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); + } + catch (error) { + this.destination.error(error); + return; + } + this._innerSub(result, value, index); + }; + SwitchMapSubscriber.prototype._innerSub = function (result, value, index) { + var innerSubscription = this.innerSubscription; + if (innerSubscription) { + innerSubscription.unsubscribe(); + } + this.add(this.innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, result, value, index)); + }; + SwitchMapSubscriber.prototype._complete = function () { + var innerSubscription = this.innerSubscription; + if (!innerSubscription || innerSubscription.closed) { + _super.prototype._complete.call(this); + } + }; + SwitchMapSubscriber.prototype._unsubscribe = function () { + this.innerSubscription = null; + }; + SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) { + this.remove(innerSub); + this.innerSubscription = null; + if (this.isStopped) { + _super.prototype._complete.call(this); + } + }; + SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(innerValue); + }; + return SwitchMapSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=switchMap.js.map - resolvingCount++; - Promise.resolve(nextItem.value) - .then(el => mapper(el, i)) - .then( - val => { - ret[i] = val; - resolvingCount--; - next(); - }, - err => { - isRejected = true; - reject(err); - } - ); - }; +/***/ }), +/* 344 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - for (let i = 0; i < concurrency; i++) { - next(); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return switchMapTo; }); +/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(343); +/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */ - if (iterableDone) { - break; - } - } -}); +function switchMapTo(innerObservable, resultSelector) { + return resultSelector ? Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__["switchMap"])(function () { return innerObservable; }, resultSelector) : Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__["switchMap"])(function () { return innerObservable; }); +} +//# sourceMappingURL=switchMapTo.js.map /***/ }), -/* 272 */ -/***/ (function(module, exports, __webpack_require__) { +/* 345 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeUntil", function() { return takeUntil; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -const chalk = __webpack_require__(26); -const cliCursor = __webpack_require__(273); -const cliSpinners = __webpack_require__(277); -const logSymbols = __webpack_require__(128); -class Ora { - constructor(options) { - if (typeof options === 'string') { - options = { - text: options - }; - } - this.options = Object.assign({ - text: '', - color: 'cyan', - stream: process.stderr - }, options); +function takeUntil(notifier) { + return function (source) { return source.lift(new TakeUntilOperator(notifier)); }; +} +var TakeUntilOperator = /*@__PURE__*/ (function () { + function TakeUntilOperator(notifier) { + this.notifier = notifier; + } + TakeUntilOperator.prototype.call = function (subscriber, source) { + var takeUntilSubscriber = new TakeUntilSubscriber(subscriber); + var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(takeUntilSubscriber, this.notifier); + if (notifierSubscription && !notifierSubscription.closed) { + takeUntilSubscriber.add(notifierSubscription); + return source.subscribe(takeUntilSubscriber); + } + return takeUntilSubscriber; + }; + return TakeUntilOperator; +}()); +var TakeUntilSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeUntilSubscriber, _super); + function TakeUntilSubscriber(destination) { + return _super.call(this, destination) || this; + } + TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.complete(); + }; + TakeUntilSubscriber.prototype.notifyComplete = function () { + }; + return TakeUntilSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=takeUntil.js.map - const sp = this.options.spinner; - this.spinner = typeof sp === 'object' ? sp : (process.platform === 'win32' ? cliSpinners.line : (cliSpinners[sp] || cliSpinners.dots)); // eslint-disable-line no-nested-ternary - if (this.spinner.frames === undefined) { - throw new Error('Spinner must define `frames`'); - } +/***/ }), +/* 346 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - this.text = this.options.text; - this.color = this.options.color; - this.interval = this.options.interval || this.spinner.interval || 100; - this.stream = this.options.stream; - this.id = null; - this.frameIndex = 0; - this.enabled = typeof this.options.enabled === 'boolean' ? this.options.enabled : ((this.stream && this.stream.isTTY) && !process.env.CI); - } - frame() { - const frames = this.spinner.frames; - let frame = frames[this.frameIndex]; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeWhile", function() { return takeWhile; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - if (this.color) { - frame = chalk[this.color](frame); - } - this.frameIndex = ++this.frameIndex % frames.length; +function takeWhile(predicate) { + return function (source) { return source.lift(new TakeWhileOperator(predicate)); }; +} +var TakeWhileOperator = /*@__PURE__*/ (function () { + function TakeWhileOperator(predicate) { + this.predicate = predicate; + } + TakeWhileOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate)); + }; + return TakeWhileOperator; +}()); +var TakeWhileSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeWhileSubscriber, _super); + function TakeWhileSubscriber(destination, predicate) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.index = 0; + return _this; + } + TakeWhileSubscriber.prototype._next = function (value) { + var destination = this.destination; + var result; + try { + result = this.predicate(value, this.index++); + } + catch (err) { + destination.error(err); + return; + } + this.nextOrComplete(value, result); + }; + TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) { + var destination = this.destination; + if (Boolean(predicateResult)) { + destination.next(value); + } + else { + destination.complete(); + } + }; + return TakeWhileSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=takeWhile.js.map - return frame + ' ' + this.text; - } - clear() { - if (!this.enabled) { - return this; - } - this.stream.clearLine(); - this.stream.cursorTo(0); +/***/ }), +/* 347 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return this; - } - render() { - this.clear(); - this.stream.write(this.frame()); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultThrottleConfig", function() { return defaultThrottleConfig; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return throttle; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - return this; - } - start(text) { - if (text) { - this.text = text; - } - if (!this.enabled || this.id) { - return this; - } - cliCursor.hide(this.stream); - this.render(); - this.id = setInterval(this.render.bind(this), this.interval); +var defaultThrottleConfig = { + leading: true, + trailing: false +}; +function throttle(durationSelector, config) { + if (config === void 0) { + config = defaultThrottleConfig; + } + return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); }; +} +var ThrottleOperator = /*@__PURE__*/ (function () { + function ThrottleOperator(durationSelector, leading, trailing) { + this.durationSelector = durationSelector; + this.leading = leading; + this.trailing = trailing; + } + ThrottleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing)); + }; + return ThrottleOperator; +}()); +var ThrottleSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ThrottleSubscriber, _super); + function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.durationSelector = durationSelector; + _this._leading = _leading; + _this._trailing = _trailing; + _this._hasValue = false; + return _this; + } + ThrottleSubscriber.prototype._next = function (value) { + this._hasValue = true; + this._sendValue = value; + if (!this._throttled) { + if (this._leading) { + this.send(); + } + else { + this.throttle(value); + } + } + }; + ThrottleSubscriber.prototype.send = function () { + var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue; + if (_hasValue) { + this.destination.next(_sendValue); + this.throttle(_sendValue); + } + this._hasValue = false; + this._sendValue = null; + }; + ThrottleSubscriber.prototype.throttle = function (value) { + var duration = this.tryDurationSelector(value); + if (duration) { + this.add(this._throttled = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, duration)); + } + }; + ThrottleSubscriber.prototype.tryDurationSelector = function (value) { + try { + return this.durationSelector(value); + } + catch (err) { + this.destination.error(err); + return null; + } + }; + ThrottleSubscriber.prototype.throttlingDone = function () { + var _a = this, _throttled = _a._throttled, _trailing = _a._trailing; + if (_throttled) { + _throttled.unsubscribe(); + } + this._throttled = null; + if (_trailing) { + this.send(); + } + }; + ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.throttlingDone(); + }; + ThrottleSubscriber.prototype.notifyComplete = function () { + this.throttlingDone(); + }; + return ThrottleSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=throttle.js.map - return this; - } - stop() { - if (!this.enabled) { - return this; - } - clearInterval(this.id); - this.id = null; - this.frameIndex = 0; - this.clear(); - cliCursor.show(this.stream); +/***/ }), +/* 348 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return this; - } - succeed(text) { - return this.stopAndPersist({symbol: logSymbols.success, text}); - } - fail(text) { - return this.stopAndPersist({symbol: logSymbols.error, text}); - } - warn(text) { - return this.stopAndPersist({symbol: logSymbols.warning, text}); - } - info(text) { - return this.stopAndPersist({symbol: logSymbols.info, text}); - } - stopAndPersist(options) { - if (!this.enabled) { - return this; - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throttleTime", function() { return throttleTime; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(211); +/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(347); +/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */ - // Legacy argument - // TODO: Deprecate sometime in the future - if (typeof options === 'string') { - options = { - symbol: options - }; - } - options = options || {}; - this.stop(); - this.stream.write(`${options.symbol || ' '} ${options.text || this.text}\n`); - return this; - } +function throttleTime(duration, scheduler, config) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"]; + } + if (config === void 0) { + config = _throttle__WEBPACK_IMPORTED_MODULE_3__["defaultThrottleConfig"]; + } + return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); }; } - -module.exports = function (opts) { - return new Ora(opts); -}; - -module.exports.promise = (action, options) => { - if (typeof action.then !== 'function') { - throw new TypeError('Parameter `action` must be a Promise'); - } - - const spinner = new Ora(options); - spinner.start(); - - action.then( - () => { - spinner.succeed(); - }, - () => { - spinner.fail(); - } - ); - - return spinner; -}; +var ThrottleTimeOperator = /*@__PURE__*/ (function () { + function ThrottleTimeOperator(duration, scheduler, leading, trailing) { + this.duration = duration; + this.scheduler = scheduler; + this.leading = leading; + this.trailing = trailing; + } + ThrottleTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing)); + }; + return ThrottleTimeOperator; +}()); +var ThrottleTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ThrottleTimeSubscriber, _super); + function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) { + var _this = _super.call(this, destination) || this; + _this.duration = duration; + _this.scheduler = scheduler; + _this.leading = leading; + _this.trailing = trailing; + _this._hasTrailingValue = false; + _this._trailingValue = null; + return _this; + } + ThrottleTimeSubscriber.prototype._next = function (value) { + if (this.throttled) { + if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } + else { + this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this })); + if (this.leading) { + this.destination.next(value); + } + } + }; + ThrottleTimeSubscriber.prototype._complete = function () { + if (this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this.destination.complete(); + } + else { + this.destination.complete(); + } + }; + ThrottleTimeSubscriber.prototype.clearThrottle = function () { + var throttled = this.throttled; + if (throttled) { + if (this.trailing && this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this._trailingValue = null; + this._hasTrailingValue = false; + } + throttled.unsubscribe(); + this.remove(throttled); + this.throttled = null; + } + }; + return ThrottleTimeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +function dispatchNext(arg) { + var subscriber = arg.subscriber; + subscriber.clearThrottle(); +} +//# sourceMappingURL=throttleTime.js.map /***/ }), -/* 273 */ -/***/ (function(module, exports, __webpack_require__) { +/* 349 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return timeInterval; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TimeInterval", function() { return TimeInterval; }); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(211); +/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(309); +/* harmony import */ var _observable_defer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(245); +/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(222); +/** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */ -const restoreCursor = __webpack_require__(274); -let hidden = false; -exports.show = stream => { - const s = stream || process.stderr; - if (!s.isTTY) { - return; - } +function timeInterval(scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]; + } + return function (source) { + return Object(_observable_defer__WEBPACK_IMPORTED_MODULE_2__["defer"])(function () { + return source.pipe(Object(_scan__WEBPACK_IMPORTED_MODULE_1__["scan"])(function (_a, value) { + var current = _a.current; + return ({ value: value, current: scheduler.now(), last: current }); + }, { current: scheduler.now(), value: undefined, last: undefined }), Object(_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (_a) { + var current = _a.current, last = _a.last, value = _a.value; + return new TimeInterval(value, current - last); + })); + }); + }; +} +var TimeInterval = /*@__PURE__*/ (function () { + function TimeInterval(value, interval) { + this.value = value; + this.interval = interval; + } + return TimeInterval; +}()); - hidden = false; - s.write('\u001b[?25h'); -}; +//# sourceMappingURL=timeInterval.js.map -exports.hide = stream => { - const s = stream || process.stderr; - if (!s.isTTY) { - return; - } +/***/ }), +/* 350 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - restoreCursor(); - hidden = true; - s.write('\u001b[?25l'); -}; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return timeout; }); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(211); +/* harmony import */ var _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(220); +/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(351); +/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(205); +/** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */ -exports.toggle = (force, stream) => { - if (force !== undefined) { - hidden = force; - } - if (hidden) { - exports.show(stream); - } else { - exports.hide(stream); - } -}; + + +function timeout(due, scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]; + } + return Object(_timeoutWith__WEBPACK_IMPORTED_MODULE_2__["timeoutWith"])(due, Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_3__["throwError"])(new _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__["TimeoutError"]()), scheduler); +} +//# sourceMappingURL=timeout.js.map /***/ }), -/* 274 */ -/***/ (function(module, exports, __webpack_require__) { +/* 351 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return timeoutWith; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(211); +/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(281); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -const onetime = __webpack_require__(275); -const signalExit = __webpack_require__(103); - -module.exports = onetime(() => { - signalExit(() => { - process.stderr.write('\u001b[?25h'); - }, {alwaysLast: true}); -}); -/***/ }), -/* 275 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; -const mimicFn = __webpack_require__(276); +function timeoutWith(due, withObservable, scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; + } + return function (source) { + var absoluteTimeout = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__["isDate"])(due); + var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due); + return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler)); + }; +} +var TimeoutWithOperator = /*@__PURE__*/ (function () { + function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) { + this.waitFor = waitFor; + this.absoluteTimeout = absoluteTimeout; + this.withObservable = withObservable; + this.scheduler = scheduler; + } + TimeoutWithOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler)); + }; + return TimeoutWithOperator; +}()); +var TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TimeoutWithSubscriber, _super); + function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) { + var _this = _super.call(this, destination) || this; + _this.absoluteTimeout = absoluteTimeout; + _this.waitFor = waitFor; + _this.withObservable = withObservable; + _this.scheduler = scheduler; + _this.action = null; + _this.scheduleTimeout(); + return _this; + } + TimeoutWithSubscriber.dispatchTimeout = function (subscriber) { + var withObservable = subscriber.withObservable; + subscriber._unsubscribeAndRecycle(); + subscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(subscriber, withObservable)); + }; + TimeoutWithSubscriber.prototype.scheduleTimeout = function () { + var action = this.action; + if (action) { + this.action = action.schedule(this, this.waitFor); + } + else { + this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this)); + } + }; + TimeoutWithSubscriber.prototype._next = function (value) { + if (!this.absoluteTimeout) { + this.scheduleTimeout(); + } + _super.prototype._next.call(this, value); + }; + TimeoutWithSubscriber.prototype._unsubscribe = function () { + this.action = null; + this.scheduler = null; + this.withObservable = null; + }; + return TimeoutWithSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); +//# sourceMappingURL=timeoutWith.js.map -module.exports = (fn, opts) => { - // TODO: Remove this in v3 - if (opts === true) { - throw new TypeError('The second argument is now an options object'); - } - if (typeof fn !== 'function') { - throw new TypeError('Expected a function'); - } +/***/ }), +/* 352 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - opts = opts || {}; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timestamp", function() { return timestamp; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Timestamp", function() { return Timestamp; }); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(211); +/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(222); +/** PURE_IMPORTS_START _scheduler_async,_map PURE_IMPORTS_END */ - let ret; - let called = false; - const fnName = fn.displayName || fn.name || ''; - const onetime = function () { - if (called) { - if (opts.throw === true) { - throw new Error(`Function \`${fnName}\` can only be called once`); - } +function timestamp(scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]; + } + return Object(_map__WEBPACK_IMPORTED_MODULE_1__["map"])(function (value) { return new Timestamp(value, scheduler.now()); }); +} +var Timestamp = /*@__PURE__*/ (function () { + function Timestamp(value, timestamp) { + this.value = value; + this.timestamp = timestamp; + } + return Timestamp; +}()); - return ret; - } +//# sourceMappingURL=timestamp.js.map - called = true; - ret = fn.apply(this, arguments); - fn = null; - return ret; - }; +/***/ }), +/* 353 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - mimicFn(onetime, fn); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return toArray; }); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(308); +/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ - return onetime; -}; +function toArrayReducer(arr, item, index) { + if (index === 0) { + return [item]; + } + arr.push(item); + return arr; +} +function toArray() { + return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__["reduce"])(toArrayReducer, []); +} +//# sourceMappingURL=toArray.js.map /***/ }), -/* 276 */ -/***/ (function(module, exports, __webpack_require__) { +/* 354 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "window", function() { return window; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(183); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -module.exports = (to, from) => { - // TODO: use `Reflect.ownKeys()` when targeting Node.js 6 - for (const prop of Object.getOwnPropertyNames(from).concat(Object.getOwnPropertySymbols(from))) { - Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop)); - } -}; + + + +function window(windowBoundaries) { + return function windowOperatorFunction(source) { + return source.lift(new WindowOperator(windowBoundaries)); + }; +} +var WindowOperator = /*@__PURE__*/ (function () { + function WindowOperator(windowBoundaries) { + this.windowBoundaries = windowBoundaries; + } + WindowOperator.prototype.call = function (subscriber, source) { + var windowSubscriber = new WindowSubscriber(subscriber); + var sourceSubscription = source.subscribe(windowSubscriber); + if (!sourceSubscription.closed) { + windowSubscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(windowSubscriber, this.windowBoundaries)); + } + return sourceSubscription; + }; + return WindowOperator; +}()); +var WindowSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowSubscriber, _super); + function WindowSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + destination.next(_this.window); + return _this; + } + WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.openWindow(); + }; + WindowSubscriber.prototype.notifyError = function (error, innerSub) { + this._error(error); + }; + WindowSubscriber.prototype.notifyComplete = function (innerSub) { + this._complete(); + }; + WindowSubscriber.prototype._next = function (value) { + this.window.next(value); + }; + WindowSubscriber.prototype._error = function (err) { + this.window.error(err); + this.destination.error(err); + }; + WindowSubscriber.prototype._complete = function () { + this.window.complete(); + this.destination.complete(); + }; + WindowSubscriber.prototype._unsubscribe = function () { + this.window = null; + }; + WindowSubscriber.prototype.openWindow = function () { + var prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + var destination = this.destination; + var newWindow = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + destination.next(newWindow); + }; + return WindowSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); +//# sourceMappingURL=window.js.map /***/ }), -/* 277 */ -/***/ (function(module, exports, __webpack_require__) { +/* 355 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowCount", function() { return windowCount; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(166); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(183); +/** PURE_IMPORTS_START tslib,_Subscriber,_Subject PURE_IMPORTS_END */ -module.exports = __webpack_require__(278); -/***/ }), -/* 278 */ -/***/ (function(module) { +function windowCount(windowSize, startWindowEvery) { + if (startWindowEvery === void 0) { + startWindowEvery = 0; + } + return function windowCountOperatorFunction(source) { + return source.lift(new WindowCountOperator(windowSize, startWindowEvery)); + }; +} +var WindowCountOperator = /*@__PURE__*/ (function () { + function WindowCountOperator(windowSize, startWindowEvery) { + this.windowSize = windowSize; + this.startWindowEvery = startWindowEvery; + } + WindowCountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery)); + }; + return WindowCountOperator; +}()); +var WindowCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowCountSubscriber, _super); + function WindowCountSubscriber(destination, windowSize, startWindowEvery) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.windowSize = windowSize; + _this.startWindowEvery = startWindowEvery; + _this.windows = [new _Subject__WEBPACK_IMPORTED_MODULE_2__["Subject"]()]; + _this.count = 0; + destination.next(_this.windows[0]); + return _this; + } + WindowCountSubscriber.prototype._next = function (value) { + var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize; + var destination = this.destination; + var windowSize = this.windowSize; + var windows = this.windows; + var len = windows.length; + for (var i = 0; i < len && !this.closed; i++) { + windows[i].next(value); + } + var c = this.count - windowSize + 1; + if (c >= 0 && c % startWindowEvery === 0 && !this.closed) { + windows.shift().complete(); + } + if (++this.count % startWindowEvery === 0 && !this.closed) { + var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_2__["Subject"](); + windows.push(window_1); + destination.next(window_1); + } + }; + WindowCountSubscriber.prototype._error = function (err) { + var windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().error(err); + } + } + this.destination.error(err); + }; + WindowCountSubscriber.prototype._complete = function () { + var windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().complete(); + } + } + this.destination.complete(); + }; + WindowCountSubscriber.prototype._unsubscribe = function () { + this.count = 0; + this.windows = null; + }; + return WindowCountSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=windowCount.js.map -module.exports = {"dots":{"interval":80,"frames":["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"]},"dots2":{"interval":80,"frames":["⣾","⣽","⣻","⢿","⡿","⣟","⣯","⣷"]},"dots3":{"interval":80,"frames":["⠋","⠙","⠚","⠞","⠖","⠦","⠴","⠲","⠳","⠓"]},"dots4":{"interval":80,"frames":["⠄","⠆","⠇","⠋","⠙","⠸","⠰","⠠","⠰","⠸","⠙","⠋","⠇","⠆"]},"dots5":{"interval":80,"frames":["⠋","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋"]},"dots6":{"interval":80,"frames":["⠁","⠉","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠤","⠄","⠄","⠤","⠴","⠲","⠒","⠂","⠂","⠒","⠚","⠙","⠉","⠁"]},"dots7":{"interval":80,"frames":["⠈","⠉","⠋","⠓","⠒","⠐","⠐","⠒","⠖","⠦","⠤","⠠","⠠","⠤","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋","⠉","⠈"]},"dots8":{"interval":80,"frames":["⠁","⠁","⠉","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠤","⠄","⠄","⠤","⠠","⠠","⠤","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋","⠉","⠈","⠈"]},"dots9":{"interval":80,"frames":["⢹","⢺","⢼","⣸","⣇","⡧","⡗","⡏"]},"dots10":{"interval":80,"frames":["⢄","⢂","⢁","⡁","⡈","⡐","⡠"]},"dots11":{"interval":100,"frames":["⠁","⠂","⠄","⡀","⢀","⠠","⠐","⠈"]},"dots12":{"interval":80,"frames":["⢀⠀","⡀⠀","⠄⠀","⢂⠀","⡂⠀","⠅⠀","⢃⠀","⡃⠀","⠍⠀","⢋⠀","⡋⠀","⠍⠁","⢋⠁","⡋⠁","⠍⠉","⠋⠉","⠋⠉","⠉⠙","⠉⠙","⠉⠩","⠈⢙","⠈⡙","⢈⠩","⡀⢙","⠄⡙","⢂⠩","⡂⢘","⠅⡘","⢃⠨","⡃⢐","⠍⡐","⢋⠠","⡋⢀","⠍⡁","⢋⠁","⡋⠁","⠍⠉","⠋⠉","⠋⠉","⠉⠙","⠉⠙","⠉⠩","⠈⢙","⠈⡙","⠈⠩","⠀⢙","⠀⡙","⠀⠩","⠀⢘","⠀⡘","⠀⠨","⠀⢐","⠀⡐","⠀⠠","⠀⢀","⠀⡀"]},"line":{"interval":130,"frames":["-","\\","|","/"]},"line2":{"interval":100,"frames":["⠂","-","–","—","–","-"]},"pipe":{"interval":100,"frames":["┤","┘","┴","└","├","┌","┬","┐"]},"simpleDots":{"interval":400,"frames":[". ",".. ","..."," "]},"simpleDotsScrolling":{"interval":200,"frames":[". ",".. ","..."," .."," ."," "]},"star":{"interval":70,"frames":["✶","✸","✹","✺","✹","✷"]},"star2":{"interval":80,"frames":["+","x","*"]},"flip":{"interval":70,"frames":["_","_","_","-","`","`","'","´","-","_","_","_"]},"hamburger":{"interval":100,"frames":["☱","☲","☴"]},"growVertical":{"interval":120,"frames":["▁","▃","▄","▅","▆","▇","▆","▅","▄","▃"]},"growHorizontal":{"interval":120,"frames":["▏","▎","▍","▌","▋","▊","▉","▊","▋","▌","▍","▎"]},"balloon":{"interval":140,"frames":[" ",".","o","O","@","*"," "]},"balloon2":{"interval":120,"frames":[".","o","O","°","O","o","."]},"noise":{"interval":100,"frames":["▓","▒","░"]},"bounce":{"interval":120,"frames":["⠁","⠂","⠄","⠂"]},"boxBounce":{"interval":120,"frames":["▖","▘","▝","▗"]},"boxBounce2":{"interval":100,"frames":["▌","▀","▐","▄"]},"triangle":{"interval":50,"frames":["◢","◣","◤","◥"]},"arc":{"interval":100,"frames":["◜","◠","◝","◞","◡","◟"]},"circle":{"interval":120,"frames":["◡","⊙","◠"]},"squareCorners":{"interval":180,"frames":["◰","◳","◲","◱"]},"circleQuarters":{"interval":120,"frames":["◴","◷","◶","◵"]},"circleHalves":{"interval":50,"frames":["◐","◓","◑","◒"]},"squish":{"interval":100,"frames":["╫","╪"]},"toggle":{"interval":250,"frames":["⊶","⊷"]},"toggle2":{"interval":80,"frames":["▫","▪"]},"toggle3":{"interval":120,"frames":["□","■"]},"toggle4":{"interval":100,"frames":["■","□","▪","▫"]},"toggle5":{"interval":100,"frames":["▮","▯"]},"toggle6":{"interval":300,"frames":["ဝ","၀"]},"toggle7":{"interval":80,"frames":["⦾","⦿"]},"toggle8":{"interval":100,"frames":["◍","◌"]},"toggle9":{"interval":100,"frames":["◉","◎"]},"toggle10":{"interval":100,"frames":["㊂","㊀","㊁"]},"toggle11":{"interval":50,"frames":["⧇","⧆"]},"toggle12":{"interval":120,"frames":["☗","☖"]},"toggle13":{"interval":80,"frames":["=","*","-"]},"arrow":{"interval":100,"frames":["←","↖","↑","↗","→","↘","↓","↙"]},"arrow2":{"interval":80,"frames":["⬆️ ","↗️ ","➡️ ","↘️ ","⬇️ ","↙️ ","⬅️ ","↖️ "]},"arrow3":{"interval":120,"frames":["▹▹▹▹▹","▸▹▹▹▹","▹▸▹▹▹","▹▹▸▹▹","▹▹▹▸▹","▹▹▹▹▸"]},"bouncingBar":{"interval":80,"frames":["[ ]","[= ]","[== ]","[=== ]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},"bouncingBall":{"interval":80,"frames":["( ● )","( ● )","( ● )","( ● )","( ●)","( ● )","( ● )","( ● )","( ● )","(● )"]},"smiley":{"interval":200,"frames":["😄 ","😝 "]},"monkey":{"interval":300,"frames":["🙈 ","🙈 ","🙉 ","🙊 "]},"hearts":{"interval":100,"frames":["💛 ","💙 ","💜 ","💚 ","❤️ "]},"clock":{"interval":100,"frames":["🕐 ","🕑 ","🕒 ","🕓 ","🕔 ","🕕 ","🕖 ","🕗 ","🕘 ","🕙 ","🕚 "]},"earth":{"interval":180,"frames":["🌍 ","🌎 ","🌏 "]},"moon":{"interval":80,"frames":["🌑 ","🌒 ","🌓 ","🌔 ","🌕 ","🌖 ","🌗 ","🌘 "]},"runner":{"interval":140,"frames":["🚶 ","🏃 "]},"pong":{"interval":80,"frames":["▐⠂ ▌","▐⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂▌","▐ ⠠▌","▐ ⡀▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐⠠ ▌"]},"shark":{"interval":120,"frames":["▐|\\____________▌","▐_|\\___________▌","▐__|\\__________▌","▐___|\\_________▌","▐____|\\________▌","▐_____|\\_______▌","▐______|\\______▌","▐_______|\\_____▌","▐________|\\____▌","▐_________|\\___▌","▐__________|\\__▌","▐___________|\\_▌","▐____________|\\▌","▐____________/|▌","▐___________/|_▌","▐__________/|__▌","▐_________/|___▌","▐________/|____▌","▐_______/|_____▌","▐______/|______▌","▐_____/|_______▌","▐____/|________▌","▐___/|_________▌","▐__/|__________▌","▐_/|___________▌","▐/|____________▌"]},"dqpb":{"interval":100,"frames":["d","q","p","b"]},"weather":{"interval":100,"frames":["☀️ ","☀️ ","☀️ ","🌤 ","⛅️ ","🌥 ","☁️ ","🌧 ","🌨 ","🌧 ","🌨 ","🌧 ","🌨 ","⛈ ","🌨 ","🌧 ","🌨 ","☁️ ","🌥 ","⛅️ ","🌤 ","☀️ ","☀️ "]},"christmas":{"interval":400,"frames":["🌲","🎄"]}}; /***/ }), -/* 279 */ -/***/ (function(module, exports, __webpack_require__) { +/* 356 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowTime", function() { return windowTime; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(183); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(211); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(166); +/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(252); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(201); +/** PURE_IMPORTS_START tslib,_Subject,_scheduler_async,_Subscriber,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */ -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.RunCommand = undefined; - -var _chalk = __webpack_require__(26); -var _chalk2 = _interopRequireDefault(_chalk); -var _log = __webpack_require__(40); -var _parallelize = __webpack_require__(98); -var _projects = __webpack_require__(47); +function windowTime(windowTimeSpan) { + var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"]; + var windowCreationInterval = null; + var maxWindowSize = Number.POSITIVE_INFINITY; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(arguments[3])) { + scheduler = arguments[3]; + } + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(arguments[2])) { + scheduler = arguments[2]; + } + else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__["isNumeric"])(arguments[2])) { + maxWindowSize = arguments[2]; + } + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(arguments[1])) { + scheduler = arguments[1]; + } + else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__["isNumeric"])(arguments[1])) { + windowCreationInterval = arguments[1]; + } + return function windowTimeOperatorFunction(source) { + return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler)); + }; +} +var WindowTimeOperator = /*@__PURE__*/ (function () { + function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { + this.windowTimeSpan = windowTimeSpan; + this.windowCreationInterval = windowCreationInterval; + this.maxWindowSize = maxWindowSize; + this.scheduler = scheduler; + } + WindowTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler)); + }; + return WindowTimeOperator; +}()); +var CountedSubject = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CountedSubject, _super); + function CountedSubject() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._numberOfNextedValues = 0; + return _this; + } + CountedSubject.prototype.next = function (value) { + this._numberOfNextedValues++; + _super.prototype.next.call(this, value); + }; + Object.defineProperty(CountedSubject.prototype, "numberOfNextedValues", { + get: function () { + return this._numberOfNextedValues; + }, + enumerable: true, + configurable: true + }); + return CountedSubject; +}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"])); +var WindowTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowTimeSubscriber, _super); + function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.windowTimeSpan = windowTimeSpan; + _this.windowCreationInterval = windowCreationInterval; + _this.maxWindowSize = maxWindowSize; + _this.scheduler = scheduler; + _this.windows = []; + var window = _this.openWindow(); + if (windowCreationInterval !== null && windowCreationInterval >= 0) { + var closeState = { subscriber: _this, window: window, context: null }; + var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler }; + _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState)); + _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState)); + } + else { + var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan }; + _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState)); + } + return _this; + } + WindowTimeSubscriber.prototype._next = function (value) { + var windows = this.windows; + var len = windows.length; + for (var i = 0; i < len; i++) { + var window_1 = windows[i]; + if (!window_1.closed) { + window_1.next(value); + if (window_1.numberOfNextedValues >= this.maxWindowSize) { + this.closeWindow(window_1); + } + } + } + }; + WindowTimeSubscriber.prototype._error = function (err) { + var windows = this.windows; + while (windows.length > 0) { + windows.shift().error(err); + } + this.destination.error(err); + }; + WindowTimeSubscriber.prototype._complete = function () { + var windows = this.windows; + while (windows.length > 0) { + var window_2 = windows.shift(); + if (!window_2.closed) { + window_2.complete(); + } + } + this.destination.complete(); + }; + WindowTimeSubscriber.prototype.openWindow = function () { + var window = new CountedSubject(); + this.windows.push(window); + var destination = this.destination; + destination.next(window); + return window; + }; + WindowTimeSubscriber.prototype.closeWindow = function (window) { + window.complete(); + var windows = this.windows; + windows.splice(windows.indexOf(window), 1); + }; + return WindowTimeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"])); +function dispatchWindowTimeSpanOnly(state) { + var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window; + if (window) { + subscriber.closeWindow(window); + } + state.window = subscriber.openWindow(); + this.schedule(state, windowTimeSpan); +} +function dispatchWindowCreation(state) { + var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval; + var window = subscriber.openWindow(); + var action = this; + var context = { action: action, subscription: null }; + var timeSpanState = { subscriber: subscriber, window: window, context: context }; + context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState); + action.add(context.subscription); + action.schedule(state, windowCreationInterval); +} +function dispatchWindowClose(state) { + var subscriber = state.subscriber, window = state.window, context = state.context; + if (context && context.action && context.subscription) { + context.action.remove(context.subscription); + } + subscriber.closeWindow(window); +} +//# sourceMappingURL=windowTime.js.map -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ +/***/ }), +/* 357 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowToggle", function() { return windowToggle; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(183); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(172); +/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(175); +/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(176); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -const RunCommand = exports.RunCommand = { - description: 'Run script defined in package.json in each package that contains that script.', - name: 'run', - run(projects, projectGraph, { extraArgs }) { - return _asyncToGenerator(function* () { - const batchedProjects = (0, _projects.topologicallyBatchProjects)(projects, projectGraph); - if (extraArgs.length === 0) { - _log.log.write(_chalk2.default.red.bold('\nNo script specified')); - process.exit(1); - } - const scriptName = extraArgs[0]; - const scriptArgs = extraArgs.slice(1); - _log.log.write(_chalk2.default.bold(`\nRunning script [${_chalk2.default.green(scriptName)}] in batched topological order\n`)); - yield (0, _parallelize.parallelizeBatches)(batchedProjects, (() => { - var _ref = _asyncToGenerator(function* (pkg) { - if (pkg.hasScript(scriptName)) { - yield pkg.runScriptStreaming(scriptName, scriptArgs); - } - }); - return function (_x) { - return _ref.apply(this, arguments); - }; - })()); - })(); + + + + + +function windowToggle(openings, closingSelector) { + return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); }; +} +var WindowToggleOperator = /*@__PURE__*/ (function () { + function WindowToggleOperator(openings, closingSelector) { + this.openings = openings; + this.closingSelector = closingSelector; } -}; + WindowToggleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector)); + }; + return WindowToggleOperator; +}()); +var WindowToggleSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowToggleSubscriber, _super); + function WindowToggleSubscriber(destination, openings, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.openings = openings; + _this.closingSelector = closingSelector; + _this.contexts = []; + _this.add(_this.openSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_6__["subscribeToResult"])(_this, openings, openings)); + return _this; + } + WindowToggleSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + if (contexts) { + var len = contexts.length; + for (var i = 0; i < len; i++) { + contexts[i].window.next(value); + } + } + }; + WindowToggleSubscriber.prototype._error = function (err) { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_1 = contexts[index]; + context_1.window.error(err); + context_1.subscription.unsubscribe(); + } + } + _super.prototype._error.call(this, err); + }; + WindowToggleSubscriber.prototype._complete = function () { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_2 = contexts[index]; + context_2.window.complete(); + context_2.subscription.unsubscribe(); + } + } + _super.prototype._complete.call(this); + }; + WindowToggleSubscriber.prototype._unsubscribe = function () { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_3 = contexts[index]; + context_3.window.unsubscribe(); + context_3.subscription.unsubscribe(); + } + } + }; + WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + if (outerValue === this.openings) { + var closingSelector = this.closingSelector; + var closingNotifier = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_3__["tryCatch"])(closingSelector)(innerValue); + if (closingNotifier === _util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"]) { + return this.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"].e); + } + else { + var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"](); + var context_4 = { window: window_1, subscription: subscription }; + this.contexts.push(context_4); + var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_6__["subscribeToResult"])(this, closingNotifier, context_4); + if (innerSubscription.closed) { + this.closeWindow(this.contexts.length - 1); + } + else { + innerSubscription.context = context_4; + subscription.add(innerSubscription); + } + this.destination.next(window_1); + } + } + else { + this.closeWindow(this.contexts.indexOf(outerValue)); + } + }; + WindowToggleSubscriber.prototype.notifyError = function (err) { + this.error(err); + }; + WindowToggleSubscriber.prototype.notifyComplete = function (inner) { + if (inner !== this.openSubscription) { + this.closeWindow(this.contexts.indexOf(inner.context)); + } + }; + WindowToggleSubscriber.prototype.closeWindow = function (index) { + if (index === -1) { + return; + } + var contexts = this.contexts; + var context = contexts[index]; + var window = context.window, subscription = context.subscription; + contexts.splice(index, 1); + window.complete(); + subscription.unsubscribe(); + }; + return WindowToggleSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_5__["OuterSubscriber"])); +//# sourceMappingURL=windowToggle.js.map + /***/ }), -/* 280 */ -/***/ (function(module, exports, __webpack_require__) { +/* 358 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowWhen", function() { return windowWhen; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(183); +/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(175); +/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(176); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_Subject,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.WatchCommand = undefined; -var _chalk = __webpack_require__(26); -var _chalk2 = _interopRequireDefault(_chalk); -var _log = __webpack_require__(40); -var _parallelize = __webpack_require__(98); +function windowWhen(closingSelector) { + return function windowWhenOperatorFunction(source) { + return source.lift(new WindowOperator(closingSelector)); + }; +} +var WindowOperator = /*@__PURE__*/ (function () { + function WindowOperator(closingSelector) { + this.closingSelector = closingSelector; + } + WindowOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector)); + }; + return WindowOperator; +}()); +var WindowSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowSubscriber, _super); + function WindowSubscriber(destination, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.closingSelector = closingSelector; + _this.openWindow(); + return _this; + } + WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.openWindow(innerSub); + }; + WindowSubscriber.prototype.notifyError = function (error, innerSub) { + this._error(error); + }; + WindowSubscriber.prototype.notifyComplete = function (innerSub) { + this.openWindow(innerSub); + }; + WindowSubscriber.prototype._next = function (value) { + this.window.next(value); + }; + WindowSubscriber.prototype._error = function (err) { + this.window.error(err); + this.destination.error(err); + this.unsubscribeClosingNotification(); + }; + WindowSubscriber.prototype._complete = function () { + this.window.complete(); + this.destination.complete(); + this.unsubscribeClosingNotification(); + }; + WindowSubscriber.prototype.unsubscribeClosingNotification = function () { + if (this.closingNotification) { + this.closingNotification.unsubscribe(); + } + }; + WindowSubscriber.prototype.openWindow = function (innerSub) { + if (innerSub === void 0) { + innerSub = null; + } + if (innerSub) { + this.remove(innerSub); + innerSub.unsubscribe(); + } + var prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + var window = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + this.destination.next(window); + var closingNotifier = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(this.closingSelector)(); + if (closingNotifier === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) { + var err = _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"].e; + this.destination.error(err); + this.window.error(err); + } + else { + this.add(this.closingNotification = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, closingNotifier)); + } + }; + return WindowSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"])); +//# sourceMappingURL=windowWhen.js.map -var _projects = __webpack_require__(47); -var _watch = __webpack_require__(281); +/***/ }), +/* 359 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withLatestFrom", function() { return withLatestFrom; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(225); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -/** - * Name of the script in the package/project package.json file to run during `kbn watch`. - */ -const watchScriptName = 'kbn:watch'; -/** - * Name of the Kibana project. - */ -const kibanaProjectName = 'kibana'; -/** - * Command that traverses through list of available projects/packages that have `kbn:watch` script in their - * package.json files, groups them into topology aware batches and then processes theses batches one by one - * running `kbn:watch` scripts in parallel within the same batch. - * - * Command internally relies on the fact that most of the build systems that are triggered by `kbn:watch` - * will emit special "marker" once build/watch process is ready that we can use as completion condition for - * the `kbn:watch` script and eventually for the entire batch. Currently we support completion "markers" for - * `webpack` and `tsc` only, for the rest we rely on predefined timeouts. - */ -const WatchCommand = exports.WatchCommand = { - description: 'Runs `kbn:watch` script for every project.', - name: 'watch', - run(projects, projectGraph) { - return _asyncToGenerator(function* () { - const projectsToWatch = new Map(); - for (const project of projects.values()) { - // We can't watch project that doesn't have `kbn:watch` script. - if (project.hasScript(watchScriptName)) { - projectsToWatch.set(project.name, project); - } +function withLatestFrom() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return function (source) { + var project; + if (typeof args[args.length - 1] === 'function') { + project = args.pop(); + } + var observables = args; + return source.lift(new WithLatestFromOperator(observables, project)); + }; +} +var WithLatestFromOperator = /*@__PURE__*/ (function () { + function WithLatestFromOperator(observables, project) { + this.observables = observables; + this.project = project; + } + WithLatestFromOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project)); + }; + return WithLatestFromOperator; +}()); +var WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WithLatestFromSubscriber, _super); + function WithLatestFromSubscriber(destination, observables, project) { + var _this = _super.call(this, destination) || this; + _this.observables = observables; + _this.project = project; + _this.toRespond = []; + var len = observables.length; + _this.values = new Array(len); + for (var i = 0; i < len; i++) { + _this.toRespond.push(i); + } + for (var i = 0; i < len; i++) { + var observable = observables[i]; + _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, observable, observable, i)); + } + return _this; + } + WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.values[outerIndex] = innerValue; + var toRespond = this.toRespond; + if (toRespond.length > 0) { + var found = toRespond.indexOf(outerIndex); + if (found !== -1) { + toRespond.splice(found, 1); } - if (projectsToWatch.size === 0) { - _log.log.write(_chalk2.default.red(`\nThere are no projects to watch found. Make sure that projects define 'kbn:watch' script in 'package.json'.\n`)); - return; + } + }; + WithLatestFromSubscriber.prototype.notifyComplete = function () { + }; + WithLatestFromSubscriber.prototype._next = function (value) { + if (this.toRespond.length === 0) { + var args = [value].concat(this.values); + if (this.project) { + this._tryProject(args); } - const projectNames = Array.from(projectsToWatch.keys()); - _log.log.write(_chalk2.default.bold(_chalk2.default.green(`Running ${watchScriptName} scripts for [${projectNames.join(', ')}].`))); - // Kibana should always be run the last, so we don't rely on automatic - // topological batching and push it to the last one-entry batch manually. - const shouldWatchKibanaProject = projectsToWatch.delete(kibanaProjectName); - const batchedProjects = (0, _projects.topologicallyBatchProjects)(projectsToWatch, projectGraph); - if (shouldWatchKibanaProject) { - batchedProjects.push([projects.get(kibanaProjectName)]); + else { + this.destination.next(args); } - yield (0, _parallelize.parallelizeBatches)(batchedProjects, (() => { - var _ref = _asyncToGenerator(function* (pkg) { - const completionHint = yield (0, _watch.waitUntilWatchIsReady)(pkg.runScriptStreaming(watchScriptName).stdout); - _log.log.write(_chalk2.default.bold(`[${_chalk2.default.green(pkg.name)}] Initial build completed (${completionHint}).`)); - }); + } + }; + WithLatestFromSubscriber.prototype._tryProject = function (args) { + var result; + try { + result = this.project.apply(this, args); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return WithLatestFromSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=withLatestFrom.js.map - return function (_x) { - return _ref.apply(this, arguments); - }; - })()); - })(); - } -}; /***/ }), -/* 281 */ -/***/ (function(module, exports, __webpack_require__) { +/* 360 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return zip; }); +/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(261); +/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */ +function zip() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function zipOperatorFunction(source) { + return source.lift.call(_observable_zip__WEBPACK_IMPORTED_MODULE_0__["zip"].apply(void 0, [source].concat(observables))); + }; +} +//# sourceMappingURL=zip.js.map -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.waitUntilWatchIsReady = waitUntilWatchIsReady; - -var _rxjs = __webpack_require__(462); - -var Rx = _interopRequireWildcard(_rxjs); -var _operators = __webpack_require__(461); +/***/ }), +/* 361 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zipAll", function() { return zipAll; }); +/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(261); +/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */ -/** - * Number of milliseconds we wait before we fall back to the default watch handler. - */ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -const defaultHandlerDelay = 3000; -/** - * If default watch handler is used, then it's the number of milliseconds we wait for - * any build output before we consider watch task ready. - */ -const defaultHandlerReadinessTimeout = 2000; -function getWatchHandlers(buildOutput$, { handlerDelay = defaultHandlerDelay, handlerReadinessTimeout = defaultHandlerReadinessTimeout }) { - const typescriptHandler = buildOutput$.pipe((0, _operators.first)(data => data.includes('$ tsc')), (0, _operators.map)(() => buildOutput$.pipe((0, _operators.first)(data => data.includes('Compilation complete.')), (0, _operators.mapTo)('tsc')))); - const webpackHandler = buildOutput$.pipe((0, _operators.first)(data => data.includes('$ webpack')), (0, _operators.map)(() => buildOutput$.pipe((0, _operators.first)(data => data.includes('Chunk Names')), (0, _operators.mapTo)('webpack')))); - const defaultHandler = Rx.of(undefined).pipe((0, _operators.delay)(handlerReadinessTimeout), (0, _operators.map)(() => buildOutput$.pipe((0, _operators.timeout)(handlerDelay), (0, _operators.catchError)(() => Rx.of('timeout'))))); - return [typescriptHandler, webpackHandler, defaultHandler]; -} -function waitUntilWatchIsReady(stream, opts = {}) { - const buildOutput$ = new Rx.Subject(); - const onDataListener = data => buildOutput$.next(data.toString('utf-8')); - const onEndListener = () => buildOutput$.complete(); - const onErrorListener = e => buildOutput$.error(e); - stream.once('end', onEndListener); - stream.once('error', onErrorListener); - stream.on('data', onDataListener); - return Rx.race(getWatchHandlers(buildOutput$, opts)).pipe((0, _operators.mergeMap)(whenReady => whenReady), (0, _operators.finalize)(() => { - stream.removeListener('data', onDataListener); - stream.removeListener('end', onEndListener); - stream.removeListener('error', onErrorListener); - buildOutput$.complete(); - })).toPromise(); +function zipAll(project) { + return function (source) { return source.lift(new _observable_zip__WEBPACK_IMPORTED_MODULE_0__["ZipOperator"](project)); }; } +//# sourceMappingURL=zipAll.js.map + /***/ }), -/* 282 */ +/* 362 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31178,27 +31654,27 @@ let runCommand = exports.runCommand = (() => { }; })(); -var _chalk = __webpack_require__(26); +var _chalk = __webpack_require__(2); var _chalk2 = _interopRequireDefault(_chalk); -var _indentString = __webpack_require__(283); +var _indentString = __webpack_require__(363); var _indentString2 = _interopRequireDefault(_indentString); -var _wrapAnsi = __webpack_require__(284); +var _wrapAnsi = __webpack_require__(364); var _wrapAnsi2 = _interopRequireDefault(_wrapAnsi); -var _config = __webpack_require__(104); +var _config = __webpack_require__(136); -var _errors = __webpack_require__(101); +var _errors = __webpack_require__(52); -var _log = __webpack_require__(40); +var _log = __webpack_require__(33); -var _projects = __webpack_require__(47); +var _projects = __webpack_require__(35); -var _projects_tree = __webpack_require__(291); +var _projects_tree = __webpack_require__(371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -31230,7 +31706,7 @@ function toArray(value) { } /***/ }), -/* 283 */ +/* 363 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31264,13 +31740,13 @@ module.exports = (str, count, opts) => { /***/ }), -/* 284 */ +/* 364 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const stringWidth = __webpack_require__(285); -const stripAnsi = __webpack_require__(289); +const stringWidth = __webpack_require__(365); +const stripAnsi = __webpack_require__(369); const ESCAPES = new Set([ '\u001B', @@ -31464,13 +31940,13 @@ module.exports = (str, cols, opts) => { /***/ }), -/* 285 */ +/* 365 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const stripAnsi = __webpack_require__(286); -const isFullwidthCodePoint = __webpack_require__(288); +const stripAnsi = __webpack_require__(366); +const isFullwidthCodePoint = __webpack_require__(368); module.exports = str => { if (typeof str !== 'string' || str.length === 0) { @@ -31507,18 +31983,18 @@ module.exports = str => { /***/ }), -/* 286 */ +/* 366 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const ansiRegex = __webpack_require__(287); +const ansiRegex = __webpack_require__(367); module.exports = input => typeof input === 'string' ? input.replace(ansiRegex(), '') : input; /***/ }), -/* 287 */ +/* 367 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31535,7 +32011,7 @@ module.exports = () => { /***/ }), -/* 288 */ +/* 368 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31588,18 +32064,18 @@ module.exports = x => { /***/ }), -/* 289 */ +/* 369 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const ansiRegex = __webpack_require__(290); +const ansiRegex = __webpack_require__(370); module.exports = input => typeof input === 'string' ? input.replace(ansiRegex(), '') : input; /***/ }), -/* 290 */ +/* 370 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31616,7 +32092,7 @@ module.exports = () => { /***/ }), -/* 291 */ +/* 371 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31627,11 +32103,11 @@ Object.defineProperty(exports, "__esModule", { }); exports.renderProjectsTree = renderProjectsTree; -var _chalk = __webpack_require__(26); +var _chalk = __webpack_require__(2); var _chalk2 = _interopRequireDefault(_chalk); -var _path = __webpack_require__(5); +var _path = __webpack_require__(16); var _path2 = _interopRequireDefault(_path); @@ -31758,7 +32234,7 @@ function addProjectToTree(tree, pathParts, project) { } /***/ }), -/* 292 */ +/* 372 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31768,7 +32244,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _build_production_projects = __webpack_require__(293); +var _build_production_projects = __webpack_require__(373); Object.defineProperty(exports, 'buildProductionProjects', { enumerable: true, @@ -31777,7 +32253,7 @@ Object.defineProperty(exports, 'buildProductionProjects', { } }); -var _prepare_project_dependencies = __webpack_require__(460); +var _prepare_project_dependencies = __webpack_require__(592); Object.defineProperty(exports, 'prepareExternalProjectDependencies', { enumerable: true, @@ -31787,7 +32263,7 @@ Object.defineProperty(exports, 'prepareExternalProjectDependencies', { }); /***/ }), -/* 293 */ +/* 373 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31911,25 +32387,25 @@ let copyToBuild = (() => { }; })(); -var _cpy = __webpack_require__(294); +var _cpy = __webpack_require__(374); var _cpy2 = _interopRequireDefault(_cpy); -var _del = __webpack_require__(131); +var _del = __webpack_require__(138); var _del2 = _interopRequireDefault(_del); -var _path = __webpack_require__(5); +var _path = __webpack_require__(16); -var _config = __webpack_require__(104); +var _config = __webpack_require__(136); -var _fs = __webpack_require__(70); +var _fs = __webpack_require__(20); -var _log = __webpack_require__(40); +var _log = __webpack_require__(33); -var _package_json = __webpack_require__(72); +var _package_json = __webpack_require__(54); -var _projects = __webpack_require__(47); +var _projects = __webpack_require__(35); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -31953,17 +32429,17 @@ function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, a */ /***/ }), -/* 294 */ +/* 374 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const EventEmitter = __webpack_require__(63); -const path = __webpack_require__(5); -const arrify = __webpack_require__(133); -const globby = __webpack_require__(295); -const cpFile = __webpack_require__(453); -const CpyError = __webpack_require__(459); +const EventEmitter = __webpack_require__(45); +const path = __webpack_require__(16); +const arrify = __webpack_require__(375); +const globby = __webpack_require__(376); +const cpFile = __webpack_require__(583); +const CpyError = __webpack_require__(591); const preprocessSrcPath = (srcPath, options) => options.cwd ? path.resolve(options.cwd, srcPath) : srcPath; @@ -32062,16 +32538,31 @@ module.exports = (src, dest, options = {}) => { /***/ }), -/* 295 */ +/* 375 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +module.exports = function (val) { + if (val === null || val === undefined) { + return []; + } + + return Array.isArray(val) ? val : [val]; +}; + + +/***/ }), +/* 376 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const arrayUnion = __webpack_require__(132); -const glob = __webpack_require__(48); -const fastGlob = __webpack_require__(134); -const dirGlob = __webpack_require__(448); -const gitignore = __webpack_require__(449); +const arrayUnion = __webpack_require__(142); +const glob = __webpack_require__(36); +const fastGlob = __webpack_require__(377); +const dirGlob = __webpack_require__(578); +const gitignore = __webpack_require__(579); const DEFAULT_FILTER = () => false; @@ -32197,19 +32688,33 @@ module.exports.gitignore = gitignore; /***/ }), -/* 296 */ +/* 377 */ +/***/ (function(module, exports, __webpack_require__) { + +const pkg = __webpack_require__(378); + +module.exports = pkg.async; +module.exports.default = pkg.async; + +module.exports.async = pkg.async; +module.exports.sync = pkg.sync; +module.exports.stream = pkg.stream; + + +/***/ }), +/* 378 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var merge2 = __webpack_require__(297); -var optionsManager = __webpack_require__(298); -var taskManager = __webpack_require__(299); -var reader_async_1 = __webpack_require__(433); -var reader_stream_1 = __webpack_require__(446); -var reader_sync_1 = __webpack_require__(447); -var arrayUtils = __webpack_require__(158); +var merge2 = __webpack_require__(379); +var optionsManager = __webpack_require__(380); +var taskManager = __webpack_require__(381); +var reader_async_1 = __webpack_require__(557); +var reader_stream_1 = __webpack_require__(576); +var reader_sync_1 = __webpack_require__(577); +var arrayUtils = __webpack_require__(573); /** * Returns a set of works based on provided tasks and class of the reader. */ @@ -32247,7 +32752,7 @@ exports.stream = stream; /***/ }), -/* 297 */ +/* 379 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32259,7 +32764,7 @@ exports.stream = stream; * Copyright (c) 2014-2016 Teambition * Licensed under the MIT license. */ -const Stream = __webpack_require__(39) +const Stream = __webpack_require__(28) const PassThrough = Stream.PassThrough const slice = Array.prototype.slice @@ -32361,7 +32866,7 @@ function pauseStreams (streams, options) { /***/ }), -/* 298 */ +/* 380 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32396,14 +32901,14 @@ exports.prepare = prepare; /***/ }), -/* 299 */ +/* 381 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var objectUtils = __webpack_require__(300); -var patternUtils = __webpack_require__(105); +var objectUtils = __webpack_require__(382); +var patternUtils = __webpack_require__(383); /** * Returns grouped patterns by base directory of each pattern. */ @@ -32515,7 +33020,7 @@ exports.generate = generate; /***/ }), -/* 300 */ +/* 382 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32528,16 +33033,166 @@ exports.values = values; /***/ }), -/* 301 */ +/* 383 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var __values = (this && this.__values) || function (o) { + var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; + if (m) return m.call(o); + return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var globParent = __webpack_require__(384); +var micromatch = __webpack_require__(388); +var GLOBSTAR = '**'; +/** + * Convert a windows «path» to a unix-style «path». + */ +function unixifyPattern(pattern) { + return pattern.replace(/\\/g, '/'); +} +exports.unixifyPattern = unixifyPattern; +/** + * Returns negative pattern as positive pattern. + */ +function convertToPositivePattern(pattern) { + return pattern.slice(1); +} +exports.convertToPositivePattern = convertToPositivePattern; +/** + * Returns positive pattern as negative pattern. + */ +function convertToNegativePattern(pattern) { + return '!' + pattern; +} +exports.convertToNegativePattern = convertToNegativePattern; +/** + * Return true if provided pattern is negative pattern. + */ +function isNegativePattern(pattern) { + return pattern.startsWith('!'); +} +exports.isNegativePattern = isNegativePattern; +/** + * Return true if provided pattern is positive pattern. + */ +function isPositivePattern(pattern) { + return !isNegativePattern(pattern); +} +exports.isPositivePattern = isPositivePattern; +/** + * Extracts negative patterns from array of patterns. + */ +function getNegativePatterns(patterns) { + return patterns.filter(isNegativePattern); +} +exports.getNegativePatterns = getNegativePatterns; +/** + * Extracts positive patterns from array of patterns. + */ +function getPositivePatterns(patterns) { + return patterns.filter(isPositivePattern); +} +exports.getPositivePatterns = getPositivePatterns; +/** + * Extract base directory from provided pattern. + */ +function getBaseDirectory(pattern) { + return globParent(pattern); +} +exports.getBaseDirectory = getBaseDirectory; +/** + * Return true if provided pattern has globstar. + */ +function hasGlobStar(pattern) { + return pattern.indexOf(GLOBSTAR) !== -1; +} +exports.hasGlobStar = hasGlobStar; +/** + * Return true if provided pattern ends with slash and globstar. + */ +function endsWithSlashGlobStar(pattern) { + return pattern.endsWith('/' + GLOBSTAR); +} +exports.endsWithSlashGlobStar = endsWithSlashGlobStar; +/** + * Trim trailing globstar if provided pattern ends with slash and globstar. + */ +function trimTrailingSlashGlobStar(pattern) { + return endsWithSlashGlobStar(pattern) ? pattern.slice(0, -3) : pattern; +} +exports.trimTrailingSlashGlobStar = trimTrailingSlashGlobStar; +/** + * Return naive depth of provided pattern. + */ +function getDepth(pattern) { + return pattern.split('/').length; +} +exports.getDepth = getDepth; +/** + * Make RegExp for provided pattern. + */ +function makeRe(pattern, options) { + return micromatch.makeRe(pattern, options); +} +exports.makeRe = makeRe; +/** + * Convert patterns to regexps. + */ +function convertPatternsToRe(patterns, options) { + return patterns.map(function (pattern) { return makeRe(pattern, options); }); +} +exports.convertPatternsToRe = convertPatternsToRe; +/** + * Returns true if the entry match any of the given RegExp's. + */ +function matchAny(entry, patternsRe) { + try { + for (var patternsRe_1 = __values(patternsRe), patternsRe_1_1 = patternsRe_1.next(); !patternsRe_1_1.done; patternsRe_1_1 = patternsRe_1.next()) { + var regexp = patternsRe_1_1.value; + if (regexp.test(entry)) { + return true; + } + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (patternsRe_1_1 && !patternsRe_1_1.done && (_a = patternsRe_1.return)) _a.call(patternsRe_1); + } + finally { if (e_1) throw e_1.error; } + } + return false; + var e_1, _a; +} +exports.matchAny = matchAny; +/** + * Returns true if the entry doesn't match any of the given negative RegExp's and match any of the given positive RegExp's. + */ +function match(entry, positiveRe, negativeRe) { + return matchAny(entry, negativeRe) ? false : matchAny(entry, positiveRe); +} +exports.match = match; + + +/***/ }), +/* 384 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; -var path = __webpack_require__(5); -var isglob = __webpack_require__(302); -var pathDirname = __webpack_require__(304); -var isWin32 = __webpack_require__(114).platform() === 'win32'; + +var path = __webpack_require__(16); +var isglob = __webpack_require__(385); +var pathDirname = __webpack_require__(387); +var isWin32 = __webpack_require__(11).platform() === 'win32'; module.exports = function globParent(str) { // flip windows path separators @@ -32559,7 +33214,7 @@ module.exports = function globParent(str) { /***/ }), -/* 302 */ +/* 385 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -32569,7 +33224,7 @@ module.exports = function globParent(str) { * Licensed under the MIT License. */ -var isExtglob = __webpack_require__(303); +var isExtglob = __webpack_require__(386); module.exports = function isGlob(str) { if (typeof str !== 'string' || str === '') { @@ -32590,7 +33245,7 @@ module.exports = function isGlob(str) { /***/ }), -/* 303 */ +/* 386 */ /***/ (function(module, exports) { /*! @@ -32616,14 +33271,14 @@ module.exports = function isExtglob(str) { /***/ }), -/* 304 */ +/* 387 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var path = __webpack_require__(5); -var inspect = __webpack_require__(14).inspect; +var path = __webpack_require__(16); +var inspect = __webpack_require__(29).inspect; function assertPath(path) { if (typeof path !== 'string') { @@ -32766,7 +33421,7 @@ module.exports.win32 = win32; /***/ }), -/* 305 */ +/* 388 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32776,19 +33431,19 @@ module.exports.win32 = win32; * Module dependencies */ -var util = __webpack_require__(14); -var braces = __webpack_require__(306); -var toRegex = __webpack_require__(43); -var extend = __webpack_require__(20); +var util = __webpack_require__(29); +var braces = __webpack_require__(389); +var toRegex = __webpack_require__(390); +var extend = __webpack_require__(399); /** * Local dependencies */ -var compilers = __webpack_require__(410); -var parsers = __webpack_require__(429); -var cache = __webpack_require__(430); -var utils = __webpack_require__(431); +var compilers = __webpack_require__(525); +var parsers = __webpack_require__(553); +var cache = __webpack_require__(554); +var utils = __webpack_require__(555); var MAX_LENGTH = 1024 * 64; /** @@ -33652,7 +34307,7 @@ module.exports = micromatch; /***/ }), -/* 306 */ +/* 389 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -33662,19 +34317,19 @@ module.exports = micromatch; * Module dependencies */ -var toRegex = __webpack_require__(43); -var unique = __webpack_require__(65); -var extend = __webpack_require__(20); -var define = __webpack_require__(44); +var toRegex = __webpack_require__(390); +var unique = __webpack_require__(402); +var extend = __webpack_require__(399); +var define = __webpack_require__(403); /** * Local dependencies */ -var compilers = __webpack_require__(135); -var parsers = __webpack_require__(138); -var Braces = __webpack_require__(329); -var utils = __webpack_require__(75); +var compilers = __webpack_require__(410); +var parsers = __webpack_require__(425); +var Braces = __webpack_require__(428); +var utils = __webpack_require__(411); var MAX_LENGTH = 1024 * 64; var cache = {}; @@ -33972,7 +34627,162 @@ module.exports = braces; /***/ }), -/* 307 */ +/* 390 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var define = __webpack_require__(391); +var extend = __webpack_require__(399); +var not = __webpack_require__(401); +var MAX_LENGTH = 1024 * 64; + +/** + * Session cache + */ + +var cache = {}; + +/** + * Create a regular expression from the given `pattern` string. + * + * @param {String|RegExp} `pattern` Pattern can be a string or regular expression. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ + +module.exports = function(patterns, options) { + if (!Array.isArray(patterns)) { + return makeRe(patterns, options); + } + return makeRe(patterns.join('|'), options); +}; + +/** + * Create a regular expression from the given `pattern` string. + * + * @param {String|RegExp} `pattern` Pattern can be a string or regular expression. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ + +function makeRe(pattern, options) { + if (pattern instanceof RegExp) { + return pattern; + } + + if (typeof pattern !== 'string') { + throw new TypeError('expected a string'); + } + + if (pattern.length > MAX_LENGTH) { + throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters'); + } + + var key = pattern; + // do this before shallow cloning options, it's a lot faster + if (!options || (options && options.cache !== false)) { + key = createKey(pattern, options); + + if (cache.hasOwnProperty(key)) { + return cache[key]; + } + } + + var opts = extend({}, options); + if (opts.contains === true) { + if (opts.negate === true) { + opts.strictNegate = false; + } else { + opts.strict = false; + } + } + + if (opts.strict === false) { + opts.strictOpen = false; + opts.strictClose = false; + } + + var open = opts.strictOpen !== false ? '^' : ''; + var close = opts.strictClose !== false ? '$' : ''; + var flags = opts.flags || ''; + var regex; + + if (opts.nocase === true && !/i/.test(flags)) { + flags += 'i'; + } + + try { + if (opts.negate || typeof opts.strictNegate === 'boolean') { + pattern = not.create(pattern, opts); + } + var str = open + '(?:' + pattern + ')' + close; + regex = new RegExp(str, flags); + } catch (err) { + if (opts.strictErrors === true) { + err.key = key; + err.pattern = pattern; + err.originalOptions = options; + err.createdOptions = opts; + throw err; + } + + try { + regex = new RegExp('^' + pattern.replace(/(\W)/g, '\\$1') + '$'); + } catch (err) { + regex = /.^/; //<= match nothing + } + } + + if (opts.cache !== false) { + cacheRegex(regex, key, pattern, opts); + } + return regex; +} + +/** + * Cache generated regex. This can result in dramatic speed improvements + * and simplify debugging by adding options and pattern to the regex. It can be + * disabled by passing setting `options.cache` to false. + */ + +function cacheRegex(regex, key, pattern, options) { + define(regex, 'cached', true); + define(regex, 'pattern', pattern); + define(regex, 'options', options); + define(regex, 'key', key); + cache[key] = regex; +} + +/** + * Create the key to use for memoization. The key is generated + * by iterating over the options and concatenating key-value pairs + * to the pattern string. + */ + +function createKey(pattern, options) { + if (!options) return pattern; + var key = pattern; + for (var prop in options) { + if (options.hasOwnProperty(prop)) { + key += ';' + prop + '=' + String(options[prop]); + } + } + return key; +} + +/** + * Expose `makeRe` + */ + +module.exports.makeRe = makeRe; + + +/***/ }), +/* 391 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -33985,7 +34795,7 @@ module.exports = braces; -var isDescriptor = __webpack_require__(308); +var isDescriptor = __webpack_require__(392); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -34010,7 +34820,7 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 308 */ +/* 392 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -34023,9 +34833,9 @@ module.exports = function defineProperty(obj, prop, val) { -var typeOf = __webpack_require__(309); -var isAccessor = __webpack_require__(310); -var isData = __webpack_require__(312); +var typeOf = __webpack_require__(393); +var isAccessor = __webpack_require__(394); +var isData = __webpack_require__(397); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -34039,7 +34849,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 309 */ +/* 393 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -34192,7 +35002,7 @@ function isBuffer(val) { /***/ }), -/* 310 */ +/* 394 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -34205,7 +35015,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(311); +var typeOf = __webpack_require__(395); // accessor descriptor properties var accessor = { @@ -34268,10 +35078,10 @@ module.exports = isAccessorDescriptor; /***/ }), -/* 311 */ +/* 395 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(22); +var isBuffer = __webpack_require__(396); var toString = Object.prototype.toString; /** @@ -34390,7 +35200,34 @@ module.exports = function kindOf(val) { /***/ }), -/* 312 */ +/* 396 */ +/***/ (function(module, exports) { + +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ + +// The _isBuffer check is for Safari 5-7 support, because it's missing +// Object.prototype.constructor. Remove this eventually +module.exports = function (obj) { + return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) +} + +function isBuffer (obj) { + return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) +} + +// For Node v0.10 support. Remove this eventually. +function isSlowBuffer (obj) { + return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) +} + + +/***/ }), +/* 397 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -34403,7 +35240,7 @@ module.exports = function kindOf(val) { -var typeOf = __webpack_require__(313); +var typeOf = __webpack_require__(398); // data descriptor properties var data = { @@ -34452,10 +35289,10 @@ module.exports = isDataDescriptor; /***/ }), -/* 313 */ +/* 398 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(22); +var isBuffer = __webpack_require__(396); var toString = Object.prototype.toString; /** @@ -34574,7 +35411,228 @@ module.exports = function kindOf(val) { /***/ }), -/* 314 */ +/* 399 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isObject = __webpack_require__(400); + +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); +} + + +/***/ }), +/* 400 */ +/***/ (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'); +}; + + +/***/ }), +/* 401 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var extend = __webpack_require__(399); + +/** + * The main export is a function that takes a `pattern` string and an `options` object. + * + * ```js + & var not = require('regex-not'); + & console.log(not('foo')); + & //=> /^(?:(?!^(?:foo)$).)*$/ + * ``` + * + * @param {String} `pattern` + * @param {Object} `options` + * @return {RegExp} Converts the given `pattern` to a regex using the specified `options`. + * @api public + */ + +function toRegex(pattern, options) { + return new RegExp(toRegex.create(pattern, options)); +} + +/** + * Create a regex-compatible string from the given `pattern` and `options`. + * + * ```js + & var not = require('regex-not'); + & console.log(not.create('foo')); + & //=> '^(?:(?!^(?:foo)$).)*$' + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {String} + * @api public + */ + +toRegex.create = function(pattern, options) { + if (typeof pattern !== 'string') { + throw new TypeError('expected a string'); + } + + var opts = extend({}, options); + if (opts && opts.contains === true) { + opts.strictNegate = false; + } + + var open = opts.strictOpen !== false ? '^' : ''; + var close = opts.strictClose !== false ? '$' : ''; + var endChar = opts.endChar ? opts.endChar : '+'; + var str = pattern; + + if (opts && opts.strictNegate === false) { + str = '(?:(?!(?:' + pattern + ')).)' + endChar; + } else { + str = '(?:(?!^(?:' + pattern + ')$).)' + endChar; + } + + return open + str + close; +}; + +/** + * Expose `toRegex` + */ + +module.exports = toRegex; + + +/***/ }), +/* 402 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * array-unique + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. + */ + + + +module.exports = function unique(arr) { + if (!Array.isArray(arr)) { + throw new TypeError('array-unique expects an array.'); + } + + var len = arr.length; + var i = -1; + + while (i++ < len) { + var j = i + 1; + + for (; j < arr.length; ++j) { + if (arr[i] === arr[j]) { + arr.splice(j--, 1); + } + } + } + return arr; +}; + +module.exports.immutable = function uniqueImmutable(arr) { + if (!Array.isArray(arr)) { + throw new TypeError('array-unique expects an array.'); + } + + var arrLen = arr.length; + var newArr = new Array(arrLen); + + for (var i = 0; i < arrLen; i++) { + newArr[i] = arr[i]; + } + + return module.exports(newArr); +}; + + +/***/ }), +/* 403 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * define-property + * + * Copyright (c) 2015, 2017, Jon Schlinkert. + * Released under the MIT License. + */ + + + +var isDescriptor = __webpack_require__(404); + +module.exports = function defineProperty(obj, prop, val) { + if (typeof obj !== 'object' && typeof obj !== 'function') { + throw new TypeError('expected an object or function.'); + } + + if (typeof prop !== 'string') { + throw new TypeError('expected `prop` to be a string.'); + } + + if (isDescriptor(val) && ('set' in val || 'get' in val)) { + return Object.defineProperty(obj, prop, val); + } + + return Object.defineProperty(obj, prop, { + configurable: true, + enumerable: false, + writable: true, + value: val + }); +}; + + +/***/ }), +/* 404 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -34587,9 +35645,9 @@ module.exports = function kindOf(val) { -var typeOf = __webpack_require__(315); -var isAccessor = __webpack_require__(316); -var isData = __webpack_require__(318); +var typeOf = __webpack_require__(405); +var isAccessor = __webpack_require__(406); +var isData = __webpack_require__(408); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -34603,7 +35661,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 315 */ +/* 405 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -34738,7 +35796,7 @@ function isBuffer(val) { /***/ }), -/* 316 */ +/* 406 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -34751,7 +35809,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(317); +var typeOf = __webpack_require__(407); // accessor descriptor properties var accessor = { @@ -34814,7 +35872,7 @@ module.exports = isAccessorDescriptor; /***/ }), -/* 317 */ +/* 407 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -34949,7 +36007,7 @@ function isBuffer(val) { /***/ }), -/* 318 */ +/* 408 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -34962,7 +36020,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(319); +var typeOf = __webpack_require__(409); module.exports = function isDataDescriptor(obj, prop) { // data descriptor properties @@ -35005,7 +36063,7 @@ module.exports = function isDataDescriptor(obj, prop) { /***/ }), -/* 319 */ +/* 409 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -35127,4631 +36185,5023 @@ function isArguments(val) { } /** - * If you need to support Safari 5-7 (8-10 yr-old browser), - * take a look at https://github.com/feross/is-buffer + * If you need to support Safari 5-7 (8-10 yr-old browser), + * take a look at https://github.com/feross/is-buffer + */ + +function isBuffer(val) { + if (val.constructor && typeof val.constructor.isBuffer === 'function') { + return val.constructor.isBuffer(val); + } + return false; +} + + +/***/ }), +/* 410 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(411); + +module.exports = function(braces, options) { + braces.compiler + + /** + * bos + */ + + .set('bos', function() { + if (this.output) return; + this.ast.queue = isEscaped(this.ast) ? [this.ast.val] : []; + this.ast.count = 1; + }) + + /** + * Square brackets + */ + + .set('bracket', function(node) { + var close = node.close; + var open = !node.escaped ? '[' : '\\['; + var negated = node.negated; + var inner = node.inner; + + inner = inner.replace(/\\(?=[\\\w]|$)/g, '\\\\'); + if (inner === ']-') { + inner = '\\]\\-'; + } + + if (negated && inner.indexOf('.') === -1) { + inner += '.'; + } + if (negated && inner.indexOf('/') === -1) { + inner += '/'; + } + + var val = open + negated + inner + close; + var queue = node.parent.queue; + var last = utils.arrayify(queue.pop()); + + queue.push(utils.join(last, val)); + queue.push.apply(queue, []); + }) + + /** + * Brace + */ + + .set('brace', function(node) { + node.queue = isEscaped(node) ? [node.val] : []; + node.count = 1; + return this.mapVisit(node.nodes); + }) + + /** + * Open + */ + + .set('brace.open', function(node) { + node.parent.open = node.val; + }) + + /** + * Inner + */ + + .set('text', function(node) { + var queue = node.parent.queue; + var escaped = node.escaped; + var segs = [node.val]; + + if (node.optimize === false) { + options = utils.extend({}, options, {optimize: false}); + } + + if (node.multiplier > 1) { + node.parent.count *= node.multiplier; + } + + if (options.quantifiers === true && utils.isQuantifier(node.val)) { + escaped = true; + + } else if (node.val.length > 1) { + if (isType(node.parent, 'brace') && !isEscaped(node)) { + var expanded = utils.expand(node.val, options); + segs = expanded.segs; + + if (expanded.isOptimized) { + node.parent.isOptimized = true; + } + + // if nothing was expanded, we probably have a literal brace + if (!segs.length) { + var val = (expanded.val || node.val); + if (options.unescape !== false) { + // unescape unexpanded brace sequence/set separators + val = val.replace(/\\([,.])/g, '$1'); + // strip quotes + val = val.replace(/["'`]/g, ''); + } + + segs = [val]; + escaped = true; + } + } + + } else if (node.val === ',') { + if (options.expand) { + node.parent.queue.push(['']); + segs = ['']; + } else { + segs = ['|']; + } + } else { + escaped = true; + } + + if (escaped && isType(node.parent, 'brace')) { + if (node.parent.nodes.length <= 4 && node.parent.count === 1) { + node.parent.escaped = true; + } else if (node.parent.length <= 3) { + node.parent.escaped = true; + } + } + + if (!hasQueue(node.parent)) { + node.parent.queue = segs; + return; + } + + var last = utils.arrayify(queue.pop()); + if (node.parent.count > 1 && options.expand) { + last = multiply(last, node.parent.count); + node.parent.count = 1; + } + + queue.push(utils.join(utils.flatten(last), segs.shift())); + queue.push.apply(queue, segs); + }) + + /** + * Close + */ + + .set('brace.close', function(node) { + var queue = node.parent.queue; + var prev = node.parent.parent; + var last = prev.queue.pop(); + var open = node.parent.open; + var close = node.val; + + if (open && close && isOptimized(node, options)) { + open = '('; + close = ')'; + } + + // if a close brace exists, and the previous segment is one character + // don't wrap the result in braces or parens + var ele = utils.last(queue); + if (node.parent.count > 1 && options.expand) { + ele = multiply(queue.pop(), node.parent.count); + node.parent.count = 1; + queue.push(ele); + } + + if (close && typeof ele === 'string' && ele.length === 1) { + open = ''; + close = ''; + } + + if ((isLiteralBrace(node, options) || noInner(node)) && !node.parent.hasEmpty) { + queue.push(utils.join(open, queue.pop() || '')); + queue = utils.flatten(utils.join(queue, close)); + } + + if (typeof last === 'undefined') { + prev.queue = [queue]; + } else { + prev.queue.push(utils.flatten(utils.join(last, queue))); + } + }) + + /** + * eos + */ + + .set('eos', function(node) { + if (this.input) return; + + if (options.optimize !== false) { + this.output = utils.last(utils.flatten(this.ast.queue)); + } else if (Array.isArray(utils.last(this.ast.queue))) { + this.output = utils.flatten(this.ast.queue.pop()); + } else { + this.output = utils.flatten(this.ast.queue); + } + + if (node.parent.count > 1 && options.expand) { + this.output = multiply(this.output, node.parent.count); + } + + this.output = utils.arrayify(this.output); + this.ast.queue = []; + }); + +}; + +/** + * Multiply the segments in the current brace level + */ + +function multiply(queue, n, options) { + return utils.flatten(utils.repeat(utils.arrayify(queue), n)); +} + +/** + * Return true if `node` is escaped + */ + +function isEscaped(node) { + return node.escaped === true; +} + +/** + * Returns true if regex parens should be used for sets. If the parent `type` + * is not `brace`, then we're on a root node, which means we should never + * expand segments and open/close braces should be `{}` (since this indicates + * a brace is missing from the set) */ -function isBuffer(val) { - if (val.constructor && typeof val.constructor.isBuffer === 'function') { - return val.constructor.isBuffer(val); - } - return false; +function isOptimized(node, options) { + if (node.parent.isOptimized) return true; + return isType(node.parent, 'brace') + && !isEscaped(node.parent) + && options.expand !== true; } +/** + * Returns true if the value in `node` should be wrapped in a literal brace. + * @return {Boolean} + */ -/***/ }), -/* 320 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var isExtendable = __webpack_require__(321); -var assignSymbols = __webpack_require__(322); - -module.exports = Object.assign || function(obj/*, objects*/) { - if (obj === null || typeof obj === 'undefined') { - throw new TypeError('Cannot convert undefined or null to object'); - } - if (!isObject(obj)) { - obj = {}; - } - for (var i = 1; i < arguments.length; i++) { - var val = arguments[i]; - if (isString(val)) { - val = toObject(val); - } - if (isObject(val)) { - assign(obj, val); - assignSymbols(obj, val); - } - } - return obj; -}; - -function assign(a, b) { - for (var key in b) { - if (hasOwn(b, key)) { - a[key] = b[key]; - } - } +function isLiteralBrace(node, options) { + return isEscaped(node.parent) || options.optimize !== false; } -function isString(val) { - return (val && typeof val === 'string'); -} +/** + * Returns true if the given `node` does not have an inner value. + * @return {Boolean} + */ -function toObject(str) { - var obj = {}; - for (var i in str) { - obj[i] = str[i]; +function noInner(node, type) { + if (node.parent.queue.length === 1) { + return true; } - return obj; -} - -function isObject(val) { - return (val && typeof val === 'object') || isExtendable(val); + var nodes = node.parent.nodes; + return nodes.length === 3 + && isType(nodes[0], 'brace.open') + && !isType(nodes[1], 'text') + && isType(nodes[2], 'brace.close'); } /** - * Returns true if the given `key` is an own property of `obj`. + * Returns true if the given `node` is the given `type` + * @return {Boolean} */ -function hasOwn(obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key); +function isType(node, type) { + return typeof node !== 'undefined' && node.type === type; } -function isEnum(obj, key) { - return Object.prototype.propertyIsEnumerable.call(obj, key); +/** + * Returns true if the given `node` has a non-empty queue. + * @return {Boolean} + */ + +function hasQueue(node) { + return Array.isArray(node.queue) && node.queue.length; } /***/ }), -/* 321 */ +/* 411 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/*! - * is-extendable - * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -var isPlainObject = __webpack_require__(76); - -module.exports = function isExtendable(val) { - return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); -}; +var splitString = __webpack_require__(412); +var utils = module.exports; +/** + * Module dependencies + */ -/***/ }), -/* 322 */ -/***/ (function(module, exports, __webpack_require__) { +utils.define = __webpack_require__(403); +utils.extend = __webpack_require__(399); +utils.flatten = __webpack_require__(418); +utils.isObject = __webpack_require__(416); +utils.fillRange = __webpack_require__(419); +utils.repeat = __webpack_require__(424); +utils.unique = __webpack_require__(402); -"use strict"; -/*! - * assign-symbols - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. +/** + * Returns true if the given string contains only empty brace sets. */ +utils.isEmptySets = function(str) { + return /^(?:\{,\})+$/.test(str); +}; +/** + * Returns true if the given string contains only empty brace sets. + */ -module.exports = function(receiver, objects) { - if (receiver === null || typeof receiver === 'undefined') { - throw new TypeError('expected first argument to be an object.'); +utils.isQuotedString = function(str) { + var open = str.charAt(0); + if (open === '\'' || open === '"' || open === '`') { + return str.slice(-1) === open; } + return false; +}; - if (typeof objects === 'undefined' || typeof Symbol === 'undefined') { - return receiver; - } +/** + * Create the key to use for memoization. The unique key is generated + * by iterating over the options and concatenating key-value pairs + * to the pattern string. + */ - if (typeof Object.getOwnPropertySymbols !== 'function') { - return receiver; +utils.createKey = function(pattern, options) { + var id = pattern; + if (typeof options === 'undefined') { + return id; } - - var isEnumerable = Object.prototype.propertyIsEnumerable; - var target = Object(receiver); - var len = arguments.length, i = 0; - - while (++i < len) { - var provider = Object(arguments[i]); - var names = Object.getOwnPropertySymbols(provider); - - for (var j = 0; j < names.length; j++) { - var key = names[j]; - - if (isEnumerable.call(provider, key)) { - target[key] = provider[key]; - } - } + var keys = Object.keys(options); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + id += ';' + key + '=' + String(options[key]); } - return target; + return id; }; +/** + * Normalize options + */ -/***/ }), -/* 323 */ -/***/ (function(module, exports, __webpack_require__) { +utils.createOptions = function(options) { + var opts = utils.extend.apply(null, arguments); + if (typeof opts.expand === 'boolean') { + opts.optimize = !opts.expand; + } + if (typeof opts.optimize === 'boolean') { + opts.expand = !opts.optimize; + } + if (opts.optimize === true) { + opts.makeRe = true; + } + return opts; +}; -"use strict"; -/*! - * arr-flatten - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. +/** + * Join patterns in `a` to patterns in `b` */ +utils.join = function(a, b, options) { + options = options || {}; + a = utils.arrayify(a); + b = utils.arrayify(b); + if (!a.length) return b; + if (!b.length) return a; -module.exports = function (arr) { - return flat(arr, []); -}; + var len = a.length; + var idx = -1; + var arr = []; -function flat(arr, res) { - var i = 0, cur; - var len = arr.length; - for (; i < len; i++) { - cur = arr[i]; - Array.isArray(cur) ? flat(cur, res) : res.push(cur); - } - return res; -} + while (++idx < len) { + var val = a[idx]; + if (Array.isArray(val)) { + for (var i = 0; i < val.length; i++) { + val[i] = utils.join(val[i], b, options); + } + arr.push(val); + continue; + } + for (var j = 0; j < b.length; j++) { + var bval = b[j]; -/***/ }), -/* 324 */ -/***/ (function(module, exports, __webpack_require__) { + if (Array.isArray(bval)) { + arr.push(utils.join(val, bval, options)); + } else { + arr.push(val + bval); + } + } + } + return arr; +}; -"use strict"; -/*! - * fill-range - * - * Copyright (c) 2014-2015, 2017, Jon Schlinkert. - * Released under the MIT License. +/** + * Split the given string on `,` if not escaped. */ - - -var util = __webpack_require__(14); -var isNumber = __webpack_require__(77); -var extend = __webpack_require__(20); -var repeat = __webpack_require__(137); -var toRegex = __webpack_require__(325); +utils.split = function(str, options) { + var opts = utils.extend({sep: ','}, options); + if (typeof opts.keepQuotes !== 'boolean') { + opts.keepQuotes = true; + } + if (opts.unescape === false) { + opts.keepEscaping = true; + } + return splitString(str, opts, utils.escapeBrackets(opts)); +}; /** - * Return a range of numbers or letters. + * Expand ranges or sets in the given `pattern`. * - * @param {String} `start` Start of the range - * @param {String} `stop` End of the range - * @param {String} `step` Increment or decrement to use. - * @param {Function} `fn` Custom function to modify each element in the range. - * @return {Array} + * @param {String} `str` + * @param {Object} `options` + * @return {Object} */ -function fillRange(start, stop, step, options) { - if (typeof start === 'undefined') { - return []; - } +utils.expand = function(str, options) { + var opts = utils.extend({rangeLimit: 10000}, options); + var segs = utils.split(str, opts); + var tok = { segs: segs }; - if (typeof stop === 'undefined' || start === stop) { - // special case, for handling negative zero - var isString = typeof start === 'string'; - if (isNumber(start) && !toNumber(start)) { - return [isString ? '0' : 0]; - } - return [start]; + if (utils.isQuotedString(str)) { + return tok; } - if (typeof step !== 'number' && typeof step !== 'string') { - options = step; - step = undefined; + if (opts.rangeLimit === true) { + opts.rangeLimit = 10000; } - if (typeof options === 'function') { - options = { transform: options }; - } + if (segs.length > 1) { + if (opts.optimize === false) { + tok.val = segs[0]; + return tok; + } - var opts = extend({step: step}, options); - if (opts.step && !isValidNumber(opts.step)) { - if (opts.strictRanges === true) { - throw new TypeError('expected options.step to be a number'); + tok.segs = utils.stringifyArray(tok.segs); + } else if (segs.length === 1) { + var arr = str.split('..'); + + if (arr.length === 1) { + tok.val = tok.segs[tok.segs.length - 1] || tok.val || str; + tok.segs = []; + return tok; } - return []; - } - opts.isNumber = isValidNumber(start) && isValidNumber(stop); - if (!opts.isNumber && !isValid(start, stop)) { - if (opts.strictRanges === true) { - throw new RangeError('invalid range arguments: ' + util.inspect([start, stop])); + if (arr.length === 2 && arr[0] === arr[1]) { + tok.escaped = true; + tok.val = arr[0]; + tok.segs = []; + return tok; } - return []; - } - opts.isPadded = isPadded(start) || isPadded(stop); - opts.toString = opts.stringify - || typeof opts.step === 'string' - || typeof start === 'string' - || typeof stop === 'string' - || !opts.isNumber; + if (arr.length > 1) { + if (opts.optimize !== false) { + opts.optimize = true; + delete opts.expand; + } - if (opts.isPadded) { - opts.maxLength = Math.max(String(start).length, String(stop).length); - } + if (opts.optimize !== true) { + var min = Math.min(arr[0], arr[1]); + var max = Math.max(arr[0], arr[1]); + var step = arr[2] || 1; - // support legacy minimatch/fill-range options - if (typeof opts.optimize === 'boolean') opts.toRegex = opts.optimize; - if (typeof opts.makeRe === 'boolean') opts.toRegex = opts.makeRe; - return expand(start, stop, opts); -} + if (opts.rangeLimit !== false && ((max - min) / step >= opts.rangeLimit)) { + throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); + } + } -function expand(start, stop, options) { - var a = options.isNumber ? toNumber(start) : start.charCodeAt(0); - var b = options.isNumber ? toNumber(stop) : stop.charCodeAt(0); + arr.push(opts); + tok.segs = utils.fillRange.apply(null, arr); - var step = Math.abs(toNumber(options.step)) || 1; - if (options.toRegex && step === 1) { - return toRange(a, b, start, stop, options); - } + if (!tok.segs.length) { + tok.escaped = true; + tok.val = str; + return tok; + } - var zero = {greater: [], lesser: []}; - var asc = a < b; - var arr = new Array(Math.round((asc ? b - a : a - b) / step)); - var idx = 0; + if (opts.optimize === true) { + tok.segs = utils.stringifyArray(tok.segs); + } - while (asc ? a <= b : a >= b) { - var val = options.isNumber ? a : String.fromCharCode(a); - if (options.toRegex && (val >= 0 || !options.isNumber)) { - zero.greater.push(val); - } else { - zero.lesser.push(Math.abs(val)); + if (tok.segs === '') { + tok.val = str; + } else { + tok.val = tok.segs[0]; + } + return tok; } + } else { + tok.val = str; + } + return tok; +}; - if (options.isPadded) { - val = zeros(val, options); - } +/** + * Ensure commas inside brackets and parens are not split. + * @param {Object} `tok` Token from the `split-string` module + * @return {undefined} + */ - if (options.toString) { - val = String(val); +utils.escapeBrackets = function(options) { + return function(tok) { + if (tok.escaped && tok.val === 'b') { + tok.val = '\\b'; + return; } - if (typeof options.transform === 'function') { - arr[idx++] = options.transform(val, a, b, step, idx, arr, options); - } else { - arr[idx++] = val; - } + if (tok.val !== '(' && tok.val !== '[') return; + var opts = utils.extend({}, options); + var brackets = []; + var parens = []; + var stack = []; + var val = tok.val; + var str = tok.str; + var i = tok.idx - 1; - if (asc) { - a += step; - } else { - a -= step; + while (++i < str.length) { + var ch = str[i]; + + if (ch === '\\') { + val += (opts.keepEscaping === false ? '' : ch) + str[++i]; + continue; + } + + if (ch === '(') { + parens.push(ch); + stack.push(ch); + } + + if (ch === '[') { + brackets.push(ch); + stack.push(ch); + } + + if (ch === ')') { + parens.pop(); + stack.pop(); + if (!stack.length) { + val += ch; + break; + } + } + + if (ch === ']') { + brackets.pop(); + stack.pop(); + if (!stack.length) { + val += ch; + break; + } + } + val += ch; } - } - if (options.toRegex === true) { - return toSequence(arr, zero, options); - } - return arr; -} + tok.split = false; + tok.val = val.slice(1); + tok.idx = i; + }; +}; -function toRange(a, b, start, stop, options) { - if (options.isPadded) { - return toRegex(start, stop, options); - } +/** + * Returns true if the given string looks like a regex quantifier + * @return {Boolean} + */ - if (options.isNumber) { - return toRegex(Math.min(a, b), Math.max(a, b), options); - } +utils.isQuantifier = function(str) { + return /^(?:[0-9]?,[0-9]|[0-9],)$/.test(str); +}; - var start = String.fromCharCode(Math.min(a, b)); - var stop = String.fromCharCode(Math.max(a, b)); - return '[' + start + '-' + stop + ']'; -} +/** + * Cast `val` to an array. + * @param {*} `val` + */ -function toSequence(arr, zeros, options) { - var greater = '', lesser = ''; - if (zeros.greater.length) { - greater = zeros.greater.join('|'); - } - if (zeros.lesser.length) { - lesser = '-(' + zeros.lesser.join('|') + ')'; - } - var res = greater && lesser - ? greater + '|' + lesser - : greater || lesser; +utils.stringifyArray = function(arr) { + return [utils.arrayify(arr).join('|')]; +}; - if (options.capture) { - return '(' + res + ')'; - } - return res; -} +/** + * Cast `val` to an array. + * @param {*} `val` + */ -function zeros(val, options) { - if (options.isPadded) { - var str = String(val); - var len = str.length; - var dash = ''; - if (str.charAt(0) === '-') { - dash = '-'; - str = str.slice(1); - } - var diff = options.maxLength - len; - var pad = repeat('0', diff); - val = (dash + pad + str); +utils.arrayify = function(arr) { + if (typeof arr === 'undefined') { + return []; } - if (options.stringify) { - return String(val); + if (typeof arr === 'string') { + return [arr]; } - return val; -} - -function toNumber(val) { - return Number(val) || 0; -} - -function isPadded(str) { - return /^-?0\d/.test(str); -} - -function isValid(min, max) { - return (isValidNumber(min) || isValidLetter(min)) - && (isValidNumber(max) || isValidLetter(max)); -} + return arr; +}; -function isValidLetter(ch) { - return typeof ch === 'string' && ch.length === 1 && /^\w+$/.test(ch); -} +/** + * Returns true if the given `str` is a non-empty string + * @return {Boolean} + */ -function isValidNumber(n) { - return isNumber(n) && !/\./.test(n); -} +utils.isString = function(str) { + return str != null && typeof str === 'string'; +}; /** - * Expose `fillRange` - * @type {Function} + * Get the last element from `array` + * @param {Array} `array` + * @return {*} */ -module.exports = fillRange; +utils.last = function(arr, n) { + return arr[arr.length - (n || 1)]; +}; + +utils.escapeRegex = function(str) { + return str.replace(/\\?([!^*?()\[\]{}+?/])/g, '\\$1'); +}; /***/ }), -/* 325 */ +/* 412 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /*! - * to-regex-range + * split-string * - * Copyright (c) 2015, 2017, Jon Schlinkert. + * Copyright (c) 2015-2017, Jon Schlinkert. * Released under the MIT License. */ -var repeat = __webpack_require__(137); -var isNumber = __webpack_require__(77); -var cache = {}; +var extend = __webpack_require__(413); -function toRegexRange(min, max, options) { - if (isNumber(min) === false) { - throw new RangeError('toRegexRange: first argument is invalid.'); +module.exports = function(str, options, fn) { + if (typeof str !== 'string') { + throw new TypeError('expected a string'); } - if (typeof max === 'undefined' || min === max) { - return String(min); + if (typeof options === 'function') { + fn = options; + options = null; } - if (isNumber(max) === false) { - throw new RangeError('toRegexRange: second argument is invalid.'); + // allow separator to be defined as a string + if (typeof options === 'string') { + options = { sep: options }; } - options = options || {}; - var relax = String(options.relaxZeros); - var shorthand = String(options.shorthand); - var capture = String(options.capture); - var key = min + ':' + max + '=' + relax + shorthand + capture; - if (cache.hasOwnProperty(key)) { - return cache[key].result; + var opts = extend({sep: '.'}, options); + var quotes = opts.quotes || ['"', "'", '`']; + var brackets; + + if (opts.brackets === true) { + brackets = { + '<': '>', + '(': ')', + '[': ']', + '{': '}' + }; + } else if (opts.brackets) { + brackets = opts.brackets; } - var a = Math.min(min, max); - var b = Math.max(min, max); + var tokens = []; + var stack = []; + var arr = ['']; + var sep = opts.sep; + var len = str.length; + var idx = -1; + var closeIdx; - if (Math.abs(a - b) === 1) { - var result = min + '|' + max; - if (options.capture) { - return '(' + result + ')'; + function expected() { + if (brackets && stack.length) { + return brackets[stack[stack.length - 1]]; } - return result; } - var isPadded = padding(min) || padding(max); - var positives = []; - var negatives = []; + while (++idx < len) { + var ch = str[idx]; + var next = str[idx + 1]; + var tok = { val: ch, idx: idx, arr: arr, str: str }; + tokens.push(tok); - var tok = {min: min, max: max, a: a, b: b}; - if (isPadded) { - tok.isPadded = isPadded; - tok.maxLen = String(tok.max).length; - } + if (ch === '\\') { + tok.val = keepEscaping(opts, str, idx) === true ? (ch + next) : next; + tok.escaped = true; + if (typeof fn === 'function') { + fn(tok); + } + arr[arr.length - 1] += tok.val; + idx++; + continue; + } - if (a < 0) { - var newMin = b < 0 ? Math.abs(b) : 1; - var newMax = Math.abs(a); - negatives = splitToPatterns(newMin, newMax, tok, options); - a = tok.a = 0; - } + if (brackets && brackets[ch]) { + stack.push(ch); + var e = expected(); + var i = idx + 1; - if (b >= 0) { - positives = splitToPatterns(a, b, tok, options); - } + if (str.indexOf(e, i + 1) !== -1) { + while (stack.length && i < len) { + var s = str[++i]; + if (s === '\\') { + s++; + continue; + } - tok.negatives = negatives; - tok.positives = positives; - tok.result = siftPatterns(negatives, positives, options); + if (quotes.indexOf(s) !== -1) { + i = getClosingQuote(str, s, i + 1); + continue; + } - if (options.capture && (positives.length + negatives.length) > 1) { - tok.result = '(' + tok.result + ')'; - } + e = expected(); + if (stack.length && str.indexOf(e, i + 1) === -1) { + break; + } - cache[key] = tok; - return tok.result; -} + if (brackets[s]) { + stack.push(s); + continue; + } -function siftPatterns(neg, pos, options) { - var onlyNegative = filterPatterns(neg, pos, '-', false, options) || []; - var onlyPositive = filterPatterns(pos, neg, '', false, options) || []; - var intersected = filterPatterns(neg, pos, '-?', true, options) || []; - var subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); - return subpatterns.join('|'); -} + if (e === s) { + stack.pop(); + } + } + } -function splitToRanges(min, max) { - min = Number(min); - max = Number(max); + closeIdx = i; + if (closeIdx === -1) { + arr[arr.length - 1] += ch; + continue; + } - var nines = 1; - var stops = [max]; - var stop = +countNines(min, nines); + ch = str.slice(idx, closeIdx + 1); + tok.val = ch; + tok.idx = idx = closeIdx; + } - while (min <= stop && stop <= max) { - stops = push(stops, stop); - nines += 1; - stop = +countNines(min, nines); - } + if (quotes.indexOf(ch) !== -1) { + closeIdx = getClosingQuote(str, ch, idx + 1); + if (closeIdx === -1) { + arr[arr.length - 1] += ch; + continue; + } - var zeros = 1; - stop = countZeros(max + 1, zeros) - 1; + if (keepQuotes(ch, opts) === true) { + ch = str.slice(idx, closeIdx + 1); + } else { + ch = str.slice(idx + 1, closeIdx); + } - while (min < stop && stop <= max) { - stops = push(stops, stop); - zeros += 1; - stop = countZeros(max + 1, zeros) - 1; + tok.val = ch; + tok.idx = idx = closeIdx; + } + + if (typeof fn === 'function') { + fn(tok, tokens); + ch = tok.val; + idx = tok.idx; + } + + if (tok.val === sep && tok.split !== false) { + arr.push(''); + continue; + } + + arr[arr.length - 1] += tok.val; } - stops.sort(compare); - return stops; + return arr; +}; + +function getClosingQuote(str, ch, i, brackets) { + var idx = str.indexOf(ch, i); + if (str.charAt(idx - 1) === '\\') { + return getClosingQuote(str, ch, idx + 1); + } + return idx; } -/** - * Convert a range to a regex pattern - * @param {Number} `start` - * @param {Number} `stop` - * @return {String} - */ +function keepQuotes(ch, opts) { + if (opts.keepDoubleQuotes === true && ch === '"') return true; + if (opts.keepSingleQuotes === true && ch === "'") return true; + return opts.keepQuotes; +} -function rangeToPattern(start, stop, options) { - if (start === stop) { - return {pattern: String(start), digits: []}; +function keepEscaping(opts, str, idx) { + if (typeof opts.keepEscaping === 'function') { + return opts.keepEscaping(str, idx); } + return opts.keepEscaping === true || str[idx + 1] === '\\'; +} - var zipped = zip(String(start), String(stop)); - var len = zipped.length, i = -1; - var pattern = ''; - var digits = 0; +/***/ }), +/* 413 */ +/***/ (function(module, exports, __webpack_require__) { - while (++i < len) { - var numbers = zipped[i]; - var startDigit = numbers[0]; - var stopDigit = numbers[1]; +"use strict"; - if (startDigit === stopDigit) { - pattern += startDigit; - } else if (startDigit !== '0' || stopDigit !== '9') { - pattern += toCharacterClass(startDigit, stopDigit); +var isExtendable = __webpack_require__(414); +var assignSymbols = __webpack_require__(417); - } else { - digits += 1; +module.exports = Object.assign || function(obj/*, objects*/) { + if (obj === null || typeof obj === 'undefined') { + throw new TypeError('Cannot convert undefined or null to object'); + } + if (!isObject(obj)) { + obj = {}; + } + for (var i = 1; i < arguments.length; i++) { + var val = arguments[i]; + if (isString(val)) { + val = toObject(val); + } + if (isObject(val)) { + assign(obj, val); + assignSymbols(obj, val); } } + return obj; +}; - if (digits) { - pattern += options.shorthand ? '\\d' : '[0-9]'; +function assign(a, b) { + for (var key in b) { + if (hasOwn(b, key)) { + a[key] = b[key]; + } } +} - return { pattern: pattern, digits: [digits] }; +function isString(val) { + return (val && typeof val === 'string'); } -function splitToPatterns(min, max, tok, options) { - var ranges = splitToRanges(min, max); - var len = ranges.length; - var idx = -1; +function toObject(str) { + var obj = {}; + for (var i in str) { + obj[i] = str[i]; + } + return obj; +} - var tokens = []; - var start = min; - var prev; +function isObject(val) { + return (val && typeof val === 'object') || isExtendable(val); +} - while (++idx < len) { - var range = ranges[idx]; - var obj = rangeToPattern(start, range, options); - var zeros = ''; +/** + * Returns true if the given `key` is an own property of `obj`. + */ - if (!tok.isPadded && prev && prev.pattern === obj.pattern) { - if (prev.digits.length > 1) { - prev.digits.pop(); - } - prev.digits.push(obj.digits[0]); - prev.string = prev.pattern + toQuantifier(prev.digits); - start = range + 1; - continue; - } +function hasOwn(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} - if (tok.isPadded) { - zeros = padZeros(range, tok); - } +function isEnum(obj, key) { + return Object.prototype.propertyIsEnumerable.call(obj, key); +} - obj.string = zeros + obj.pattern + toQuantifier(obj.digits); - tokens.push(obj); - start = range + 1; - prev = obj; - } - return tokens; -} +/***/ }), +/* 414 */ +/***/ (function(module, exports, __webpack_require__) { -function filterPatterns(arr, comparison, prefix, intersection, options) { - var res = []; +"use strict"; +/*! + * is-extendable + * + * Copyright (c) 2015-2017, Jon Schlinkert. + * Released under the MIT License. + */ - for (var i = 0; i < arr.length; i++) { - var tok = arr[i]; - var ele = tok.string; - if (options.relaxZeros !== false) { - if (prefix === '-' && ele.charAt(0) === '0') { - if (ele.charAt(1) === '{') { - ele = '0*' + ele.replace(/^0\{\d+\}/, ''); - } else { - ele = '0*' + ele.slice(1); - } - } - } - if (!intersection && !contains(comparison, 'string', ele)) { - res.push(prefix + ele); - } +var isPlainObject = __webpack_require__(415); - if (intersection && contains(comparison, 'string', ele)) { - res.push(prefix + ele); - } - } - return res; -} +module.exports = function isExtendable(val) { + return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); +}; -/** - * Zip strings (`for in` can be used on string characters) - */ -function zip(a, b) { - var arr = []; - for (var ch in a) arr.push([a[ch], b[ch]]); - return arr; -} +/***/ }), +/* 415 */ +/***/ (function(module, exports, __webpack_require__) { -function compare(a, b) { - return a > b ? 1 : b > a ? -1 : 0; -} +"use strict"; +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ -function push(arr, ele) { - if (arr.indexOf(ele) === -1) arr.push(ele); - return arr; -} -function contains(arr, key, val) { - for (var i = 0; i < arr.length; i++) { - if (arr[i][key] === val) { - return true; - } - } - return false; -} -function countNines(min, len) { - return String(min).slice(0, -len) + repeat('9', len); -} +var isObject = __webpack_require__(416); -function countZeros(integer, zeros) { - return integer - (integer % Math.pow(10, zeros)); +function isObjectObject(o) { + return isObject(o) === true + && Object.prototype.toString.call(o) === '[object Object]'; } -function toQuantifier(digits) { - var start = digits[0]; - var stop = digits[1] ? (',' + digits[1]) : ''; - if (!stop && (!start || start === 1)) { - return ''; - } - return '{' + start + stop + '}'; -} +module.exports = function isPlainObject(o) { + var ctor,prot; -function toCharacterClass(a, b) { - return '[' + a + ((b - a === 1) ? '' : '-') + b + ']'; -} + if (isObjectObject(o) === false) return false; -function padding(str) { - return /^-?(0+)\d/.exec(str); -} + // If has modified constructor + ctor = o.constructor; + if (typeof ctor !== 'function') return false; -function padZeros(val, tok) { - if (tok.isPadded) { - var diff = Math.abs(tok.maxLen - String(val).length); - switch (diff) { - case 0: - return ''; - case 1: - return '0'; - default: { - return '0{' + diff + '}'; - } - } - } - return val; -} + // If has modified prototype + prot = ctor.prototype; + if (isObjectObject(prot) === false) return false; -/** - * Expose `toRegexRange` - */ + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } -module.exports = toRegexRange; + // Most likely a plain Object + return true; +}; /***/ }), -/* 326 */ +/* 416 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /*! - * repeat-element + * isobject * - * Copyright (c) 2015 Jon Schlinkert. - * Licensed under the MIT license. + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. */ -module.exports = function repeat(ele, num) { - var arr = new Array(num); - - for (var i = 0; i < num; i++) { - arr[i] = ele; - } - - return arr; +module.exports = function isObject(val) { + return val != null && typeof val === 'object' && Array.isArray(val) === false; }; /***/ }), -/* 327 */ +/* 417 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - - -var isObject = __webpack_require__(30); -var define = __webpack_require__(44); -var utils = __webpack_require__(328); -var ownNames; - -/** - * Create a new AST `Node` with the given `val` and `type`. +/*! + * assign-symbols * - * ```js - * var node = new Node('*', 'Star'); - * var node = new Node({type: 'star', val: '*'}); - * ``` - * @name Node - * @param {String|Object} `val` Pass a matched substring, or an object to merge onto the node. - * @param {String} `type` The node type to use when `val` is a string. - * @return {Object} node instance - * @api public + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. */ -function Node(val, type, parent) { - if (typeof type !== 'string') { - parent = type; - type = null; - } - define(this, 'parent', parent); - define(this, 'isNode', true); - define(this, 'expect', null); - if (typeof type !== 'string' && isObject(val)) { - lazyKeys(); - var keys = Object.keys(val); - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (ownNames.indexOf(key) === -1) { - this[key] = val[key]; - } - } - } else { - this.type = type; - this.val = val; +module.exports = function(receiver, objects) { + if (receiver === null || typeof receiver === 'undefined') { + throw new TypeError('expected first argument to be an object.'); } -} -/** - * Returns true if the given value is a node. - * - * ```js - * var Node = require('snapdragon-node'); - * var node = new Node({type: 'foo'}); - * console.log(Node.isNode(node)); //=> true - * console.log(Node.isNode({})); //=> false - * ``` - * @param {Object} `node` - * @returns {Boolean} - * @api public - */ - -Node.isNode = function(node) { - return utils.isNode(node); -}; - -/** - * Define a non-enumberable property on the node instance. - * Useful for adding properties that shouldn't be extended - * or visible during debugging. - * - * ```js - * var node = new Node(); - * node.define('foo', 'something non-enumerable'); - * ``` - * @param {String} `name` - * @param {any} `val` - * @return {Object} returns the node instance - * @api public - */ - -Node.prototype.define = function(name, val) { - define(this, name, val); - return this; -}; + if (typeof objects === 'undefined' || typeof Symbol === 'undefined') { + return receiver; + } -/** - * Returns true if `node.val` is an empty string, or `node.nodes` does - * not contain any non-empty text nodes. - * - * ```js - * var node = new Node({type: 'text'}); - * node.isEmpty(); //=> true - * node.val = 'foo'; - * node.isEmpty(); //=> false - * ``` - * @param {Function} `fn` (optional) Filter function that is called on `node` and/or child nodes. `isEmpty` will return false immediately when the filter function returns false on any nodes. - * @return {Boolean} - * @api public - */ + if (typeof Object.getOwnPropertySymbols !== 'function') { + return receiver; + } -Node.prototype.isEmpty = function(fn) { - return utils.isEmpty(this, fn); -}; + var isEnumerable = Object.prototype.propertyIsEnumerable; + var target = Object(receiver); + var len = arguments.length, i = 0; -/** - * Given node `foo` and node `bar`, push node `bar` onto `foo.nodes`, and - * set `foo` as `bar.parent`. - * - * ```js - * var foo = new Node({type: 'foo'}); - * var bar = new Node({type: 'bar'}); - * foo.push(bar); - * ``` - * @param {Object} `node` - * @return {Number} Returns the length of `node.nodes` - * @api public - */ + while (++i < len) { + var provider = Object(arguments[i]); + var names = Object.getOwnPropertySymbols(provider); -Node.prototype.push = function(node) { - assert(Node.isNode(node), 'expected node to be an instance of Node'); - define(node, 'parent', this); + for (var j = 0; j < names.length; j++) { + var key = names[j]; - this.nodes = this.nodes || []; - return this.nodes.push(node); + if (isEnumerable.call(provider, key)) { + target[key] = provider[key]; + } + } + } + return target; }; -/** - * Given node `foo` and node `bar`, unshift node `bar` onto `foo.nodes`, and - * set `foo` as `bar.parent`. - * - * ```js - * var foo = new Node({type: 'foo'}); - * var bar = new Node({type: 'bar'}); - * foo.unshift(bar); - * ``` - * @param {Object} `node` - * @return {Number} Returns the length of `node.nodes` - * @api public - */ - -Node.prototype.unshift = function(node) { - assert(Node.isNode(node), 'expected node to be an instance of Node'); - define(node, 'parent', this); - this.nodes = this.nodes || []; - return this.nodes.unshift(node); -}; +/***/ }), +/* 418 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Pop a node from `node.nodes`. +"use strict"; +/*! + * arr-flatten * - * ```js - * var node = new Node({type: 'foo'}); - * node.push(new Node({type: 'a'})); - * node.push(new Node({type: 'b'})); - * node.push(new Node({type: 'c'})); - * node.push(new Node({type: 'd'})); - * console.log(node.nodes.length); - * //=> 4 - * node.pop(); - * console.log(node.nodes.length); - * //=> 3 - * ``` - * @return {Number} Returns the popped `node` - * @api public + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. */ -Node.prototype.pop = function() { - return this.nodes && this.nodes.pop(); -}; -/** - * Shift a node from `node.nodes`. - * - * ```js - * var node = new Node({type: 'foo'}); - * node.push(new Node({type: 'a'})); - * node.push(new Node({type: 'b'})); - * node.push(new Node({type: 'c'})); - * node.push(new Node({type: 'd'})); - * console.log(node.nodes.length); - * //=> 4 - * node.shift(); - * console.log(node.nodes.length); - * //=> 3 - * ``` - * @return {Object} Returns the shifted `node` - * @api public - */ -Node.prototype.shift = function() { - return this.nodes && this.nodes.shift(); +module.exports = function (arr) { + return flat(arr, []); }; -/** - * Remove `node` from `node.nodes`. - * - * ```js - * node.remove(childNode); - * ``` - * @param {Object} `node` - * @return {Object} Returns the removed node. - * @api public - */ - -Node.prototype.remove = function(node) { - assert(Node.isNode(node), 'expected node to be an instance of Node'); - this.nodes = this.nodes || []; - var idx = node.index; - if (idx !== -1) { - node.index = -1; - return this.nodes.splice(idx, 1); +function flat(arr, res) { + var i = 0, cur; + var len = arr.length; + for (; i < len; i++) { + cur = arr[i]; + Array.isArray(cur) ? flat(cur, res) : res.push(cur); } - return null; -}; + return res; +} -/** - * Get the first child node from `node.nodes` that matches the given `type`. - * If `type` is a number, the child node at that index is returned. - * - * ```js - * var child = node.find(1); //<= index of the node to get - * var child = node.find('foo'); //<= node.type of a child node - * var child = node.find(/^(foo|bar)$/); //<= regex to match node.type - * var child = node.find(['foo', 'bar']); //<= array of node.type(s) - * ``` - * @param {String} `type` - * @return {Object} Returns a child node or undefined. - * @api public - */ -Node.prototype.find = function(type) { - return utils.findNode(this.nodes, type); -}; +/***/ }), +/* 419 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Return true if the node is the given `type`. +"use strict"; +/*! + * fill-range * - * ```js - * var node = new Node({type: 'bar'}); - * cosole.log(node.isType('foo')); // false - * cosole.log(node.isType(/^(foo|bar)$/)); // true - * cosole.log(node.isType(['foo', 'bar'])); // true - * ``` - * @param {String} `type` - * @return {Boolean} - * @api public + * Copyright (c) 2014-2015, 2017, Jon Schlinkert. + * Released under the MIT License. */ -Node.prototype.isType = function(type) { - return utils.isType(this, type); -}; -/** - * Return true if the `node.nodes` has the given `type`. - * - * ```js - * var foo = new Node({type: 'foo'}); - * var bar = new Node({type: 'bar'}); - * foo.push(bar); - * - * cosole.log(foo.hasType('qux')); // false - * cosole.log(foo.hasType(/^(qux|bar)$/)); // true - * cosole.log(foo.hasType(['qux', 'bar'])); // true - * ``` - * @param {String} `type` - * @return {Boolean} - * @api public - */ -Node.prototype.hasType = function(type) { - return utils.hasType(this, type); -}; +var util = __webpack_require__(29); +var isNumber = __webpack_require__(420); +var extend = __webpack_require__(399); +var repeat = __webpack_require__(422); +var toRegex = __webpack_require__(423); /** - * Get the siblings array, or `null` if it doesn't exist. - * - * ```js - * var foo = new Node({type: 'foo'}); - * var bar = new Node({type: 'bar'}); - * var baz = new Node({type: 'baz'}); - * foo.push(bar); - * foo.push(baz); + * Return a range of numbers or letters. * - * console.log(bar.siblings.length) // 2 - * console.log(baz.siblings.length) // 2 - * ``` + * @param {String} `start` Start of the range + * @param {String} `stop` End of the range + * @param {String} `step` Increment or decrement to use. + * @param {Function} `fn` Custom function to modify each element in the range. * @return {Array} - * @api public */ -Object.defineProperty(Node.prototype, 'siblings', { - set: function() { - throw new Error('node.siblings is a getter and cannot be defined'); - }, - get: function() { - return this.parent ? this.parent.nodes : null; +function fillRange(start, stop, step, options) { + if (typeof start === 'undefined') { + return []; } -}); - -/** - * Get the node's current index from `node.parent.nodes`. - * This should always be correct, even when the parent adds nodes. - * - * ```js - * var foo = new Node({type: 'foo'}); - * var bar = new Node({type: 'bar'}); - * var baz = new Node({type: 'baz'}); - * var qux = new Node({type: 'qux'}); - * foo.push(bar); - * foo.push(baz); - * foo.unshift(qux); - * - * console.log(bar.index) // 1 - * console.log(baz.index) // 2 - * console.log(qux.index) // 0 - * ``` - * @return {Number} - * @api public - */ -Object.defineProperty(Node.prototype, 'index', { - set: function(index) { - define(this, 'idx', index); - }, - get: function() { - if (!Array.isArray(this.siblings)) { - return -1; - } - var tok = this.idx !== -1 ? this.siblings[this.idx] : null; - if (tok !== this) { - this.idx = this.siblings.indexOf(this); + if (typeof stop === 'undefined' || start === stop) { + // special case, for handling negative zero + var isString = typeof start === 'string'; + if (isNumber(start) && !toNumber(start)) { + return [isString ? '0' : 0]; } - return this.idx; + return [start]; } -}); -/** - * Get the previous node from the siblings array or `null`. - * - * ```js - * var foo = new Node({type: 'foo'}); - * var bar = new Node({type: 'bar'}); - * var baz = new Node({type: 'baz'}); - * foo.push(bar); - * foo.push(baz); - * - * console.log(baz.prev.type) // 'bar' - * ``` - * @return {Object} - * @api public - */ + if (typeof step !== 'number' && typeof step !== 'string') { + options = step; + step = undefined; + } -Object.defineProperty(Node.prototype, 'prev', { - set: function() { - throw new Error('node.prev is a getter and cannot be defined'); - }, - get: function() { - if (Array.isArray(this.siblings)) { - return this.siblings[this.index - 1] || this.parent.prev; - } - return null; + if (typeof options === 'function') { + options = { transform: options }; } -}); -/** - * Get the siblings array, or `null` if it doesn't exist. - * - * ```js - * var foo = new Node({type: 'foo'}); - * var bar = new Node({type: 'bar'}); - * var baz = new Node({type: 'baz'}); - * foo.push(bar); - * foo.push(baz); - * - * console.log(bar.siblings.length) // 2 - * console.log(baz.siblings.length) // 2 - * ``` - * @return {Object} - * @api public - */ + var opts = extend({step: step}, options); + if (opts.step && !isValidNumber(opts.step)) { + if (opts.strictRanges === true) { + throw new TypeError('expected options.step to be a number'); + } + return []; + } -Object.defineProperty(Node.prototype, 'next', { - set: function() { - throw new Error('node.next is a getter and cannot be defined'); - }, - get: function() { - if (Array.isArray(this.siblings)) { - return this.siblings[this.index + 1] || this.parent.next; + opts.isNumber = isValidNumber(start) && isValidNumber(stop); + if (!opts.isNumber && !isValid(start, stop)) { + if (opts.strictRanges === true) { + throw new RangeError('invalid range arguments: ' + util.inspect([start, stop])); } - return null; + return []; } -}); -/** - * Get the first node from `node.nodes`. - * - * ```js - * var foo = new Node({type: 'foo'}); - * var bar = new Node({type: 'bar'}); - * var baz = new Node({type: 'baz'}); - * var qux = new Node({type: 'qux'}); - * foo.push(bar); - * foo.push(baz); - * foo.push(qux); - * - * console.log(foo.first.type) // 'bar' - * ``` - * @return {Object} The first node, or undefiend - * @api public - */ + opts.isPadded = isPadded(start) || isPadded(stop); + opts.toString = opts.stringify + || typeof opts.step === 'string' + || typeof start === 'string' + || typeof stop === 'string' + || !opts.isNumber; -Object.defineProperty(Node.prototype, 'first', { - get: function() { - return this.nodes ? this.nodes[0] : null; + if (opts.isPadded) { + opts.maxLength = Math.max(String(start).length, String(stop).length); } -}); -/** - * Get the last node from `node.nodes`. - * - * ```js - * var foo = new Node({type: 'foo'}); - * var bar = new Node({type: 'bar'}); - * var baz = new Node({type: 'baz'}); - * var qux = new Node({type: 'qux'}); - * foo.push(bar); - * foo.push(baz); - * foo.push(qux); - * - * console.log(foo.last.type) // 'qux' - * ``` - * @return {Object} The last node, or undefiend - * @api public - */ + // support legacy minimatch/fill-range options + if (typeof opts.optimize === 'boolean') opts.toRegex = opts.optimize; + if (typeof opts.makeRe === 'boolean') opts.toRegex = opts.makeRe; + return expand(start, stop, opts); +} + +function expand(start, stop, options) { + var a = options.isNumber ? toNumber(start) : start.charCodeAt(0); + var b = options.isNumber ? toNumber(stop) : stop.charCodeAt(0); + + var step = Math.abs(toNumber(options.step)) || 1; + if (options.toRegex && step === 1) { + return toRange(a, b, start, stop, options); + } + + var zero = {greater: [], lesser: []}; + var asc = a < b; + var arr = new Array(Math.round((asc ? b - a : a - b) / step)); + var idx = 0; + + while (asc ? a <= b : a >= b) { + var val = options.isNumber ? a : String.fromCharCode(a); + if (options.toRegex && (val >= 0 || !options.isNumber)) { + zero.greater.push(val); + } else { + zero.lesser.push(Math.abs(val)); + } -Object.defineProperty(Node.prototype, 'last', { - get: function() { - return this.nodes ? utils.last(this.nodes) : null; - } -}); + if (options.isPadded) { + val = zeros(val, options); + } -/** - * Get the last node from `node.nodes`. - * - * ```js - * var foo = new Node({type: 'foo'}); - * var bar = new Node({type: 'bar'}); - * var baz = new Node({type: 'baz'}); - * var qux = new Node({type: 'qux'}); - * foo.push(bar); - * foo.push(baz); - * foo.push(qux); - * - * console.log(foo.last.type) // 'qux' - * ``` - * @return {Object} The last node, or undefiend - * @api public - */ + if (options.toString) { + val = String(val); + } -Object.defineProperty(Node.prototype, 'scope', { - get: function() { - if (this.isScope !== true) { - return this.parent ? this.parent.scope : this; + if (typeof options.transform === 'function') { + arr[idx++] = options.transform(val, a, b, step, idx, arr, options); + } else { + arr[idx++] = val; } - return this; - } -}); -/** - * Get own property names from Node prototype, but only the - * first time `Node` is instantiated - */ + if (asc) { + a += step; + } else { + a -= step; + } + } -function lazyKeys() { - if (!ownNames) { - ownNames = Object.getOwnPropertyNames(Node.prototype); + if (options.toRegex === true) { + return toSequence(arr, zero, options); } + return arr; } -/** - * Simplified assertion. Throws an error is `val` is falsey. - */ +function toRange(a, b, start, stop, options) { + if (options.isPadded) { + return toRegex(start, stop, options); + } -function assert(val, message) { - if (!val) throw new Error(message); + if (options.isNumber) { + return toRegex(Math.min(a, b), Math.max(a, b), options); + } + + var start = String.fromCharCode(Math.min(a, b)); + var stop = String.fromCharCode(Math.max(a, b)); + return '[' + start + '-' + stop + ']'; } -/** - * Expose `Node` - */ +function toSequence(arr, zeros, options) { + var greater = '', lesser = ''; + if (zeros.greater.length) { + greater = zeros.greater.join('|'); + } + if (zeros.lesser.length) { + lesser = '-(' + zeros.lesser.join('|') + ')'; + } + var res = greater && lesser + ? greater + '|' + lesser + : greater || lesser; -exports = module.exports = Node; + if (options.capture) { + return '(' + res + ')'; + } + return res; +} + +function zeros(val, options) { + if (options.isPadded) { + var str = String(val); + var len = str.length; + var dash = ''; + if (str.charAt(0) === '-') { + dash = '-'; + str = str.slice(1); + } + var diff = options.maxLength - len; + var pad = repeat('0', diff); + val = (dash + pad + str); + } + if (options.stringify) { + return String(val); + } + return val; +} +function toNumber(val) { + return Number(val) || 0; +} -/***/ }), -/* 328 */ -/***/ (function(module, exports, __webpack_require__) { +function isPadded(str) { + return /^-?0\d/.test(str); +} -"use strict"; +function isValid(min, max) { + return (isValidNumber(min) || isValidLetter(min)) + && (isValidNumber(max) || isValidLetter(max)); +} +function isValidLetter(ch) { + return typeof ch === 'string' && ch.length === 1 && /^\w+$/.test(ch); +} -var typeOf = __webpack_require__(49); -var utils = module.exports; +function isValidNumber(n) { + return isNumber(n) && !/\./.test(n); +} /** - * Returns true if the given value is a node. - * - * ```js - * var Node = require('snapdragon-node'); - * var node = new Node({type: 'foo'}); - * console.log(utils.isNode(node)); //=> true - * console.log(utils.isNode({})); //=> false - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @returns {Boolean} - * @api public + * Expose `fillRange` + * @type {Function} */ -utils.isNode = function(node) { - return typeOf(node) === 'object' && node.isNode === true; -}; +module.exports = fillRange; -/** - * Emit an empty string for the given `node`. - * - * ```js - * // do nothing for beginning-of-string - * snapdragon.compiler.set('bos', utils.noop); - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @returns {undefined} - * @api public - */ -utils.noop = function(node) { - append(this, '', node); -}; +/***/ }), +/* 420 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Appdend `node.val` to `compiler.output`, exactly as it was created - * by the parser. +"use strict"; +/*! + * is-number * - * ```js - * snapdragon.compiler.set('text', utils.identity); - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @returns {undefined} - * @api public + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. */ -utils.identity = function(node) { - append(this, node.val, node); -}; -/** - * Previously named `.emit`, this method appends the given `val` - * to `compiler.output` for the given node. Useful when you know - * what value should be appended advance, regardless of the actual - * value of `node.val`. - * - * ```js - * snapdragon.compiler - * .set('i', function(node) { - * this.mapVisit(node); - * }) - * .set('i.open', utils.append('')) - * .set('i.close', utils.append('')) - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @returns {Function} Returns a compiler middleware function. - * @api public - */ -utils.append = function(val) { - return function(node) { - append(this, val, node); - }; -}; +var typeOf = __webpack_require__(421); -/** - * Used in compiler middleware, this onverts an AST node into - * an empty `text` node and deletes `node.nodes` if it exists. - * The advantage of this method is that, as opposed to completely - * removing the node, indices will not need to be re-calculated - * in sibling nodes, and nothing is appended to the output. - * - * ```js - * utils.toNoop(node); - * // convert `node.nodes` to the given value instead of deleting it - * utils.toNoop(node, []); - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @param {Array} `nodes` Optionally pass a new `nodes` value, to replace the existing `node.nodes` array. - * @api public - */ +module.exports = function isNumber(num) { + var type = typeOf(num); -utils.toNoop = function(node, nodes) { - if (nodes) { - node.nodes = nodes; - } else { - delete node.nodes; - node.type = 'text'; - node.val = ''; + if (type === 'string') { + if (!num.trim()) return false; + } else if (type !== 'number') { + return false; } -}; - -/** - * Visit `node` with the given `fn`. The built-in `.visit` method in snapdragon - * automatically calls registered compilers, this allows you to pass a visitor - * function. - * - * ```js - * snapdragon.compiler.set('i', function(node) { - * utils.visit(node, function(childNode) { - * // do stuff with "childNode" - * return childNode; - * }); - * }); - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @param {Function} `fn` - * @return {Object} returns the node after recursively visiting all child nodes. - * @api public - */ -utils.visit = function(node, fn) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - assert(isFunction(fn), 'expected a visitor function'); - fn(node); - return node.nodes ? utils.mapVisit(node, fn) : node; + return (num - num + 1) >= 0; }; -/** - * Map [visit](#visit) the given `fn` over `node.nodes`. This is called by - * [visit](#visit), use this method if you do not want `fn` to be called on - * the first node. - * - * ```js - * snapdragon.compiler.set('i', function(node) { - * utils.mapVisit(node, function(childNode) { - * // do stuff with "childNode" - * return childNode; - * }); - * }); - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @param {Object} `options` - * @param {Function} `fn` - * @return {Object} returns the node - * @api public - */ -utils.mapVisit = function(node, fn) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - assert(isArray(node.nodes), 'expected node.nodes to be an array'); - assert(isFunction(fn), 'expected a visitor function'); +/***/ }), +/* 421 */ +/***/ (function(module, exports, __webpack_require__) { - for (var i = 0; i < node.nodes.length; i++) { - utils.visit(node.nodes[i], fn); - } - return node; -}; +var isBuffer = __webpack_require__(396); +var toString = Object.prototype.toString; /** - * Unshift an `*.open` node onto `node.nodes`. - * - * ```js - * var Node = require('snapdragon-node'); - * snapdragon.parser.set('brace', function(node) { - * var match = this.match(/^{/); - * if (match) { - * var parent = new Node({type: 'brace'}); - * utils.addOpen(parent, Node); - * console.log(parent.nodes[0]): - * // { type: 'brace.open', val: '' }; - * - * // push the parent "brace" node onto the stack - * this.push(parent); + * Get the native `typeof` a value. * - * // return the parent node, so it's also added to the AST - * return brace; - * } - * }); - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @param {Function} `Node` (required) Node constructor function from [snapdragon-node][]. - * @param {Function} `filter` Optionaly specify a filter function to exclude the node. - * @return {Object} Returns the created opening node. - * @api public + * @param {*} `val` + * @return {*} Native javascript type */ -utils.addOpen = function(node, Node, val, filter) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - assert(isFunction(Node), 'expected Node to be a constructor function'); - - if (typeof val === 'function') { - filter = val; - val = ''; +module.exports = function kindOf(val) { + // primitivies + if (typeof val === 'undefined') { + return 'undefined'; } - - if (typeof filter === 'function' && !filter(node)) return; - var open = new Node({ type: node.type + '.open', val: val}); - var unshift = node.unshift || node.unshiftNode; - if (typeof unshift === 'function') { - unshift.call(node, open); - } else { - utils.unshiftNode(node, open); + if (val === null) { + return 'null'; + } + if (val === true || val === false || val instanceof Boolean) { + return 'boolean'; + } + if (typeof val === 'string' || val instanceof String) { + return 'string'; + } + if (typeof val === 'number' || val instanceof Number) { + return 'number'; } - return open; -}; - -/** - * Push a `*.close` node onto `node.nodes`. - * - * ```js - * var Node = require('snapdragon-node'); - * snapdragon.parser.set('brace', function(node) { - * var match = this.match(/^}/); - * if (match) { - * var parent = this.parent(); - * if (parent.type !== 'brace') { - * throw new Error('missing opening: ' + '}'); - * } - * - * utils.addClose(parent, Node); - * console.log(parent.nodes[parent.nodes.length - 1]): - * // { type: 'brace.close', val: '' }; - * - * // no need to return a node, since the parent - * // was already added to the AST - * return; - * } - * }); - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @param {Function} `Node` (required) Node constructor function from [snapdragon-node][]. - * @param {Function} `filter` Optionaly specify a filter function to exclude the node. - * @return {Object} Returns the created closing node. - * @api public - */ -utils.addClose = function(node, Node, val, filter) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - assert(isFunction(Node), 'expected Node to be a constructor function'); + // functions + if (typeof val === 'function' || val instanceof Function) { + return 'function'; + } - if (typeof val === 'function') { - filter = val; - val = ''; + // array + if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { + return 'array'; } - if (typeof filter === 'function' && !filter(node)) return; - var close = new Node({ type: node.type + '.close', val: val}); - var push = node.push || node.pushNode; - if (typeof push === 'function') { - push.call(node, close); - } else { - utils.pushNode(node, close); + // check for instances of RegExp and Date before calling `toString` + if (val instanceof RegExp) { + return 'regexp'; + } + if (val instanceof Date) { + return 'date'; } - return close; -}; -/** - * Wraps the given `node` with `*.open` and `*.close` nodes. - * - * @param {Object} `node` Instance of [snapdragon-node][] - * @param {Function} `Node` (required) Node constructor function from [snapdragon-node][]. - * @param {Function} `filter` Optionaly specify a filter function to exclude the node. - * @return {Object} Returns the node - * @api public - */ + // other objects + var type = toString.call(val); -utils.wrapNodes = function(node, Node, filter) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - assert(isFunction(Node), 'expected Node to be a constructor function'); + if (type === '[object RegExp]') { + return 'regexp'; + } + if (type === '[object Date]') { + return 'date'; + } + if (type === '[object Arguments]') { + return 'arguments'; + } + if (type === '[object Error]') { + return 'error'; + } - utils.addOpen(node, Node, filter); - utils.addClose(node, Node, filter); - return node; -}; + // buffer + if (isBuffer(val)) { + return 'buffer'; + } -/** - * Push the given `node` onto `parent.nodes`, and set `parent` as `node.parent. - * - * ```js - * var parent = new Node({type: 'foo'}); - * var node = new Node({type: 'bar'}); - * utils.pushNode(parent, node); - * console.log(parent.nodes[0].type) // 'bar' - * console.log(node.parent.type) // 'foo' - * ``` - * @param {Object} `parent` - * @param {Object} `node` Instance of [snapdragon-node][] - * @return {Object} Returns the child node - * @api public - */ + // es6: Map, WeakMap, Set, WeakSet + if (type === '[object Set]') { + return 'set'; + } + if (type === '[object WeakSet]') { + return 'weakset'; + } + if (type === '[object Map]') { + return 'map'; + } + if (type === '[object WeakMap]') { + return 'weakmap'; + } + if (type === '[object Symbol]') { + return 'symbol'; + } -utils.pushNode = function(parent, node) { - assert(utils.isNode(parent), 'expected parent node to be an instance of Node'); - assert(utils.isNode(node), 'expected node to be an instance of Node'); + // typed arrays + if (type === '[object Int8Array]') { + return 'int8array'; + } + if (type === '[object Uint8Array]') { + return 'uint8array'; + } + if (type === '[object Uint8ClampedArray]') { + return 'uint8clampedarray'; + } + if (type === '[object Int16Array]') { + return 'int16array'; + } + if (type === '[object Uint16Array]') { + return 'uint16array'; + } + if (type === '[object Int32Array]') { + return 'int32array'; + } + if (type === '[object Uint32Array]') { + return 'uint32array'; + } + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; + } - node.define('parent', parent); - parent.nodes = parent.nodes || []; - parent.nodes.push(node); - return node; + // must be a plain object + return 'object'; }; -/** - * Unshift `node` onto `parent.nodes`, and set `parent` as `node.parent. + +/***/ }), +/* 422 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * repeat-string * - * ```js - * var parent = new Node({type: 'foo'}); - * var node = new Node({type: 'bar'}); - * utils.unshiftNode(parent, node); - * console.log(parent.nodes[0].type) // 'bar' - * console.log(node.parent.type) // 'foo' - * ``` - * @param {Object} `parent` - * @param {Object} `node` Instance of [snapdragon-node][] - * @return {undefined} - * @api public + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. */ -utils.unshiftNode = function(parent, node) { - assert(utils.isNode(parent), 'expected parent node to be an instance of Node'); - assert(utils.isNode(node), 'expected node to be an instance of Node'); - node.define('parent', parent); - parent.nodes = parent.nodes || []; - parent.nodes.unshift(node); -}; /** - * Pop the last `node` off of `parent.nodes`. The advantage of - * using this method is that it checks for `node.nodes` and works - * with any version of `snapdragon-node`. - * - * ```js - * var parent = new Node({type: 'foo'}); - * utils.pushNode(parent, new Node({type: 'foo'})); - * utils.pushNode(parent, new Node({type: 'bar'})); - * utils.pushNode(parent, new Node({type: 'baz'})); - * console.log(parent.nodes.length); //=> 3 - * utils.popNode(parent); - * console.log(parent.nodes.length); //=> 2 - * ``` - * @param {Object} `parent` - * @param {Object} `node` Instance of [snapdragon-node][] - * @return {Number|Undefined} Returns the length of `node.nodes` or undefined. - * @api public + * Results cache */ -utils.popNode = function(node) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - if (typeof node.pop === 'function') { - return node.pop(); - } - return node.nodes && node.nodes.pop(); -}; +var res = ''; +var cache; /** - * Shift the first `node` off of `parent.nodes`. The advantage of - * using this method is that it checks for `node.nodes` and works - * with any version of `snapdragon-node`. - * - * ```js - * var parent = new Node({type: 'foo'}); - * utils.pushNode(parent, new Node({type: 'foo'})); - * utils.pushNode(parent, new Node({type: 'bar'})); - * utils.pushNode(parent, new Node({type: 'baz'})); - * console.log(parent.nodes.length); //=> 3 - * utils.shiftNode(parent); - * console.log(parent.nodes.length); //=> 2 - * ``` - * @param {Object} `parent` - * @param {Object} `node` Instance of [snapdragon-node][] - * @return {Number|Undefined} Returns the length of `node.nodes` or undefined. - * @api public + * Expose `repeat` */ -utils.shiftNode = function(node) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - if (typeof node.shift === 'function') { - return node.shift(); - } - return node.nodes && node.nodes.shift(); -}; +module.exports = repeat; /** - * Remove the specified `node` from `parent.nodes`. + * Repeat the given `string` the specified `number` + * of times. + * + * **Example:** * * ```js - * var parent = new Node({type: 'abc'}); - * var foo = new Node({type: 'foo'}); - * utils.pushNode(parent, foo); - * utils.pushNode(parent, new Node({type: 'bar'})); - * utils.pushNode(parent, new Node({type: 'baz'})); - * console.log(parent.nodes.length); //=> 3 - * utils.removeNode(parent, foo); - * console.log(parent.nodes.length); //=> 2 + * var repeat = require('repeat-string'); + * repeat('A', 5); + * //=> AAAAA * ``` - * @param {Object} `parent` - * @param {Object} `node` Instance of [snapdragon-node][] - * @return {Object|undefined} Returns the removed node, if successful, or undefined if it does not exist on `parent.nodes`. + * + * @param {String} `string` The string to repeat + * @param {Number} `number` The number of times to repeat the string + * @return {String} Repeated string * @api public */ -utils.removeNode = function(parent, node) { - assert(utils.isNode(parent), 'expected parent.node to be an instance of Node'); - assert(utils.isNode(node), 'expected node to be an instance of Node'); - - if (!parent.nodes) { - return null; +function repeat(str, num) { + if (typeof str !== 'string') { + throw new TypeError('expected a string'); } - if (typeof parent.remove === 'function') { - return parent.remove(node); + // cover common, quick use cases + if (num === 1) return str; + if (num === 2) return str + str; + + var max = str.length * num; + if (cache !== str || typeof cache === 'undefined') { + cache = str; + res = ''; + } else if (res.length >= max) { + return res.substr(0, max); } - var idx = parent.nodes.indexOf(node); - if (idx !== -1) { - return parent.nodes.splice(idx, 1); + while (max > res.length && num > 1) { + if (num & 1) { + res += str; + } + + num >>= 1; + str += str; } -}; -/** - * Returns true if `node.type` matches the given `type`. Throws a - * `TypeError` if `node` is not an instance of `Node`. + res += str; + res = res.substr(0, max); + return res; +} + + +/***/ }), +/* 423 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * to-regex-range * - * ```js - * var Node = require('snapdragon-node'); - * var node = new Node({type: 'foo'}); - * console.log(utils.isType(node, 'foo')); // false - * console.log(utils.isType(node, 'bar')); // true - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @param {String} `type` - * @return {Boolean} - * @api public + * Copyright (c) 2015, 2017, Jon Schlinkert. + * Released under the MIT License. */ -utils.isType = function(node, type) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - switch (typeOf(type)) { - case 'array': - var types = type.slice(); - for (var i = 0; i < types.length; i++) { - if (utils.isType(node, types[i])) { - return true; - } - } - return false; - case 'string': - return node.type === type; - case 'regexp': - return type.test(node.type); - default: { - throw new TypeError('expected "type" to be an array, string or regexp'); - } + + +var repeat = __webpack_require__(422); +var isNumber = __webpack_require__(420); +var cache = {}; + +function toRegexRange(min, max, options) { + if (isNumber(min) === false) { + throw new RangeError('toRegexRange: first argument is invalid.'); } -}; -/** - * Returns true if the given `node` has the given `type` in `node.nodes`. - * Throws a `TypeError` if `node` is not an instance of `Node`. - * - * ```js - * var Node = require('snapdragon-node'); - * var node = new Node({ - * type: 'foo', - * nodes: [ - * new Node({type: 'bar'}), - * new Node({type: 'baz'}) - * ] - * }); - * console.log(utils.hasType(node, 'xyz')); // false - * console.log(utils.hasType(node, 'baz')); // true - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @param {String} `type` - * @return {Boolean} - * @api public - */ + if (typeof max === 'undefined' || min === max) { + return String(min); + } -utils.hasType = function(node, type) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - if (!Array.isArray(node.nodes)) return false; - for (var i = 0; i < node.nodes.length; i++) { - if (utils.isType(node.nodes[i], type)) { - return true; - } + if (isNumber(max) === false) { + throw new RangeError('toRegexRange: second argument is invalid.'); } - return false; -}; -/** - * Returns the first node from `node.nodes` of the given `type` - * - * ```js - * var node = new Node({ - * type: 'foo', - * nodes: [ - * new Node({type: 'text', val: 'abc'}), - * new Node({type: 'text', val: 'xyz'}) - * ] - * }); - * - * var textNode = utils.firstOfType(node.nodes, 'text'); - * console.log(textNode.val); - * //=> 'abc' - * ``` - * @param {Array} `nodes` - * @param {String} `type` - * @return {Object|undefined} Returns the first matching node or undefined. - * @api public - */ + options = options || {}; + var relax = String(options.relaxZeros); + var shorthand = String(options.shorthand); + var capture = String(options.capture); + var key = min + ':' + max + '=' + relax + shorthand + capture; + if (cache.hasOwnProperty(key)) { + return cache[key].result; + } -utils.firstOfType = function(nodes, type) { - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; - if (utils.isType(node, type)) { - return node; + var a = Math.min(min, max); + var b = Math.max(min, max); + + if (Math.abs(a - b) === 1) { + var result = min + '|' + max; + if (options.capture) { + return '(' + result + ')'; } + return result; } -}; -/** - * Returns the node at the specified index, or the first node of the - * given `type` from `node.nodes`. - * - * ```js - * var node = new Node({ - * type: 'foo', - * nodes: [ - * new Node({type: 'text', val: 'abc'}), - * new Node({type: 'text', val: 'xyz'}) - * ] - * }); - * - * var nodeOne = utils.findNode(node.nodes, 'text'); - * console.log(nodeOne.val); - * //=> 'abc' - * - * var nodeTwo = utils.findNode(node.nodes, 1); - * console.log(nodeTwo.val); - * //=> 'xyz' - * ``` - * - * @param {Array} `nodes` - * @param {String|Number} `type` Node type or index. - * @return {Object} Returns a node or undefined. - * @api public - */ + var isPadded = padding(min) || padding(max); + var positives = []; + var negatives = []; -utils.findNode = function(nodes, type) { - if (!Array.isArray(nodes)) { - return null; + var tok = {min: min, max: max, a: a, b: b}; + if (isPadded) { + tok.isPadded = isPadded; + tok.maxLen = String(tok.max).length; } - if (typeof type === 'number') { - return nodes[type]; + + if (a < 0) { + var newMin = b < 0 ? Math.abs(b) : 1; + var newMax = Math.abs(a); + negatives = splitToPatterns(newMin, newMax, tok, options); + a = tok.a = 0; } - return utils.firstOfType(nodes, type); -}; -/** - * Returns true if the given node is an "*.open" node. - * - * ```js - * var Node = require('snapdragon-node'); - * var brace = new Node({type: 'brace'}); - * var open = new Node({type: 'brace.open'}); - * var close = new Node({type: 'brace.close'}); - * - * console.log(utils.isOpen(brace)); // false - * console.log(utils.isOpen(open)); // true - * console.log(utils.isOpen(close)); // false - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @return {Boolean} - * @api public - */ + if (b >= 0) { + positives = splitToPatterns(a, b, tok, options); + } -utils.isOpen = function(node) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - return node.type.slice(-5) === '.open'; -}; + tok.negatives = negatives; + tok.positives = positives; + tok.result = siftPatterns(negatives, positives, options); + + if (options.capture && (positives.length + negatives.length) > 1) { + tok.result = '(' + tok.result + ')'; + } + + cache[key] = tok; + return tok.result; +} + +function siftPatterns(neg, pos, options) { + var onlyNegative = filterPatterns(neg, pos, '-', false, options) || []; + var onlyPositive = filterPatterns(pos, neg, '', false, options) || []; + var intersected = filterPatterns(neg, pos, '-?', true, options) || []; + var subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join('|'); +} + +function splitToRanges(min, max) { + min = Number(min); + max = Number(max); + + var nines = 1; + var stops = [max]; + var stop = +countNines(min, nines); + + while (min <= stop && stop <= max) { + stops = push(stops, stop); + nines += 1; + stop = +countNines(min, nines); + } + + var zeros = 1; + stop = countZeros(max + 1, zeros) - 1; + + while (min < stop && stop <= max) { + stops = push(stops, stop); + zeros += 1; + stop = countZeros(max + 1, zeros) - 1; + } + + stops.sort(compare); + return stops; +} /** - * Returns true if the given node is a "*.close" node. - * - * ```js - * var Node = require('snapdragon-node'); - * var brace = new Node({type: 'brace'}); - * var open = new Node({type: 'brace.open'}); - * var close = new Node({type: 'brace.close'}); - * - * console.log(utils.isClose(brace)); // false - * console.log(utils.isClose(open)); // false - * console.log(utils.isClose(close)); // true - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @return {Boolean} - * @api public + * Convert a range to a regex pattern + * @param {Number} `start` + * @param {Number} `stop` + * @return {String} */ -utils.isClose = function(node) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - return node.type.slice(-6) === '.close'; -}; +function rangeToPattern(start, stop, options) { + if (start === stop) { + return {pattern: String(start), digits: []}; + } + + var zipped = zip(String(start), String(stop)); + var len = zipped.length, i = -1; + + var pattern = ''; + var digits = 0; + + while (++i < len) { + var numbers = zipped[i]; + var startDigit = numbers[0]; + var stopDigit = numbers[1]; + + if (startDigit === stopDigit) { + pattern += startDigit; + + } else if (startDigit !== '0' || stopDigit !== '9') { + pattern += toCharacterClass(startDigit, stopDigit); + + } else { + digits += 1; + } + } + + if (digits) { + pattern += options.shorthand ? '\\d' : '[0-9]'; + } + + return { pattern: pattern, digits: [digits] }; +} + +function splitToPatterns(min, max, tok, options) { + var ranges = splitToRanges(min, max); + var len = ranges.length; + var idx = -1; + + var tokens = []; + var start = min; + var prev; + + while (++idx < len) { + var range = ranges[idx]; + var obj = rangeToPattern(start, range, options); + var zeros = ''; + + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.digits.length > 1) { + prev.digits.pop(); + } + prev.digits.push(obj.digits[0]); + prev.string = prev.pattern + toQuantifier(prev.digits); + start = range + 1; + continue; + } + + if (tok.isPadded) { + zeros = padZeros(range, tok); + } + + obj.string = zeros + obj.pattern + toQuantifier(obj.digits); + tokens.push(obj); + start = range + 1; + prev = obj; + } + + return tokens; +} + +function filterPatterns(arr, comparison, prefix, intersection, options) { + var res = []; + + for (var i = 0; i < arr.length; i++) { + var tok = arr[i]; + var ele = tok.string; + + if (options.relaxZeros !== false) { + if (prefix === '-' && ele.charAt(0) === '0') { + if (ele.charAt(1) === '{') { + ele = '0*' + ele.replace(/^0\{\d+\}/, ''); + } else { + ele = '0*' + ele.slice(1); + } + } + } + + if (!intersection && !contains(comparison, 'string', ele)) { + res.push(prefix + ele); + } + + if (intersection && contains(comparison, 'string', ele)) { + res.push(prefix + ele); + } + } + return res; +} /** - * Returns true if `node.nodes` **has** an `.open` node - * - * ```js - * var Node = require('snapdragon-node'); - * var brace = new Node({ - * type: 'brace', - * nodes: [] - * }); - * - * var open = new Node({type: 'brace.open'}); - * console.log(utils.hasOpen(brace)); // false - * - * brace.pushNode(open); - * console.log(utils.hasOpen(brace)); // true - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @return {Boolean} - * @api public + * Zip strings (`for in` can be used on string characters) */ -utils.hasOpen = function(node) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - var first = node.first || node.nodes ? node.nodes[0] : null; - if (utils.isNode(first)) { - return first.type === node.type + '.open'; +function zip(a, b) { + var arr = []; + for (var ch in a) arr.push([a[ch], b[ch]]); + return arr; +} + +function compare(a, b) { + return a > b ? 1 : b > a ? -1 : 0; +} + +function push(arr, ele) { + if (arr.indexOf(ele) === -1) arr.push(ele); + return arr; +} + +function contains(arr, key, val) { + for (var i = 0; i < arr.length; i++) { + if (arr[i][key] === val) { + return true; + } } return false; -}; +} -/** - * Returns true if `node.nodes` **has** a `.close` node - * - * ```js - * var Node = require('snapdragon-node'); - * var brace = new Node({ - * type: 'brace', - * nodes: [] - * }); - * - * var close = new Node({type: 'brace.close'}); - * console.log(utils.hasClose(brace)); // false - * - * brace.pushNode(close); - * console.log(utils.hasClose(brace)); // true - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @return {Boolean} - * @api public - */ +function countNines(min, len) { + return String(min).slice(0, -len) + repeat('9', len); +} -utils.hasClose = function(node) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - var last = node.last || node.nodes ? node.nodes[node.nodes.length - 1] : null; - if (utils.isNode(last)) { - return last.type === node.type + '.close'; +function countZeros(integer, zeros) { + return integer - (integer % Math.pow(10, zeros)); +} + +function toQuantifier(digits) { + var start = digits[0]; + var stop = digits[1] ? (',' + digits[1]) : ''; + if (!stop && (!start || start === 1)) { + return ''; } - return false; -}; + return '{' + start + stop + '}'; +} + +function toCharacterClass(a, b) { + return '[' + a + ((b - a === 1) ? '' : '-') + b + ']'; +} + +function padding(str) { + return /^-?(0+)\d/.exec(str); +} + +function padZeros(val, tok) { + if (tok.isPadded) { + var diff = Math.abs(tok.maxLen - String(val).length); + switch (diff) { + case 0: + return ''; + case 1: + return '0'; + default: { + return '0{' + diff + '}'; + } + } + } + return val; +} /** - * Returns true if `node.nodes` has both `.open` and `.close` nodes - * - * ```js - * var Node = require('snapdragon-node'); - * var brace = new Node({ - * type: 'brace', - * nodes: [] - * }); - * - * var open = new Node({type: 'brace.open'}); - * var close = new Node({type: 'brace.close'}); - * console.log(utils.hasOpen(brace)); // false - * console.log(utils.hasClose(brace)); // false - * - * brace.pushNode(open); - * brace.pushNode(close); - * console.log(utils.hasOpen(brace)); // true - * console.log(utils.hasClose(brace)); // true - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @return {Boolean} - * @api public + * Expose `toRegexRange` */ -utils.hasOpenAndClose = function(node) { - return utils.hasOpen(node) && utils.hasClose(node); -}; +module.exports = toRegexRange; -/** - * Push the given `node` onto the `state.inside` array for the - * given type. This array is used as a specialized "stack" for - * only the given `node.type`. + +/***/ }), +/* 424 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * repeat-element * - * ```js - * var state = { inside: {}}; - * var node = new Node({type: 'brace'}); - * utils.addType(state, node); - * console.log(state.inside); - * //=> { brace: [{type: 'brace'}] } - * ``` - * @param {Object} `state` The `compiler.state` object or custom state object. - * @param {Object} `node` Instance of [snapdragon-node][] - * @return {Array} Returns the `state.inside` stack for the given type. - * @api public + * Copyright (c) 2015 Jon Schlinkert. + * Licensed under the MIT license. */ -utils.addType = function(state, node) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - assert(isObject(state), 'expected state to be an object'); - var type = node.parent - ? node.parent.type - : node.type.replace(/\.open$/, ''); - if (!state.hasOwnProperty('inside')) { - state.inside = {}; - } - if (!state.inside.hasOwnProperty(type)) { - state.inside[type] = []; +module.exports = function repeat(ele, num) { + var arr = new Array(num); + + for (var i = 0; i < num; i++) { + arr[i] = ele; } - var arr = state.inside[type]; - arr.push(node); return arr; }; -/** - * Remove the given `node` from the `state.inside` array for the - * given type. This array is used as a specialized "stack" for - * only the given `node.type`. - * - * ```js - * var state = { inside: {}}; - * var node = new Node({type: 'brace'}); - * utils.addType(state, node); - * console.log(state.inside); - * //=> { brace: [{type: 'brace'}] } - * utils.removeType(state, node); - * //=> { brace: [] } - * ``` - * @param {Object} `state` The `compiler.state` object or custom state object. - * @param {Object} `node` Instance of [snapdragon-node][] - * @return {Array} Returns the `state.inside` stack for the given type. - * @api public - */ -utils.removeType = function(state, node) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - assert(isObject(state), 'expected state to be an object'); +/***/ }), +/* 425 */ +/***/ (function(module, exports, __webpack_require__) { - var type = node.parent - ? node.parent.type - : node.type.replace(/\.close$/, ''); +"use strict"; - if (state.inside.hasOwnProperty(type)) { - return state.inside[type].pop(); - } -}; + +var Node = __webpack_require__(426); +var utils = __webpack_require__(411); /** - * Returns true if `node.val` is an empty string, or `node.nodes` does - * not contain any non-empty text nodes. - * - * ```js - * var node = new Node({type: 'text'}); - * utils.isEmpty(node); //=> true - * node.val = 'foo'; - * utils.isEmpty(node); //=> false - * ``` - * @param {Object} `node` Instance of [snapdragon-node][] - * @param {Function} `fn` - * @return {Boolean} - * @api public + * Braces parsers */ -utils.isEmpty = function(node, fn) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); +module.exports = function(braces, options) { + braces.parser + .set('bos', function() { + if (!this.parsed) { + this.ast = this.nodes[0] = new Node(this.ast); + } + }) - if (!Array.isArray(node.nodes)) { - if (node.type !== 'text') { - return true; - } - if (typeof fn === 'function') { - return fn(node, node.parent); - } - return !utils.trim(node.val); - } + /** + * Character parsers + */ - for (var i = 0; i < node.nodes.length; i++) { - var child = node.nodes[i]; - if (utils.isOpen(child) || utils.isClose(child)) { - continue; - } - if (!utils.isEmpty(child, fn)) { - return false; - } - } + .set('escape', function() { + var pos = this.position(); + var m = this.match(/^(?:\\(.)|\$\{)/); + if (!m) return; - return true; -}; + var prev = this.prev(); + var last = utils.last(prev.nodes); -/** - * Returns true if the `state.inside` stack for the given type exists - * and has one or more nodes on it. - * - * ```js - * var state = { inside: {}}; - * var node = new Node({type: 'brace'}); - * console.log(utils.isInsideType(state, 'brace')); //=> false - * utils.addType(state, node); - * console.log(utils.isInsideType(state, 'brace')); //=> true - * utils.removeType(state, node); - * console.log(utils.isInsideType(state, 'brace')); //=> false - * ``` - * @param {Object} `state` - * @param {String} `type` - * @return {Boolean} - * @api public - */ + var node = pos(new Node({ + type: 'text', + multiplier: 1, + val: m[0] + })); -utils.isInsideType = function(state, type) { - assert(isObject(state), 'expected state to be an object'); - assert(isString(type), 'expected type to be a string'); + if (node.val === '\\\\') { + return node; + } - if (!state.hasOwnProperty('inside')) { - return false; - } + if (node.val === '${') { + var str = this.input; + var idx = -1; + var ch; - if (!state.inside.hasOwnProperty(type)) { - return false; - } + while ((ch = str[++idx])) { + this.consume(1); + node.val += ch; + if (ch === '\\') { + node.val += str[++idx]; + continue; + } + if (ch === '}') { + break; + } + } + } - return state.inside[type].length > 0; -}; + if (this.options.unescape !== false) { + node.val = node.val.replace(/\\([{}])/g, '$1'); + } -/** - * Returns true if `node` is either a child or grand-child of the given `type`, - * or `state.inside[type]` is a non-empty array. - * - * ```js - * var state = { inside: {}}; - * var node = new Node({type: 'brace'}); - * var open = new Node({type: 'brace.open'}); - * console.log(utils.isInside(state, open, 'brace')); //=> false - * utils.pushNode(node, open); - * console.log(utils.isInside(state, open, 'brace')); //=> true - * ``` - * @param {Object} `state` Either the `compiler.state` object, if it exists, or a user-supplied state object. - * @param {Object} `node` Instance of [snapdragon-node][] - * @param {String} `type` The `node.type` to check for. - * @return {Boolean} - * @api public - */ + if (last.val === '"' && this.input.charAt(0) === '"') { + last.val = node.val; + this.consume(1); + return; + } + + return concatNodes.call(this, pos, node, prev, options); + }) + + /** + * Brackets: "[...]" (basic, this is overridden by + * other parsers in more advanced implementations) + */ + + .set('bracket', function() { + var isInside = this.isInside('brace'); + var pos = this.position(); + var m = this.match(/^(?:\[([!^]?)([^\]]{2,}|\]\-)(\]|[^*+?]+)|\[)/); + if (!m) return; + + var prev = this.prev(); + var val = m[0]; + var negated = m[1] ? '^' : ''; + var inner = m[2] || ''; + var close = m[3] || ''; + + if (isInside && prev.type === 'brace') { + prev.text = prev.text || ''; + prev.text += val; + } + + var esc = this.input.slice(0, 2); + if (inner === '' && esc === '\\]') { + inner += esc; + this.consume(2); + + var str = this.input; + var idx = -1; + var ch; + + while ((ch = str[++idx])) { + this.consume(1); + if (ch === ']') { + close = ch; + break; + } + inner += ch; + } + } + + return pos(new Node({ + type: 'bracket', + val: val, + escaped: close !== ']', + negated: negated, + inner: inner, + close: close + })); + }) + + /** + * Empty braces (we capture these early to + * speed up processing in the compiler) + */ + + .set('multiplier', function() { + var isInside = this.isInside('brace'); + var pos = this.position(); + var m = this.match(/^\{(,+(?:(\{,+\})*),*|,*(?:(\{,+\})*),+)\}/); + if (!m) return; + + this.multiplier = true; + var prev = this.prev(); + var val = m[0]; + + if (isInside && prev.type === 'brace') { + prev.text = prev.text || ''; + prev.text += val; + } + + var node = pos(new Node({ + type: 'text', + multiplier: 1, + match: m, + val: val + })); + + return concatNodes.call(this, pos, node, prev, options); + }) + + /** + * Open + */ + + .set('brace.open', function() { + var pos = this.position(); + var m = this.match(/^\{(?!(?:[^\\}]?|,+)\})/); + if (!m) return; + + var prev = this.prev(); + var last = utils.last(prev.nodes); + + // if the last parsed character was an extglob character + // we need to _not optimize_ the brace pattern because + // it might be mistaken for an extglob by a downstream parser + if (last && last.val && isExtglobChar(last.val.slice(-1))) { + last.optimize = false; + } + + var open = pos(new Node({ + type: 'brace.open', + val: m[0] + })); + + var node = pos(new Node({ + type: 'brace', + nodes: [] + })); + + node.push(open); + prev.push(node); + this.push('brace', node); + }) + + /** + * Close + */ + + .set('brace.close', function() { + var pos = this.position(); + var m = this.match(/^\}/); + if (!m || !m[0]) return; + + var brace = this.pop('brace'); + var node = pos(new Node({ + type: 'brace.close', + val: m[0] + })); + + if (!this.isType(brace, 'brace')) { + if (this.options.strict) { + throw new Error('missing opening "{"'); + } + node.type = 'text'; + node.multiplier = 0; + node.escaped = true; + return node; + } + + var prev = this.prev(); + var last = utils.last(prev.nodes); + if (last.text) { + var lastNode = utils.last(last.nodes); + if (lastNode.val === ')' && /[!@*?+]\(/.test(last.text)) { + var open = last.nodes[0]; + var text = last.nodes[1]; + if (open.type === 'brace.open' && text && text.type === 'text') { + text.optimize = false; + } + } + } + + if (brace.nodes.length > 2) { + var first = brace.nodes[1]; + if (first.type === 'text' && first.val === ',') { + brace.nodes.splice(1, 1); + brace.nodes.push(first); + } + } -utils.isInside = function(state, node, type) { - assert(utils.isNode(node), 'expected node to be an instance of Node'); - assert(isObject(state), 'expected state to be an object'); + brace.push(node); + }) - if (Array.isArray(type)) { - for (var i = 0; i < type.length; i++) { - if (utils.isInside(state, node, type[i])) { - return true; - } - } - return false; - } + /** + * Capture boundary characters + */ - var parent = node.parent; - if (typeof type === 'string') { - return (parent && parent.type === type) || utils.isInsideType(state, type); - } + .set('boundary', function() { + var pos = this.position(); + var m = this.match(/^[$^](?!\{)/); + if (!m) return; + return pos(new Node({ + type: 'text', + val: m[0] + })); + }) - if (typeOf(type) === 'regexp') { - if (parent && parent.type && type.test(parent.type)) { - return true; - } + /** + * One or zero, non-comma characters wrapped in braces + */ - var keys = Object.keys(state.inside); - var len = keys.length; - var idx = -1; - while (++idx < len) { - var key = keys[idx]; - var val = state.inside[key]; + .set('nobrace', function() { + var isInside = this.isInside('brace'); + var pos = this.position(); + var m = this.match(/^\{[^,]?\}/); + if (!m) return; - if (Array.isArray(val) && val.length !== 0 && type.test(key)) { - return true; - } - } - } - return false; -}; + var prev = this.prev(); + var val = m[0]; -/** - * Get the last `n` element from the given `array`. Used for getting - * a node from `node.nodes.` - * - * @param {Array} `array` - * @param {Number} `n` - * @return {undefined} - * @api public - */ + if (isInside && prev.type === 'brace') { + prev.text = prev.text || ''; + prev.text += val; + } -utils.last = function(arr, n) { - return arr[arr.length - (n || 1)]; -}; + return pos(new Node({ + type: 'text', + multiplier: 0, + val: val + })); + }) -/** - * Cast the given `val` to an array. - * - * ```js - * console.log(utils.arrayify('')); - * //=> [] - * console.log(utils.arrayify('foo')); - * //=> ['foo'] - * console.log(utils.arrayify(['foo'])); - * //=> ['foo'] - * ``` - * @param {any} `val` - * @return {Array} - * @api public - */ + /** + * Text + */ -utils.arrayify = function(val) { - if (typeof val === 'string' && val !== '') { - return [val]; - } - if (!Array.isArray(val)) { - return []; - } - return val; -}; + .set('text', function() { + var isInside = this.isInside('brace'); + var pos = this.position(); + var m = this.match(/^((?!\\)[^${}\[\]])+/); + if (!m) return; -/** - * Convert the given `val` to a string by joining with `,`. Useful - * for creating a cheerio/CSS/DOM-style selector from a list of strings. - * - * @param {any} `val` - * @return {Array} - * @api public - */ + var prev = this.prev(); + var val = m[0]; -utils.stringify = function(val) { - return utils.arrayify(val).join(','); -}; + if (isInside && prev.type === 'brace') { + prev.text = prev.text || ''; + prev.text += val; + } -/** - * Ensure that the given value is a string and call `.trim()` on it, - * or return an empty string. - * - * @param {String} `str` - * @return {String} - * @api public - */ + var node = pos(new Node({ + type: 'text', + multiplier: 1, + val: val + })); -utils.trim = function(str) { - return typeof str === 'string' ? str.trim() : ''; + return concatNodes.call(this, pos, node, prev, options); + }); }; /** - * Return true if val is an object + * Returns true if the character is an extglob character. */ -function isObject(val) { - return typeOf(val) === 'object'; +function isExtglobChar(ch) { + return ch === '!' || ch === '@' || ch === '*' || ch === '?' || ch === '+'; } /** - * Return true if val is a string + * Combine text nodes, and calculate empty sets (`{,,}`) + * @param {Function} `pos` Function to calculate node position + * @param {Object} `node` AST node + * @return {Object} */ -function isString(val) { - return typeof val === 'string'; -} - -/** - * Return true if val is a function - */ +function concatNodes(pos, node, parent, options) { + node.orig = node.val; + var prev = this.prev(); + var last = utils.last(prev.nodes); + var isEscaped = false; -function isFunction(val) { - return typeof val === 'function'; -} + if (node.val.length > 1) { + var a = node.val.charAt(0); + var b = node.val.slice(-1); -/** - * Return true if val is an array - */ + isEscaped = (a === '"' && b === '"') + || (a === "'" && b === "'") + || (a === '`' && b === '`'); + } -function isArray(val) { - return Array.isArray(val); -} + if (isEscaped && options.unescape !== false) { + node.val = node.val.slice(1, node.val.length - 1); + node.escaped = true; + } -/** - * Shim to ensure the `.append` methods work with any version of snapdragon - */ + if (node.match) { + var match = node.match[1]; + if (!match || match.indexOf('}') === -1) { + match = node.match[0]; + } -function append(compiler, val, node) { - if (typeof compiler.append !== 'function') { - return compiler.emit(val, node); + // replace each set with a single "," + var val = match.replace(/\{/g, ',').replace(/\}/g, ''); + node.multiplier *= val.length; + node.val = ''; } - return compiler.append(val, node); -} -/** - * Simplified assertion. Throws an error is `val` is falsey. - */ + var simpleText = last.type === 'text' + && last.multiplier === 1 + && node.multiplier === 1 + && node.val; -function assert(val, message) { - if (!val) throw new Error(message); + if (simpleText) { + last.val += node.val; + return; + } + + prev.push(node); } /***/ }), -/* 329 */ +/* 426 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Snapdragon = __webpack_require__(66); -var compilers = __webpack_require__(135); -var parsers = __webpack_require__(138); -var utils = __webpack_require__(75); - -/** - * Customize Snapdragon parser and renderer - */ - -function Braces(options) { - this.options = utils.extend({}, options); -} +var isObject = __webpack_require__(416); +var define = __webpack_require__(403); +var utils = __webpack_require__(427); +var ownNames; /** - * Initialize braces + * Create a new AST `Node` with the given `val` and `type`. + * + * ```js + * var node = new Node('*', 'Star'); + * var node = new Node({type: 'star', val: '*'}); + * ``` + * @name Node + * @param {String|Object} `val` Pass a matched substring, or an object to merge onto the node. + * @param {String} `type` The node type to use when `val` is a string. + * @return {Object} node instance + * @api public */ -Braces.prototype.init = function(options) { - var opts = utils.createOptions({}, this.options, options); - this.snapdragon = this.options.snapdragon || new Snapdragon(opts); - this.compiler = this.snapdragon.compiler; - this.parser = this.snapdragon.parser; - - compilers(this.snapdragon, opts); - parsers(this.snapdragon, opts); - - /** - * Call Snapdragon `.parse` method. When AST is returned, we check to - * see if any unclosed braces are left on the stack and, if so, we iterate - * over the stack and correct the AST so that compilers are called in the correct - * order and unbalance braces are properly escaped. - */ - - utils.define(this.snapdragon, 'parse', function(pattern, options) { - var parsed = Snapdragon.prototype.parse.apply(this, arguments); - this.parser.ast.input = pattern; +function Node(val, type, parent) { + if (typeof type !== 'string') { + parent = type; + type = null; + } - var stack = this.parser.stack; - while (stack.length) { - addParent({type: 'brace.close', val: ''}, stack.pop()); - } + define(this, 'parent', parent); + define(this, 'isNode', true); + define(this, 'expect', null); - function addParent(node, parent) { - utils.define(node, 'parent', parent); - parent.nodes.push(node); + if (typeof type !== 'string' && isObject(val)) { + lazyKeys(); + var keys = Object.keys(val); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (ownNames.indexOf(key) === -1) { + this[key] = val[key]; + } } - - // add non-enumerable parser reference - utils.define(parsed, 'parser', this.parser); - return parsed; - }); -}; - -/** - * Lazily initialize braces - */ - -Braces.prototype.lazyInit = function(options) { - if (!this.isInitialized) { - this.isInitialized = true; - this.init(options); + } else { + this.type = type; + this.val = val; } -}; - -/** - * Decorate `.parse` method - */ - -Braces.prototype.parse = function(ast, options) { - if (utils.isObject(ast) && ast.nodes) return ast; - this.lazyInit(options); - return this.snapdragon.parse(ast, options); -}; +} /** - * Decorate `.compile` method + * Returns true if the given value is a node. + * + * ```js + * var Node = require('snapdragon-node'); + * var node = new Node({type: 'foo'}); + * console.log(Node.isNode(node)); //=> true + * console.log(Node.isNode({})); //=> false + * ``` + * @param {Object} `node` + * @returns {Boolean} + * @api public */ -Braces.prototype.compile = function(ast, options) { - if (typeof ast === 'string') { - ast = this.parse(ast, options); - } else { - this.lazyInit(options); - } - var res = this.snapdragon.compile(ast, options); - return res; +Node.isNode = function(node) { + return utils.isNode(node); }; /** - * Expand + * Define a non-enumberable property on the node instance. + * Useful for adding properties that shouldn't be extended + * or visible during debugging. + * + * ```js + * var node = new Node(); + * node.define('foo', 'something non-enumerable'); + * ``` + * @param {String} `name` + * @param {any} `val` + * @return {Object} returns the node instance + * @api public */ -Braces.prototype.expand = function(pattern) { - var ast = this.parse(pattern, {expand: true}); - return this.compile(ast, {expand: true}); +Node.prototype.define = function(name, val) { + define(this, name, val); + return this; }; /** - * Optimize + * Returns true if `node.val` is an empty string, or `node.nodes` does + * not contain any non-empty text nodes. + * + * ```js + * var node = new Node({type: 'text'}); + * node.isEmpty(); //=> true + * node.val = 'foo'; + * node.isEmpty(); //=> false + * ``` + * @param {Function} `fn` (optional) Filter function that is called on `node` and/or child nodes. `isEmpty` will return false immediately when the filter function returns false on any nodes. + * @return {Boolean} + * @api public */ -Braces.prototype.optimize = function(pattern) { - var ast = this.parse(pattern, {optimize: true}); - return this.compile(ast, {optimize: true}); +Node.prototype.isEmpty = function(fn) { + return utils.isEmpty(this, fn); }; /** - * Expose `Braces` + * Given node `foo` and node `bar`, push node `bar` onto `foo.nodes`, and + * set `foo` as `bar.parent`. + * + * ```js + * var foo = new Node({type: 'foo'}); + * var bar = new Node({type: 'bar'}); + * foo.push(bar); + * ``` + * @param {Object} `node` + * @return {Number} Returns the length of `node.nodes` + * @api public */ -module.exports = Braces; - - -/***/ }), -/* 330 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - +Node.prototype.push = function(node) { + assert(Node.isNode(node), 'expected node to be an instance of Node'); + define(node, 'parent', this); -var util = __webpack_require__(14); -var define = __webpack_require__(44); -var CacheBase = __webpack_require__(331); -var Emitter = __webpack_require__(139); -var isObject = __webpack_require__(30); -var merge = __webpack_require__(345); -var pascal = __webpack_require__(348); -var cu = __webpack_require__(349); + this.nodes = this.nodes || []; + return this.nodes.push(node); +}; /** - * Optionally define a custom `cache` namespace to use. + * Given node `foo` and node `bar`, unshift node `bar` onto `foo.nodes`, and + * set `foo` as `bar.parent`. + * + * ```js + * var foo = new Node({type: 'foo'}); + * var bar = new Node({type: 'bar'}); + * foo.unshift(bar); + * ``` + * @param {Object} `node` + * @return {Number} Returns the length of `node.nodes` + * @api public */ -function namespace(name) { - var Cache = name ? CacheBase.namespace(name) : CacheBase; - var fns = []; - - /** - * Create an instance of `Base` with the given `config` and `options`. - * - * ```js - * // initialize with `config` and `options` - * var app = new Base({isApp: true}, {abc: true}); - * app.set('foo', 'bar'); - * - * // values defined with the given `config` object will be on the root of the instance - * console.log(app.baz); //=> undefined - * console.log(app.foo); //=> 'bar' - * // or use `.get` - * console.log(app.get('isApp')); //=> true - * console.log(app.get('foo')); //=> 'bar' - * - * // values defined with the given `options` object will be on `app.options - * console.log(app.options.abc); //=> true - * ``` - * - * @param {Object} `config` If supplied, this object is passed to [cache-base][] to merge onto the the instance upon instantiation. - * @param {Object} `options` If supplied, this object is used to initialize the `base.options` object. - * @api public - */ - - function Base(config, options) { - if (!(this instanceof Base)) { - return new Base(config, options); - } - Cache.call(this, config); - this.is('base'); - this.initBase(config, options); - } - - /** - * Inherit cache-base - */ - - util.inherits(Base, Cache); - - /** - * Add static emitter methods - */ - - Emitter(Base); - - /** - * Initialize `Base` defaults with the given `config` object - */ - - Base.prototype.initBase = function(config, options) { - this.options = merge({}, this.options, options); - this.cache = this.cache || {}; - this.define('registered', {}); - if (name) this[name] = {}; - - // make `app._callbacks` non-enumerable - this.define('_callbacks', this._callbacks); - if (isObject(config)) { - this.visit('set', config); - } - Base.run(this, 'use', fns); - }; - - /** - * Set the given `name` on `app._name` and `app.is*` properties. Used for doing - * lookups in plugins. - * - * ```js - * app.is('foo'); - * console.log(app._name); - * //=> 'foo' - * console.log(app.isFoo); - * //=> true - * app.is('bar'); - * console.log(app.isFoo); - * //=> true - * console.log(app.isBar); - * //=> true - * console.log(app._name); - * //=> 'bar' - * ``` - * @name .is - * @param {String} `name` - * @return {Boolean} - * @api public - */ - - Base.prototype.is = function(name) { - if (typeof name !== 'string') { - throw new TypeError('expected name to be a string'); - } - this.define('is' + pascal(name), true); - this.define('_name', name); - this.define('_appname', name); - return this; - }; +Node.prototype.unshift = function(node) { + assert(Node.isNode(node), 'expected node to be an instance of Node'); + define(node, 'parent', this); - /** - * Returns true if a plugin has already been registered on an instance. - * - * Plugin implementors are encouraged to use this first thing in a plugin - * to prevent the plugin from being called more than once on the same - * instance. - * - * ```js - * var base = new Base(); - * base.use(function(app) { - * if (app.isRegistered('myPlugin')) return; - * // do stuff to `app` - * }); - * - * // to also record the plugin as being registered - * base.use(function(app) { - * if (app.isRegistered('myPlugin', true)) return; - * // do stuff to `app` - * }); - * ``` - * @name .isRegistered - * @emits `plugin` Emits the name of the plugin being registered. Useful for unit tests, to ensure plugins are only registered once. - * @param {String} `name` The plugin name. - * @param {Boolean} `register` If the plugin if not already registered, to record it as being registered pass `true` as the second argument. - * @return {Boolean} Returns true if a plugin is already registered. - * @api public - */ + this.nodes = this.nodes || []; + return this.nodes.unshift(node); +}; - Base.prototype.isRegistered = function(name, register) { - if (this.registered.hasOwnProperty(name)) { - return true; - } - if (register !== false) { - this.registered[name] = true; - this.emit('plugin', name); - } - return false; - }; +/** + * Pop a node from `node.nodes`. + * + * ```js + * var node = new Node({type: 'foo'}); + * node.push(new Node({type: 'a'})); + * node.push(new Node({type: 'b'})); + * node.push(new Node({type: 'c'})); + * node.push(new Node({type: 'd'})); + * console.log(node.nodes.length); + * //=> 4 + * node.pop(); + * console.log(node.nodes.length); + * //=> 3 + * ``` + * @return {Number} Returns the popped `node` + * @api public + */ - /** - * Define a plugin function to be called immediately upon init. Plugins are chainable - * and expose the following arguments to the plugin function: - * - * - `app`: the current instance of `Base` - * - `base`: the [first ancestor instance](#base) of `Base` - * - * ```js - * var app = new Base() - * .use(foo) - * .use(bar) - * .use(baz) - * ``` - * @name .use - * @param {Function} `fn` plugin function to call - * @return {Object} Returns the item instance for chaining. - * @api public - */ +Node.prototype.pop = function() { + return this.nodes && this.nodes.pop(); +}; - Base.prototype.use = function(fn) { - fn.call(this, this); - return this; - }; +/** + * Shift a node from `node.nodes`. + * + * ```js + * var node = new Node({type: 'foo'}); + * node.push(new Node({type: 'a'})); + * node.push(new Node({type: 'b'})); + * node.push(new Node({type: 'c'})); + * node.push(new Node({type: 'd'})); + * console.log(node.nodes.length); + * //=> 4 + * node.shift(); + * console.log(node.nodes.length); + * //=> 3 + * ``` + * @return {Object} Returns the shifted `node` + * @api public + */ - /** - * The `.define` method is used for adding non-enumerable property on the instance. - * Dot-notation is **not supported** with `define`. - * - * ```js - * // arbitrary `render` function using lodash `template` - * app.define('render', function(str, locals) { - * return _.template(str)(locals); - * }); - * ``` - * @name .define - * @param {String} `key` The name of the property to define. - * @param {any} `value` - * @return {Object} Returns the instance for chaining. - * @api public - */ +Node.prototype.shift = function() { + return this.nodes && this.nodes.shift(); +}; - Base.prototype.define = function(key, val) { - if (isObject(key)) { - return this.visit('define', key); - } - define(this, key, val); - return this; - }; +/** + * Remove `node` from `node.nodes`. + * + * ```js + * node.remove(childNode); + * ``` + * @param {Object} `node` + * @return {Object} Returns the removed node. + * @api public + */ - /** - * Mix property `key` onto the Base prototype. If base is inherited using - * `Base.extend` this method will be overridden by a new `mixin` method that will - * only add properties to the prototype of the inheriting application. - * - * ```js - * app.mixin('foo', function() { - * // do stuff - * }); - * ``` - * @name .mixin - * @param {String} `key` - * @param {Object|Array} `val` - * @return {Object} Returns the `base` instance for chaining. - * @api public - */ +Node.prototype.remove = function(node) { + assert(Node.isNode(node), 'expected node to be an instance of Node'); + this.nodes = this.nodes || []; + var idx = node.index; + if (idx !== -1) { + node.index = -1; + return this.nodes.splice(idx, 1); + } + return null; +}; - Base.prototype.mixin = function(key, val) { - Base.prototype[key] = val; - return this; - }; +/** + * Get the first child node from `node.nodes` that matches the given `type`. + * If `type` is a number, the child node at that index is returned. + * + * ```js + * var child = node.find(1); //<= index of the node to get + * var child = node.find('foo'); //<= node.type of a child node + * var child = node.find(/^(foo|bar)$/); //<= regex to match node.type + * var child = node.find(['foo', 'bar']); //<= array of node.type(s) + * ``` + * @param {String} `type` + * @return {Object} Returns a child node or undefined. + * @api public + */ - /** - * Non-enumberable mixin array, used by the static [Base.mixin]() method. - */ +Node.prototype.find = function(type) { + return utils.findNode(this.nodes, type); +}; - Base.prototype.mixins = Base.prototype.mixins || []; +/** + * Return true if the node is the given `type`. + * + * ```js + * var node = new Node({type: 'bar'}); + * cosole.log(node.isType('foo')); // false + * cosole.log(node.isType(/^(foo|bar)$/)); // true + * cosole.log(node.isType(['foo', 'bar'])); // true + * ``` + * @param {String} `type` + * @return {Boolean} + * @api public + */ - /** - * Getter/setter used when creating nested instances of `Base`, for storing a reference - * to the first ancestor instance. This works by setting an instance of `Base` on the `parent` - * property of a "child" instance. The `base` property defaults to the current instance if - * no `parent` property is defined. - * - * ```js - * // create an instance of `Base`, this is our first ("base") instance - * var first = new Base(); - * first.foo = 'bar'; // arbitrary property, to make it easier to see what's happening later - * - * // create another instance - * var second = new Base(); - * // create a reference to the first instance (`first`) - * second.parent = first; - * - * // create another instance - * var third = new Base(); - * // create a reference to the previous instance (`second`) - * // repeat this pattern every time a "child" instance is created - * third.parent = second; - * - * // we can always access the first instance using the `base` property - * console.log(first.base.foo); - * //=> 'bar' - * console.log(second.base.foo); - * //=> 'bar' - * console.log(third.base.foo); - * //=> 'bar' - * // and now you know how to get to third base ;) - * ``` - * @name .base - * @api public - */ +Node.prototype.isType = function(type) { + return utils.isType(this, type); +}; - Object.defineProperty(Base.prototype, 'base', { - configurable: true, - get: function() { - return this.parent ? this.parent.base : this; - } - }); +/** + * Return true if the `node.nodes` has the given `type`. + * + * ```js + * var foo = new Node({type: 'foo'}); + * var bar = new Node({type: 'bar'}); + * foo.push(bar); + * + * cosole.log(foo.hasType('qux')); // false + * cosole.log(foo.hasType(/^(qux|bar)$/)); // true + * cosole.log(foo.hasType(['qux', 'bar'])); // true + * ``` + * @param {String} `type` + * @return {Boolean} + * @api public + */ - /** - * Static method for adding global plugin functions that will - * be added to an instance when created. - * - * ```js - * Base.use(function(app) { - * app.foo = 'bar'; - * }); - * var app = new Base(); - * console.log(app.foo); - * //=> 'bar' - * ``` - * @name #use - * @param {Function} `fn` Plugin function to use on each instance. - * @return {Object} Returns the `Base` constructor for chaining - * @api public - */ +Node.prototype.hasType = function(type) { + return utils.hasType(this, type); +}; - define(Base, 'use', function(fn) { - fns.push(fn); - return Base; - }); +/** + * Get the siblings array, or `null` if it doesn't exist. + * + * ```js + * var foo = new Node({type: 'foo'}); + * var bar = new Node({type: 'bar'}); + * var baz = new Node({type: 'baz'}); + * foo.push(bar); + * foo.push(baz); + * + * console.log(bar.siblings.length) // 2 + * console.log(baz.siblings.length) // 2 + * ``` + * @return {Array} + * @api public + */ - /** - * Run an array of functions by passing each function - * to a method on the given object specified by the given property. - * - * @param {Object} `obj` Object containing method to use. - * @param {String} `prop` Name of the method on the object to use. - * @param {Array} `arr` Array of functions to pass to the method. - */ +Object.defineProperty(Node.prototype, 'siblings', { + set: function() { + throw new Error('node.siblings is a getter and cannot be defined'); + }, + get: function() { + return this.parent ? this.parent.nodes : null; + } +}); - define(Base, 'run', function(obj, prop, arr) { - var len = arr.length, i = 0; - while (len--) { - obj[prop](arr[i++]); +/** + * Get the node's current index from `node.parent.nodes`. + * This should always be correct, even when the parent adds nodes. + * + * ```js + * var foo = new Node({type: 'foo'}); + * var bar = new Node({type: 'bar'}); + * var baz = new Node({type: 'baz'}); + * var qux = new Node({type: 'qux'}); + * foo.push(bar); + * foo.push(baz); + * foo.unshift(qux); + * + * console.log(bar.index) // 1 + * console.log(baz.index) // 2 + * console.log(qux.index) // 0 + * ``` + * @return {Number} + * @api public + */ + +Object.defineProperty(Node.prototype, 'index', { + set: function(index) { + define(this, 'idx', index); + }, + get: function() { + if (!Array.isArray(this.siblings)) { + return -1; } - return Base; - }); + var tok = this.idx !== -1 ? this.siblings[this.idx] : null; + if (tok !== this) { + this.idx = this.siblings.indexOf(this); + } + return this.idx; + } +}); - /** - * Static method for inheriting the prototype and static methods of the `Base` class. - * This method greatly simplifies the process of creating inheritance-based applications. - * See [static-extend][] for more details. - * - * ```js - * var extend = cu.extend(Parent); - * Parent.extend(Child); - * - * // optional methods - * Parent.extend(Child, { - * foo: function() {}, - * bar: function() {} - * }); - * ``` - * @name #extend - * @param {Function} `Ctor` constructor to extend - * @param {Object} `methods` Optional prototype properties to mix in. - * @return {Object} Returns the `Base` constructor for chaining - * @api public - */ +/** + * Get the previous node from the siblings array or `null`. + * + * ```js + * var foo = new Node({type: 'foo'}); + * var bar = new Node({type: 'bar'}); + * var baz = new Node({type: 'baz'}); + * foo.push(bar); + * foo.push(baz); + * + * console.log(baz.prev.type) // 'bar' + * ``` + * @return {Object} + * @api public + */ - define(Base, 'extend', cu.extend(Base, function(Ctor, Parent) { - Ctor.prototype.mixins = Ctor.prototype.mixins || []; +Object.defineProperty(Node.prototype, 'prev', { + set: function() { + throw new Error('node.prev is a getter and cannot be defined'); + }, + get: function() { + if (Array.isArray(this.siblings)) { + return this.siblings[this.index - 1] || this.parent.prev; + } + return null; + } +}); - define(Ctor, 'mixin', function(fn) { - var mixin = fn(Ctor.prototype, Ctor); - if (typeof mixin === 'function') { - Ctor.prototype.mixins.push(mixin); - } - return Ctor; - }); +/** + * Get the siblings array, or `null` if it doesn't exist. + * + * ```js + * var foo = new Node({type: 'foo'}); + * var bar = new Node({type: 'bar'}); + * var baz = new Node({type: 'baz'}); + * foo.push(bar); + * foo.push(baz); + * + * console.log(bar.siblings.length) // 2 + * console.log(baz.siblings.length) // 2 + * ``` + * @return {Object} + * @api public + */ - define(Ctor, 'mixins', function(Child) { - Base.run(Child, 'mixin', Ctor.prototype.mixins); - return Ctor; - }); +Object.defineProperty(Node.prototype, 'next', { + set: function() { + throw new Error('node.next is a getter and cannot be defined'); + }, + get: function() { + if (Array.isArray(this.siblings)) { + return this.siblings[this.index + 1] || this.parent.next; + } + return null; + } +}); - Ctor.prototype.mixin = function(key, value) { - Ctor.prototype[key] = value; - return this; - }; - return Base; - })); +/** + * Get the first node from `node.nodes`. + * + * ```js + * var foo = new Node({type: 'foo'}); + * var bar = new Node({type: 'bar'}); + * var baz = new Node({type: 'baz'}); + * var qux = new Node({type: 'qux'}); + * foo.push(bar); + * foo.push(baz); + * foo.push(qux); + * + * console.log(foo.first.type) // 'bar' + * ``` + * @return {Object} The first node, or undefiend + * @api public + */ - /** - * Used for adding methods to the `Base` prototype, and/or to the prototype of child instances. - * When a mixin function returns a function, the returned function is pushed onto the `.mixins` - * array, making it available to be used on inheriting classes whenever `Base.mixins()` is - * called (e.g. `Base.mixins(Child)`). - * - * ```js - * Base.mixin(function(proto) { - * proto.foo = function(msg) { - * return 'foo ' + msg; - * }; - * }); - * ``` - * @name #mixin - * @param {Function} `fn` Function to call - * @return {Object} Returns the `Base` constructor for chaining - * @api public - */ +Object.defineProperty(Node.prototype, 'first', { + get: function() { + return this.nodes ? this.nodes[0] : null; + } +}); - define(Base, 'mixin', function(fn) { - var mixin = fn(Base.prototype, Base); - if (typeof mixin === 'function') { - Base.prototype.mixins.push(mixin); - } - return Base; - }); +/** + * Get the last node from `node.nodes`. + * + * ```js + * var foo = new Node({type: 'foo'}); + * var bar = new Node({type: 'bar'}); + * var baz = new Node({type: 'baz'}); + * var qux = new Node({type: 'qux'}); + * foo.push(bar); + * foo.push(baz); + * foo.push(qux); + * + * console.log(foo.last.type) // 'qux' + * ``` + * @return {Object} The last node, or undefiend + * @api public + */ - /** - * Static method for running global mixin functions against a child constructor. - * Mixins must be registered before calling this method. - * - * ```js - * Base.extend(Child); - * Base.mixins(Child); - * ``` - * @name #mixins - * @param {Function} `Child` Constructor function of a child class - * @return {Object} Returns the `Base` constructor for chaining - * @api public - */ +Object.defineProperty(Node.prototype, 'last', { + get: function() { + return this.nodes ? utils.last(this.nodes) : null; + } +}); - define(Base, 'mixins', function(Child) { - Base.run(Child, 'mixin', Base.prototype.mixins); - return Base; - }); +/** + * Get the last node from `node.nodes`. + * + * ```js + * var foo = new Node({type: 'foo'}); + * var bar = new Node({type: 'bar'}); + * var baz = new Node({type: 'baz'}); + * var qux = new Node({type: 'qux'}); + * foo.push(bar); + * foo.push(baz); + * foo.push(qux); + * + * console.log(foo.last.type) // 'qux' + * ``` + * @return {Object} The last node, or undefiend + * @api public + */ - /** - * Similar to `util.inherit`, but copies all static properties, prototype properties, and - * getters/setters from `Provider` to `Receiver`. See [class-utils][]{#inherit} for more details. - * - * ```js - * Base.inherit(Foo, Bar); - * ``` - * @name #inherit - * @param {Function} `Receiver` Receiving (child) constructor - * @param {Function} `Provider` Providing (parent) constructor - * @return {Object} Returns the `Base` constructor for chaining - * @api public - */ +Object.defineProperty(Node.prototype, 'scope', { + get: function() { + if (this.isScope !== true) { + return this.parent ? this.parent.scope : this; + } + return this; + } +}); - define(Base, 'inherit', cu.inherit); - define(Base, 'bubble', cu.bubble); - return Base; +/** + * Get own property names from Node prototype, but only the + * first time `Node` is instantiated + */ + +function lazyKeys() { + if (!ownNames) { + ownNames = Object.getOwnPropertyNames(Node.prototype); + } } /** - * Expose `Base` with default settings + * Simplified assertion. Throws an error is `val` is falsey. */ -module.exports = namespace(); +function assert(val, message) { + if (!val) throw new Error(message); +} /** - * Allow users to define a namespace + * Expose `Node` */ -module.exports.namespace = namespace; +exports = module.exports = Node; /***/ }), -/* 331 */ +/* 427 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(30); -var Emitter = __webpack_require__(139); -var visit = __webpack_require__(332); -var toPath = __webpack_require__(141); -var union = __webpack_require__(334); -var del = __webpack_require__(336); -var get = __webpack_require__(78); -var has = __webpack_require__(341); -var set = __webpack_require__(344); +var typeOf = __webpack_require__(421); +var utils = module.exports; /** - * Create a `Cache` constructor that when instantiated will - * store values on the given `prop`. + * Returns true if the given value is a node. * * ```js - * var Cache = require('cache-base').namespace('data'); - * var cache = new Cache(); - * - * cache.set('foo', 'bar'); - * //=> {data: {foo: 'bar'}} + * var Node = require('snapdragon-node'); + * var node = new Node({type: 'foo'}); + * console.log(utils.isNode(node)); //=> true + * console.log(utils.isNode({})); //=> false * ``` - * @param {String} `prop` The property name to use for storing values. - * @return {Function} Returns a custom `Cache` constructor + * @param {Object} `node` Instance of [snapdragon-node][] + * @returns {Boolean} * @api public */ -function namespace(prop) { - - /** - * Create a new `Cache`. Internally the `Cache` constructor is created using - * the `namespace` function, with `cache` defined as the storage object. - * - * ```js - * var app = new Cache(); - * ``` - * @param {Object} `cache` Optionally pass an object to initialize with. - * @constructor - * @api public - */ - - function Cache(cache) { - if (prop) { - this[prop] = {}; - } - if (cache) { - this.set(cache); - } - } +utils.isNode = function(node) { + return typeOf(node) === 'object' && node.isNode === true; +}; - /** - * Inherit Emitter - */ +/** + * Emit an empty string for the given `node`. + * + * ```js + * // do nothing for beginning-of-string + * snapdragon.compiler.set('bos', utils.noop); + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @returns {undefined} + * @api public + */ - Emitter(Cache.prototype); +utils.noop = function(node) { + append(this, '', node); +}; - /** - * Assign `value` to `key`. Also emits `set` with - * the key and value. - * - * ```js - * app.on('set', function(key, val) { - * // do something when `set` is emitted - * }); - * - * app.set(key, value); - * - * // also takes an object or array - * app.set({name: 'Halle'}); - * app.set([{foo: 'bar'}, {baz: 'quux'}]); - * console.log(app); - * //=> {name: 'Halle', foo: 'bar', baz: 'quux'} - * ``` - * - * @name .set - * @emits `set` with `key` and `value` as arguments. - * @param {String} `key` - * @param {any} `value` - * @return {Object} Returns the instance for chaining. - * @api public - */ +/** + * Appdend `node.val` to `compiler.output`, exactly as it was created + * by the parser. + * + * ```js + * snapdragon.compiler.set('text', utils.identity); + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @returns {undefined} + * @api public + */ - Cache.prototype.set = function(key, val) { - if (Array.isArray(key) && arguments.length === 2) { - key = toPath(key); - } - if (isObject(key) || Array.isArray(key)) { - this.visit('set', key); - } else { - set(prop ? this[prop] : this, key, val); - this.emit('set', key, val); - } - return this; - }; +utils.identity = function(node) { + append(this, node.val, node); +}; - /** - * Union `array` to `key`. Also emits `set` with - * the key and value. - * - * ```js - * app.union('a.b', ['foo']); - * app.union('a.b', ['bar']); - * console.log(app.get('a')); - * //=> {b: ['foo', 'bar']} - * ``` - * @name .union - * @param {String} `key` - * @param {any} `value` - * @return {Object} Returns the instance for chaining. - * @api public - */ +/** + * Previously named `.emit`, this method appends the given `val` + * to `compiler.output` for the given node. Useful when you know + * what value should be appended advance, regardless of the actual + * value of `node.val`. + * + * ```js + * snapdragon.compiler + * .set('i', function(node) { + * this.mapVisit(node); + * }) + * .set('i.open', utils.append('')) + * .set('i.close', utils.append('')) + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @returns {Function} Returns a compiler middleware function. + * @api public + */ - Cache.prototype.union = function(key, val) { - if (Array.isArray(key) && arguments.length === 2) { - key = toPath(key); - } - var ctx = prop ? this[prop] : this; - union(ctx, key, arrayify(val)); - this.emit('union', val); - return this; +utils.append = function(val) { + return function(node) { + append(this, val, node); }; +}; - /** - * Return the value of `key`. Dot notation may be used - * to get [nested property values][get-value]. - * - * ```js - * app.set('a.b.c', 'd'); - * app.get('a.b'); - * //=> {c: 'd'} - * - * app.get(['a', 'b']); - * //=> {c: 'd'} - * ``` - * - * @name .get - * @emits `get` with `key` and `value` as arguments. - * @param {String} `key` The name of the property to get. Dot-notation may be used. - * @return {any} Returns the value of `key` - * @api public - */ +/** + * Used in compiler middleware, this onverts an AST node into + * an empty `text` node and deletes `node.nodes` if it exists. + * The advantage of this method is that, as opposed to completely + * removing the node, indices will not need to be re-calculated + * in sibling nodes, and nothing is appended to the output. + * + * ```js + * utils.toNoop(node); + * // convert `node.nodes` to the given value instead of deleting it + * utils.toNoop(node, []); + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @param {Array} `nodes` Optionally pass a new `nodes` value, to replace the existing `node.nodes` array. + * @api public + */ - Cache.prototype.get = function(key) { - key = toPath(arguments); +utils.toNoop = function(node, nodes) { + if (nodes) { + node.nodes = nodes; + } else { + delete node.nodes; + node.type = 'text'; + node.val = ''; + } +}; - var ctx = prop ? this[prop] : this; - var val = get(ctx, key); +/** + * Visit `node` with the given `fn`. The built-in `.visit` method in snapdragon + * automatically calls registered compilers, this allows you to pass a visitor + * function. + * + * ```js + * snapdragon.compiler.set('i', function(node) { + * utils.visit(node, function(childNode) { + * // do stuff with "childNode" + * return childNode; + * }); + * }); + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @param {Function} `fn` + * @return {Object} returns the node after recursively visiting all child nodes. + * @api public + */ - this.emit('get', key, val); - return val; - }; +utils.visit = function(node, fn) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + assert(isFunction(fn), 'expected a visitor function'); + fn(node); + return node.nodes ? utils.mapVisit(node, fn) : node; +}; - /** - * Return true if app has a stored value for `key`, - * false only if value is `undefined`. - * - * ```js - * app.set('foo', 'bar'); - * app.has('foo'); - * //=> true - * ``` - * - * @name .has - * @emits `has` with `key` and true or false as arguments. - * @param {String} `key` - * @return {Boolean} - * @api public - */ +/** + * Map [visit](#visit) the given `fn` over `node.nodes`. This is called by + * [visit](#visit), use this method if you do not want `fn` to be called on + * the first node. + * + * ```js + * snapdragon.compiler.set('i', function(node) { + * utils.mapVisit(node, function(childNode) { + * // do stuff with "childNode" + * return childNode; + * }); + * }); + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @param {Object} `options` + * @param {Function} `fn` + * @return {Object} returns the node + * @api public + */ - Cache.prototype.has = function(key) { - key = toPath(arguments); +utils.mapVisit = function(node, fn) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + assert(isArray(node.nodes), 'expected node.nodes to be an array'); + assert(isFunction(fn), 'expected a visitor function'); - var ctx = prop ? this[prop] : this; - var val = get(ctx, key); + for (var i = 0; i < node.nodes.length; i++) { + utils.visit(node.nodes[i], fn); + } + return node; +}; - var has = typeof val !== 'undefined'; - this.emit('has', key, has); - return has; - }; +/** + * Unshift an `*.open` node onto `node.nodes`. + * + * ```js + * var Node = require('snapdragon-node'); + * snapdragon.parser.set('brace', function(node) { + * var match = this.match(/^{/); + * if (match) { + * var parent = new Node({type: 'brace'}); + * utils.addOpen(parent, Node); + * console.log(parent.nodes[0]): + * // { type: 'brace.open', val: '' }; + * + * // push the parent "brace" node onto the stack + * this.push(parent); + * + * // return the parent node, so it's also added to the AST + * return brace; + * } + * }); + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @param {Function} `Node` (required) Node constructor function from [snapdragon-node][]. + * @param {Function} `filter` Optionaly specify a filter function to exclude the node. + * @return {Object} Returns the created opening node. + * @api public + */ - /** - * Delete one or more properties from the instance. - * - * ```js - * app.del(); // delete all - * // or - * app.del('foo'); - * // or - * app.del(['foo', 'bar']); - * ``` - * @name .del - * @emits `del` with the `key` as the only argument. - * @param {String|Array} `key` Property name or array of property names. - * @return {Object} Returns the instance for chaining. - * @api public - */ +utils.addOpen = function(node, Node, val, filter) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + assert(isFunction(Node), 'expected Node to be a constructor function'); - Cache.prototype.del = function(key) { - if (Array.isArray(key)) { - this.visit('del', key); - } else { - del(prop ? this[prop] : this, key); - this.emit('del', key); - } - return this; - }; + if (typeof val === 'function') { + filter = val; + val = ''; + } - /** - * Reset the entire cache to an empty object. - * - * ```js - * app.clear(); - * ``` - * @api public - */ + if (typeof filter === 'function' && !filter(node)) return; + var open = new Node({ type: node.type + '.open', val: val}); + var unshift = node.unshift || node.unshiftNode; + if (typeof unshift === 'function') { + unshift.call(node, open); + } else { + utils.unshiftNode(node, open); + } + return open; +}; - Cache.prototype.clear = function() { - if (prop) { - this[prop] = {}; - } - }; +/** + * Push a `*.close` node onto `node.nodes`. + * + * ```js + * var Node = require('snapdragon-node'); + * snapdragon.parser.set('brace', function(node) { + * var match = this.match(/^}/); + * if (match) { + * var parent = this.parent(); + * if (parent.type !== 'brace') { + * throw new Error('missing opening: ' + '}'); + * } + * + * utils.addClose(parent, Node); + * console.log(parent.nodes[parent.nodes.length - 1]): + * // { type: 'brace.close', val: '' }; + * + * // no need to return a node, since the parent + * // was already added to the AST + * return; + * } + * }); + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @param {Function} `Node` (required) Node constructor function from [snapdragon-node][]. + * @param {Function} `filter` Optionaly specify a filter function to exclude the node. + * @return {Object} Returns the created closing node. + * @api public + */ - /** - * Visit `method` over the properties in the given object, or map - * visit over the object-elements in an array. - * - * @name .visit - * @param {String} `method` The name of the `base` method to call. - * @param {Object|Array} `val` The object or array to iterate over. - * @return {Object} Returns the instance for chaining. - * @api public - */ +utils.addClose = function(node, Node, val, filter) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + assert(isFunction(Node), 'expected Node to be a constructor function'); - Cache.prototype.visit = function(method, val) { - visit(this, method, val); - return this; - }; + if (typeof val === 'function') { + filter = val; + val = ''; + } - return Cache; -} + if (typeof filter === 'function' && !filter(node)) return; + var close = new Node({ type: node.type + '.close', val: val}); + var push = node.push || node.pushNode; + if (typeof push === 'function') { + push.call(node, close); + } else { + utils.pushNode(node, close); + } + return close; +}; /** - * Cast val to an array + * Wraps the given `node` with `*.open` and `*.close` nodes. + * + * @param {Object} `node` Instance of [snapdragon-node][] + * @param {Function} `Node` (required) Node constructor function from [snapdragon-node][]. + * @param {Function} `filter` Optionaly specify a filter function to exclude the node. + * @return {Object} Returns the node + * @api public */ -function arrayify(val) { - return val ? (Array.isArray(val) ? val : [val]) : []; -} - -/** - * Expose `Cache` - */ +utils.wrapNodes = function(node, Node, filter) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + assert(isFunction(Node), 'expected Node to be a constructor function'); -module.exports = namespace(); + utils.addOpen(node, Node, filter); + utils.addClose(node, Node, filter); + return node; +}; /** - * Expose `Cache.namespace` + * Push the given `node` onto `parent.nodes`, and set `parent` as `node.parent. + * + * ```js + * var parent = new Node({type: 'foo'}); + * var node = new Node({type: 'bar'}); + * utils.pushNode(parent, node); + * console.log(parent.nodes[0].type) // 'bar' + * console.log(node.parent.type) // 'foo' + * ``` + * @param {Object} `parent` + * @param {Object} `node` Instance of [snapdragon-node][] + * @return {Object} Returns the child node + * @api public */ -module.exports.namespace = namespace; - +utils.pushNode = function(parent, node) { + assert(utils.isNode(parent), 'expected parent node to be an instance of Node'); + assert(utils.isNode(node), 'expected node to be an instance of Node'); -/***/ }), -/* 332 */ -/***/ (function(module, exports, __webpack_require__) { + node.define('parent', parent); + parent.nodes = parent.nodes || []; + parent.nodes.push(node); + return node; +}; -"use strict"; -/*! - * collection-visit +/** + * Unshift `node` onto `parent.nodes`, and set `parent` as `node.parent. * - * Copyright (c) 2015, 2017, Jon Schlinkert. - * Released under the MIT License. + * ```js + * var parent = new Node({type: 'foo'}); + * var node = new Node({type: 'bar'}); + * utils.unshiftNode(parent, node); + * console.log(parent.nodes[0].type) // 'bar' + * console.log(node.parent.type) // 'foo' + * ``` + * @param {Object} `parent` + * @param {Object} `node` Instance of [snapdragon-node][] + * @return {undefined} + * @api public */ +utils.unshiftNode = function(parent, node) { + assert(utils.isNode(parent), 'expected parent node to be an instance of Node'); + assert(utils.isNode(node), 'expected node to be an instance of Node'); + node.define('parent', parent); + parent.nodes = parent.nodes || []; + parent.nodes.unshift(node); +}; -var visit = __webpack_require__(140); -var mapVisit = __webpack_require__(333); - -module.exports = function(collection, method, val) { - var result; +/** + * Pop the last `node` off of `parent.nodes`. The advantage of + * using this method is that it checks for `node.nodes` and works + * with any version of `snapdragon-node`. + * + * ```js + * var parent = new Node({type: 'foo'}); + * utils.pushNode(parent, new Node({type: 'foo'})); + * utils.pushNode(parent, new Node({type: 'bar'})); + * utils.pushNode(parent, new Node({type: 'baz'})); + * console.log(parent.nodes.length); //=> 3 + * utils.popNode(parent); + * console.log(parent.nodes.length); //=> 2 + * ``` + * @param {Object} `parent` + * @param {Object} `node` Instance of [snapdragon-node][] + * @return {Number|Undefined} Returns the length of `node.nodes` or undefined. + * @api public + */ - if (typeof val === 'string' && (method in collection)) { - var args = [].slice.call(arguments, 2); - result = collection[method].apply(collection, args); - } else if (Array.isArray(val)) { - result = mapVisit.apply(null, arguments); - } else { - result = visit.apply(null, arguments); +utils.popNode = function(node) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + if (typeof node.pop === 'function') { + return node.pop(); } + return node.nodes && node.nodes.pop(); +}; - if (typeof result !== 'undefined') { - return result; - } +/** + * Shift the first `node` off of `parent.nodes`. The advantage of + * using this method is that it checks for `node.nodes` and works + * with any version of `snapdragon-node`. + * + * ```js + * var parent = new Node({type: 'foo'}); + * utils.pushNode(parent, new Node({type: 'foo'})); + * utils.pushNode(parent, new Node({type: 'bar'})); + * utils.pushNode(parent, new Node({type: 'baz'})); + * console.log(parent.nodes.length); //=> 3 + * utils.shiftNode(parent); + * console.log(parent.nodes.length); //=> 2 + * ``` + * @param {Object} `parent` + * @param {Object} `node` Instance of [snapdragon-node][] + * @return {Number|Undefined} Returns the length of `node.nodes` or undefined. + * @api public + */ - return collection; +utils.shiftNode = function(node) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + if (typeof node.shift === 'function') { + return node.shift(); + } + return node.nodes && node.nodes.shift(); }; +/** + * Remove the specified `node` from `parent.nodes`. + * + * ```js + * var parent = new Node({type: 'abc'}); + * var foo = new Node({type: 'foo'}); + * utils.pushNode(parent, foo); + * utils.pushNode(parent, new Node({type: 'bar'})); + * utils.pushNode(parent, new Node({type: 'baz'})); + * console.log(parent.nodes.length); //=> 3 + * utils.removeNode(parent, foo); + * console.log(parent.nodes.length); //=> 2 + * ``` + * @param {Object} `parent` + * @param {Object} `node` Instance of [snapdragon-node][] + * @return {Object|undefined} Returns the removed node, if successful, or undefined if it does not exist on `parent.nodes`. + * @api public + */ -/***/ }), -/* 333 */ -/***/ (function(module, exports, __webpack_require__) { +utils.removeNode = function(parent, node) { + assert(utils.isNode(parent), 'expected parent.node to be an instance of Node'); + assert(utils.isNode(node), 'expected node to be an instance of Node'); -"use strict"; + if (!parent.nodes) { + return null; + } + if (typeof parent.remove === 'function') { + return parent.remove(node); + } -var util = __webpack_require__(14); -var visit = __webpack_require__(140); + var idx = parent.nodes.indexOf(node); + if (idx !== -1) { + return parent.nodes.splice(idx, 1); + } +}; /** - * Map `visit` over an array of objects. + * Returns true if `node.type` matches the given `type`. Throws a + * `TypeError` if `node` is not an instance of `Node`. * - * @param {Object} `collection` The context in which to invoke `method` - * @param {String} `method` Name of the method to call on `collection` - * @param {Object} `arr` Array of objects. + * ```js + * var Node = require('snapdragon-node'); + * var node = new Node({type: 'foo'}); + * console.log(utils.isType(node, 'foo')); // false + * console.log(utils.isType(node, 'bar')); // true + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @param {String} `type` + * @return {Boolean} + * @api public */ -module.exports = function mapVisit(collection, method, val) { - if (isObject(val)) { - return visit.apply(null, arguments); - } - - if (!Array.isArray(val)) { - throw new TypeError('expected an array: ' + util.inspect(val)); +utils.isType = function(node, type) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + switch (typeOf(type)) { + case 'array': + var types = type.slice(); + for (var i = 0; i < types.length; i++) { + if (utils.isType(node, types[i])) { + return true; + } + } + return false; + case 'string': + return node.type === type; + case 'regexp': + return type.test(node.type); + default: { + throw new TypeError('expected "type" to be an array, string or regexp'); + } } +}; - var args = [].slice.call(arguments, 3); +/** + * Returns true if the given `node` has the given `type` in `node.nodes`. + * Throws a `TypeError` if `node` is not an instance of `Node`. + * + * ```js + * var Node = require('snapdragon-node'); + * var node = new Node({ + * type: 'foo', + * nodes: [ + * new Node({type: 'bar'}), + * new Node({type: 'baz'}) + * ] + * }); + * console.log(utils.hasType(node, 'xyz')); // false + * console.log(utils.hasType(node, 'baz')); // true + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @param {String} `type` + * @return {Boolean} + * @api public + */ - for (var i = 0; i < val.length; i++) { - var ele = val[i]; - if (isObject(ele)) { - visit.apply(null, [collection, method, ele].concat(args)); - } else { - collection[method].apply(collection, [ele].concat(args)); +utils.hasType = function(node, type) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + if (!Array.isArray(node.nodes)) return false; + for (var i = 0; i < node.nodes.length; i++) { + if (utils.isType(node.nodes[i], type)) { + return true; } } + return false; }; -function isObject(val) { - return val && (typeof val === 'function' || (!Array.isArray(val) && typeof val === 'object')); -} - - -/***/ }), -/* 334 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var isObject = __webpack_require__(74); -var union = __webpack_require__(142); -var get = __webpack_require__(78); -var set = __webpack_require__(335); - -module.exports = function unionValue(obj, prop, value) { - if (!isObject(obj)) { - throw new TypeError('union-value expects the first argument to be an object.'); - } +/** + * Returns the first node from `node.nodes` of the given `type` + * + * ```js + * var node = new Node({ + * type: 'foo', + * nodes: [ + * new Node({type: 'text', val: 'abc'}), + * new Node({type: 'text', val: 'xyz'}) + * ] + * }); + * + * var textNode = utils.firstOfType(node.nodes, 'text'); + * console.log(textNode.val); + * //=> 'abc' + * ``` + * @param {Array} `nodes` + * @param {String} `type` + * @return {Object|undefined} Returns the first matching node or undefined. + * @api public + */ - if (typeof prop !== 'string') { - throw new TypeError('union-value expects `prop` to be a string.'); +utils.firstOfType = function(nodes, type) { + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + if (utils.isType(node, type)) { + return node; + } } - - var arr = arrayify(get(obj, prop)); - set(obj, prop, union(arr, arrayify(value))); - return obj; }; -function arrayify(val) { - if (val === null || typeof val === 'undefined') { - return []; +/** + * Returns the node at the specified index, or the first node of the + * given `type` from `node.nodes`. + * + * ```js + * var node = new Node({ + * type: 'foo', + * nodes: [ + * new Node({type: 'text', val: 'abc'}), + * new Node({type: 'text', val: 'xyz'}) + * ] + * }); + * + * var nodeOne = utils.findNode(node.nodes, 'text'); + * console.log(nodeOne.val); + * //=> 'abc' + * + * var nodeTwo = utils.findNode(node.nodes, 1); + * console.log(nodeTwo.val); + * //=> 'xyz' + * ``` + * + * @param {Array} `nodes` + * @param {String|Number} `type` Node type or index. + * @return {Object} Returns a node or undefined. + * @api public + */ + +utils.findNode = function(nodes, type) { + if (!Array.isArray(nodes)) { + return null; } - if (Array.isArray(val)) { - return val; + if (typeof type === 'number') { + return nodes[type]; } - return [val]; -} - - -/***/ }), -/* 335 */ -/***/ (function(module, exports, __webpack_require__) { + return utils.firstOfType(nodes, type); +}; -"use strict"; -/*! - * set-value +/** + * Returns true if the given node is an "*.open" node. * - * Copyright (c) 2014-2015, 2017, Jon Schlinkert. - * Released under the MIT License. + * ```js + * var Node = require('snapdragon-node'); + * var brace = new Node({type: 'brace'}); + * var open = new Node({type: 'brace.open'}); + * var close = new Node({type: 'brace.close'}); + * + * console.log(utils.isOpen(brace)); // false + * console.log(utils.isOpen(open)); // true + * console.log(utils.isOpen(close)); // false + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @return {Boolean} + * @api public */ +utils.isOpen = function(node) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + return node.type.slice(-5) === '.open'; +}; +/** + * Returns true if the given node is a "*.close" node. + * + * ```js + * var Node = require('snapdragon-node'); + * var brace = new Node({type: 'brace'}); + * var open = new Node({type: 'brace.open'}); + * var close = new Node({type: 'brace.close'}); + * + * console.log(utils.isClose(brace)); // false + * console.log(utils.isClose(open)); // false + * console.log(utils.isClose(close)); // true + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @return {Boolean} + * @api public + */ -var toPath = __webpack_require__(141); -var extend = __webpack_require__(20); -var isPlainObject = __webpack_require__(76); -var isObject = __webpack_require__(74); - -module.exports = function(obj, path, val) { - if (!isObject(obj)) { - return obj; - } +utils.isClose = function(node) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + return node.type.slice(-6) === '.close'; +}; - if (Array.isArray(path)) { - path = toPath(path); - } +/** + * Returns true if `node.nodes` **has** an `.open` node + * + * ```js + * var Node = require('snapdragon-node'); + * var brace = new Node({ + * type: 'brace', + * nodes: [] + * }); + * + * var open = new Node({type: 'brace.open'}); + * console.log(utils.hasOpen(brace)); // false + * + * brace.pushNode(open); + * console.log(utils.hasOpen(brace)); // true + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @return {Boolean} + * @api public + */ - if (typeof path !== 'string') { - return obj; +utils.hasOpen = function(node) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + var first = node.first || node.nodes ? node.nodes[0] : null; + if (utils.isNode(first)) { + return first.type === node.type + '.open'; } + return false; +}; - var segs = path.split('.'); - var len = segs.length, i = -1; - var res = obj; - var last; - - while (++i < len) { - var key = segs[i]; - - while (key[key.length - 1] === '\\') { - key = key.slice(0, -1) + '.' + segs[++i]; - } - - if (i === len - 1) { - last = key; - break; - } +/** + * Returns true if `node.nodes` **has** a `.close` node + * + * ```js + * var Node = require('snapdragon-node'); + * var brace = new Node({ + * type: 'brace', + * nodes: [] + * }); + * + * var close = new Node({type: 'brace.close'}); + * console.log(utils.hasClose(brace)); // false + * + * brace.pushNode(close); + * console.log(utils.hasClose(brace)); // true + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @return {Boolean} + * @api public + */ - if (!isObject(obj[key])) { - obj[key] = {}; - } - obj = obj[key]; +utils.hasClose = function(node) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + var last = node.last || node.nodes ? node.nodes[node.nodes.length - 1] : null; + if (utils.isNode(last)) { + return last.type === node.type + '.close'; } + return false; +}; - if (obj.hasOwnProperty(last) && isObject(obj[last])) { - if (isPlainObject(val)) { - extend(obj[last], val); - } else { - obj[last] = val; - } +/** + * Returns true if `node.nodes` has both `.open` and `.close` nodes + * + * ```js + * var Node = require('snapdragon-node'); + * var brace = new Node({ + * type: 'brace', + * nodes: [] + * }); + * + * var open = new Node({type: 'brace.open'}); + * var close = new Node({type: 'brace.close'}); + * console.log(utils.hasOpen(brace)); // false + * console.log(utils.hasClose(brace)); // false + * + * brace.pushNode(open); + * brace.pushNode(close); + * console.log(utils.hasOpen(brace)); // true + * console.log(utils.hasClose(brace)); // true + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @return {Boolean} + * @api public + */ - } else { - obj[last] = val; - } - return res; +utils.hasOpenAndClose = function(node) { + return utils.hasOpen(node) && utils.hasClose(node); }; - - -/***/ }), -/* 336 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * unset-value +/** + * Push the given `node` onto the `state.inside` array for the + * given type. This array is used as a specialized "stack" for + * only the given `node.type`. * - * Copyright (c) 2015, 2017, Jon Schlinkert. - * Released under the MIT License. + * ```js + * var state = { inside: {}}; + * var node = new Node({type: 'brace'}); + * utils.addType(state, node); + * console.log(state.inside); + * //=> { brace: [{type: 'brace'}] } + * ``` + * @param {Object} `state` The `compiler.state` object or custom state object. + * @param {Object} `node` Instance of [snapdragon-node][] + * @return {Array} Returns the `state.inside` stack for the given type. + * @api public */ +utils.addType = function(state, node) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + assert(isObject(state), 'expected state to be an object'); + var type = node.parent + ? node.parent.type + : node.type.replace(/\.open$/, ''); -var isObject = __webpack_require__(30); -var has = __webpack_require__(337); - -module.exports = function unset(obj, prop) { - if (!isObject(obj)) { - throw new TypeError('expected an object.'); + if (!state.hasOwnProperty('inside')) { + state.inside = {}; } - if (obj.hasOwnProperty(prop)) { - delete obj[prop]; - return true; + if (!state.inside.hasOwnProperty(type)) { + state.inside[type] = []; } - if (has(obj, prop)) { - var segs = prop.split('.'); - var last = segs.pop(); - while (segs.length && segs[segs.length - 1].slice(-1) === '\\') { - last = segs.pop().slice(0, -1) + '.' + last; - } - while (segs.length) obj = obj[prop = segs.shift()]; - return (delete obj[last]); - } - return true; + var arr = state.inside[type]; + arr.push(node); + return arr; }; - -/***/ }), -/* 337 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * has-value +/** + * Remove the given `node` from the `state.inside` array for the + * given type. This array is used as a specialized "stack" for + * only the given `node.type`. * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. + * ```js + * var state = { inside: {}}; + * var node = new Node({type: 'brace'}); + * utils.addType(state, node); + * console.log(state.inside); + * //=> { brace: [{type: 'brace'}] } + * utils.removeType(state, node); + * //=> { brace: [] } + * ``` + * @param {Object} `state` The `compiler.state` object or custom state object. + * @param {Object} `node` Instance of [snapdragon-node][] + * @return {Array} Returns the `state.inside` stack for the given type. + * @api public */ +utils.removeType = function(state, node) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + assert(isObject(state), 'expected state to be an object'); + var type = node.parent + ? node.parent.type + : node.type.replace(/\.close$/, ''); -var isObject = __webpack_require__(338); -var hasValues = __webpack_require__(340); -var get = __webpack_require__(78); - -module.exports = function(obj, prop, noZero) { - if (isObject(obj)) { - return hasValues(get(obj, prop), noZero); + if (state.inside.hasOwnProperty(type)) { + return state.inside[type].pop(); } - return hasValues(obj, prop); }; - -/***/ }), -/* 338 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * isobject +/** + * Returns true if `node.val` is an empty string, or `node.nodes` does + * not contain any non-empty text nodes. * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. + * ```js + * var node = new Node({type: 'text'}); + * utils.isEmpty(node); //=> true + * node.val = 'foo'; + * utils.isEmpty(node); //=> false + * ``` + * @param {Object} `node` Instance of [snapdragon-node][] + * @param {Function} `fn` + * @return {Boolean} + * @api public */ +utils.isEmpty = function(node, fn) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + if (!Array.isArray(node.nodes)) { + if (node.type !== 'text') { + return true; + } + if (typeof fn === 'function') { + return fn(node, node.parent); + } + return !utils.trim(node.val); + } -var isArray = __webpack_require__(339); + for (var i = 0; i < node.nodes.length; i++) { + var child = node.nodes[i]; + if (utils.isOpen(child) || utils.isClose(child)) { + continue; + } + if (!utils.isEmpty(child, fn)) { + return false; + } + } -module.exports = function isObject(val) { - return val != null && typeof val === 'object' && isArray(val) === false; + return true; }; +/** + * Returns true if the `state.inside` stack for the given type exists + * and has one or more nodes on it. + * + * ```js + * var state = { inside: {}}; + * var node = new Node({type: 'brace'}); + * console.log(utils.isInsideType(state, 'brace')); //=> false + * utils.addType(state, node); + * console.log(utils.isInsideType(state, 'brace')); //=> true + * utils.removeType(state, node); + * console.log(utils.isInsideType(state, 'brace')); //=> false + * ``` + * @param {Object} `state` + * @param {String} `type` + * @return {Boolean} + * @api public + */ -/***/ }), -/* 339 */ -/***/ (function(module, exports) { - -var toString = {}.toString; +utils.isInsideType = function(state, type) { + assert(isObject(state), 'expected state to be an object'); + assert(isString(type), 'expected type to be a string'); -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; + if (!state.hasOwnProperty('inside')) { + return false; + } + if (!state.inside.hasOwnProperty(type)) { + return false; + } -/***/ }), -/* 340 */ -/***/ (function(module, exports, __webpack_require__) { + return state.inside[type].length > 0; +}; -"use strict"; -/*! - * has-values +/** + * Returns true if `node` is either a child or grand-child of the given `type`, + * or `state.inside[type]` is a non-empty array. * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. + * ```js + * var state = { inside: {}}; + * var node = new Node({type: 'brace'}); + * var open = new Node({type: 'brace.open'}); + * console.log(utils.isInside(state, open, 'brace')); //=> false + * utils.pushNode(node, open); + * console.log(utils.isInside(state, open, 'brace')); //=> true + * ``` + * @param {Object} `state` Either the `compiler.state` object, if it exists, or a user-supplied state object. + * @param {Object} `node` Instance of [snapdragon-node][] + * @param {String} `type` The `node.type` to check for. + * @return {Boolean} + * @api public */ +utils.isInside = function(state, node, type) { + assert(utils.isNode(node), 'expected node to be an instance of Node'); + assert(isObject(state), 'expected state to be an object'); - -module.exports = function hasValue(o, noZero) { - if (o === null || o === undefined) { + if (Array.isArray(type)) { + for (var i = 0; i < type.length; i++) { + if (utils.isInside(state, node, type[i])) { + return true; + } + } return false; } - if (typeof o === 'boolean') { - return true; + var parent = node.parent; + if (typeof type === 'string') { + return (parent && parent.type === type) || utils.isInsideType(state, type); } - if (typeof o === 'number') { - if (o === 0 && noZero === true) { - return false; + if (typeOf(type) === 'regexp') { + if (parent && parent.type && type.test(parent.type)) { + return true; } - return true; - } - if (o.length !== undefined) { - return o.length !== 0; - } + var keys = Object.keys(state.inside); + var len = keys.length; + var idx = -1; + while (++idx < len) { + var key = keys[idx]; + var val = state.inside[key]; - for (var key in o) { - if (o.hasOwnProperty(key)) { - return true; + if (Array.isArray(val) && val.length !== 0 && type.test(key)) { + return true; + } } } return false; }; - -/***/ }), -/* 341 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * has-value +/** + * Get the last `n` element from the given `array`. Used for getting + * a node from `node.nodes.` * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Licensed under the MIT License. + * @param {Array} `array` + * @param {Number} `n` + * @return {undefined} + * @api public */ - - -var isObject = __webpack_require__(30); -var hasValues = __webpack_require__(342); -var get = __webpack_require__(78); - -module.exports = function(val, prop) { - return hasValues(isObject(val) && prop ? get(val, prop) : val); +utils.last = function(arr, n) { + return arr[arr.length - (n || 1)]; }; - -/***/ }), -/* 342 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * has-values +/** + * Cast the given `val` to an array. * - * Copyright (c) 2014-2015, 2017, Jon Schlinkert. - * Released under the MIT License. + * ```js + * console.log(utils.arrayify('')); + * //=> [] + * console.log(utils.arrayify('foo')); + * //=> ['foo'] + * console.log(utils.arrayify(['foo'])); + * //=> ['foo'] + * ``` + * @param {any} `val` + * @return {Array} + * @api public */ - - -var typeOf = __webpack_require__(343); -var isNumber = __webpack_require__(77); - -module.exports = function hasValue(val) { - // is-number checks for NaN and other edge cases - if (isNumber(val)) { - return true; +utils.arrayify = function(val) { + if (typeof val === 'string' && val !== '') { + return [val]; } - - switch (typeOf(val)) { - case 'null': - case 'boolean': - case 'function': - return true; - case 'string': - case 'arguments': - return val.length !== 0; - case 'error': - return val.message !== ''; - case 'array': - var len = val.length; - if (len === 0) { - return false; - } - for (var i = 0; i < len; i++) { - if (hasValue(val[i])) { - return true; - } - } - return false; - case 'file': - case 'map': - case 'set': - return val.size !== 0; - case 'object': - var keys = Object.keys(val); - if (keys.length === 0) { - return false; - } - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (hasValue(val[key])) { - return true; - } - } - return false; - default: { - return false; - } + if (!Array.isArray(val)) { + return []; } + return val; }; +/** + * Convert the given `val` to a string by joining with `,`. Useful + * for creating a cheerio/CSS/DOM-style selector from a list of strings. + * + * @param {any} `val` + * @return {Array} + * @api public + */ -/***/ }), -/* 343 */ -/***/ (function(module, exports, __webpack_require__) { - -var isBuffer = __webpack_require__(22); -var toString = Object.prototype.toString; +utils.stringify = function(val) { + return utils.arrayify(val).join(','); +}; /** - * Get the native `typeof` a value. + * Ensure that the given value is a string and call `.trim()` on it, + * or return an empty string. * - * @param {*} `val` - * @return {*} Native javascript type + * @param {String} `str` + * @return {String} + * @api public */ -module.exports = function kindOf(val) { - // primitivies - if (typeof val === 'undefined') { - return 'undefined'; - } - if (val === null) { - return 'null'; - } - if (val === true || val === false || val instanceof Boolean) { - return 'boolean'; - } - if (typeof val === 'string' || val instanceof String) { - return 'string'; - } - if (typeof val === 'number' || val instanceof Number) { - return 'number'; - } +utils.trim = function(str) { + return typeof str === 'string' ? str.trim() : ''; +}; - // functions - if (typeof val === 'function' || val instanceof Function) { - return 'function'; - } +/** + * Return true if val is an object + */ - // array - if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { - return 'array'; - } +function isObject(val) { + return typeOf(val) === 'object'; +} - // check for instances of RegExp and Date before calling `toString` - if (val instanceof RegExp) { - return 'regexp'; - } - if (val instanceof Date) { - return 'date'; - } +/** + * Return true if val is a string + */ - // other objects - var type = toString.call(val); +function isString(val) { + return typeof val === 'string'; +} - if (type === '[object RegExp]') { - return 'regexp'; - } - if (type === '[object Date]') { - return 'date'; - } - if (type === '[object Arguments]') { - return 'arguments'; - } - if (type === '[object Error]') { - return 'error'; - } - if (type === '[object Promise]') { - return 'promise'; - } +/** + * Return true if val is a function + */ - // buffer - if (isBuffer(val)) { - return 'buffer'; - } +function isFunction(val) { + return typeof val === 'function'; +} - // es6: Map, WeakMap, Set, WeakSet - if (type === '[object Set]') { - return 'set'; - } - if (type === '[object WeakSet]') { - return 'weakset'; - } - if (type === '[object Map]') { - return 'map'; - } - if (type === '[object WeakMap]') { - return 'weakmap'; - } - if (type === '[object Symbol]') { - return 'symbol'; - } +/** + * Return true if val is an array + */ - // typed arrays - if (type === '[object Int8Array]') { - return 'int8array'; - } - if (type === '[object Uint8Array]') { - return 'uint8array'; - } - if (type === '[object Uint8ClampedArray]') { - return 'uint8clampedarray'; - } - if (type === '[object Int16Array]') { - return 'int16array'; - } - if (type === '[object Uint16Array]') { - return 'uint16array'; - } - if (type === '[object Int32Array]') { - return 'int32array'; - } - if (type === '[object Uint32Array]') { - return 'uint32array'; - } - if (type === '[object Float32Array]') { - return 'float32array'; - } - if (type === '[object Float64Array]') { - return 'float64array'; +function isArray(val) { + return Array.isArray(val); +} + +/** + * Shim to ensure the `.append` methods work with any version of snapdragon + */ + +function append(compiler, val, node) { + if (typeof compiler.append !== 'function') { + return compiler.emit(val, node); } + return compiler.append(val, node); +} + +/** + * Simplified assertion. Throws an error is `val` is falsey. + */ - // must be a plain object - return 'object'; -}; +function assert(val, message) { + if (!val) throw new Error(message); +} /***/ }), -/* 344 */ +/* 428 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/*! - * set-value - * - * Copyright (c) 2014-2015, 2017, Jon Schlinkert. - * Released under the MIT License. - */ +var Snapdragon = __webpack_require__(429); +var compilers = __webpack_require__(410); +var parsers = __webpack_require__(425); +var utils = __webpack_require__(411); -var split = __webpack_require__(136); -var extend = __webpack_require__(20); -var isPlainObject = __webpack_require__(76); -var isObject = __webpack_require__(74); +/** + * Customize Snapdragon parser and renderer + */ -module.exports = function(obj, prop, val) { - if (!isObject(obj)) { - return obj; - } +function Braces(options) { + this.options = utils.extend({}, options); +} - if (Array.isArray(prop)) { - prop = [].concat.apply([], prop).join('.'); - } +/** + * Initialize braces + */ - if (typeof prop !== 'string') { - return obj; - } +Braces.prototype.init = function(options) { + var opts = utils.createOptions({}, this.options, options); + this.snapdragon = this.options.snapdragon || new Snapdragon(opts); + this.compiler = this.snapdragon.compiler; + this.parser = this.snapdragon.parser; - var keys = split(prop, {sep: '.', brackets: true}); - var len = keys.length; - var idx = -1; - var current = obj; + compilers(this.snapdragon, opts); + parsers(this.snapdragon, opts); - while (++idx < len) { - var key = keys[idx]; - if (idx !== len - 1) { - if (!isObject(current[key])) { - current[key] = {}; - } - current = current[key]; - continue; + /** + * Call Snapdragon `.parse` method. When AST is returned, we check to + * see if any unclosed braces are left on the stack and, if so, we iterate + * over the stack and correct the AST so that compilers are called in the correct + * order and unbalance braces are properly escaped. + */ + + utils.define(this.snapdragon, 'parse', function(pattern, options) { + var parsed = Snapdragon.prototype.parse.apply(this, arguments); + this.parser.ast.input = pattern; + + var stack = this.parser.stack; + while (stack.length) { + addParent({type: 'brace.close', val: ''}, stack.pop()); } - if (isPlainObject(current[key]) && isPlainObject(val)) { - current[key] = extend({}, current[key], val); - } else { - current[key] = val; + function addParent(node, parent) { + utils.define(node, 'parent', parent); + parent.nodes.push(node); } - } - return obj; + // add non-enumerable parser reference + utils.define(parsed, 'parser', this.parser); + return parsed; + }); }; +/** + * Lazily initialize braces + */ -/***/ }), -/* 345 */ -/***/ (function(module, exports, __webpack_require__) { +Braces.prototype.lazyInit = function(options) { + if (!this.isInitialized) { + this.isInitialized = true; + this.init(options); + } +}; -"use strict"; +/** + * Decorate `.parse` method + */ +Braces.prototype.parse = function(ast, options) { + if (utils.isObject(ast) && ast.nodes) return ast; + this.lazyInit(options); + return this.snapdragon.parse(ast, options); +}; -var isExtendable = __webpack_require__(346); -var forIn = __webpack_require__(347); +/** + * Decorate `.compile` method + */ -function mixinDeep(target, objects) { - var len = arguments.length, i = 0; - while (++i < len) { - var obj = arguments[i]; - if (isObject(obj)) { - forIn(obj, copy, target); - } +Braces.prototype.compile = function(ast, options) { + if (typeof ast === 'string') { + ast = this.parse(ast, options); + } else { + this.lazyInit(options); } - return target; -} + var res = this.snapdragon.compile(ast, options); + return res; +}; /** - * Copy properties from the source object to the - * target object. - * - * @param {*} `val` - * @param {String} `key` + * Expand */ -function copy(val, key) { - var obj = this[key]; - if (isObject(val) && isObject(obj)) { - mixinDeep(obj, val); - } else { - this[key] = val; - } -} +Braces.prototype.expand = function(pattern) { + var ast = this.parse(pattern, {expand: true}); + return this.compile(ast, {expand: true}); +}; /** - * Returns true if `val` is an object or function. - * - * @param {any} val - * @return {Boolean} + * Optimize */ -function isObject(val) { - return isExtendable(val) && !Array.isArray(val); -} +Braces.prototype.optimize = function(pattern) { + var ast = this.parse(pattern, {optimize: true}); + return this.compile(ast, {optimize: true}); +}; /** - * Expose `mixinDeep` + * Expose `Braces` */ -module.exports = mixinDeep; +module.exports = Braces; /***/ }), -/* 346 */ +/* 429 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/*! - * is-extendable + + +var Base = __webpack_require__(430); +var define = __webpack_require__(478); +var Compiler = __webpack_require__(485); +var Parser = __webpack_require__(522); +var utils = __webpack_require__(502); +var regexCache = {}; +var cache = {}; + +/** + * Create a new instance of `Snapdragon` with the given `options`. * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. + * ```js + * var snapdragon = new Snapdragon(); + * ``` + * + * @param {Object} `options` + * @api public */ +function Snapdragon(options) { + Base.call(this, null, options); + this.options = utils.extend({source: 'string'}, this.options); + this.compiler = new Compiler(this.options); + this.parser = new Parser(this.options); + Object.defineProperty(this, 'compilers', { + get: function() { + return this.compiler.compilers; + } + }); -var isPlainObject = __webpack_require__(76); + Object.defineProperty(this, 'parsers', { + get: function() { + return this.parser.parsers; + } + }); -module.exports = function isExtendable(val) { - return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); -}; + Object.defineProperty(this, 'regex', { + get: function() { + return this.parser.regex; + } + }); +} +/** + * Inherit Base + */ -/***/ }), -/* 347 */ -/***/ (function(module, exports, __webpack_require__) { +Base.extend(Snapdragon); -"use strict"; -/*! - * for-in +/** + * Add a parser to `snapdragon.parsers` for capturing the given `type` using + * the specified regex or parser function. A function is useful if you need + * to customize how the token is created and/or have access to the parser + * instance to check options, etc. * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. + * ```js + * snapdragon + * .capture('slash', /^\//) + * .capture('dot', function() { + * var pos = this.position(); + * var m = this.match(/^\./); + * if (!m) return; + * return pos({ + * type: 'dot', + * val: m[0] + * }); + * }); + * ``` + * @param {String} `type` + * @param {RegExp|Function} `regex` + * @return {Object} Returns the parser instance for chaining + * @api public */ +Snapdragon.prototype.capture = function() { + return this.parser.capture.apply(this.parser, arguments); +}; +/** + * Register a plugin `fn`. + * + * ```js + * var snapdragon = new Snapdgragon([options]); + * snapdragon.use(function() { + * console.log(this); //<= snapdragon instance + * console.log(this.parser); //<= parser instance + * console.log(this.compiler); //<= compiler instance + * }); + * ``` + * @param {Object} `fn` + * @api public + */ -module.exports = function forIn(obj, fn, thisArg) { - for (var key in obj) { - if (fn.call(thisArg, obj[key], key, obj) === false) { - break; - } - } +Snapdragon.prototype.use = function(fn) { + fn.call(this, this); + return this; }; +/** + * Parse the given `str`. + * + * ```js + * var snapdragon = new Snapdgragon([options]); + * // register parsers + * snapdragon.parser.use(function() {}); + * + * // parse + * var ast = snapdragon.parse('foo/bar'); + * console.log(ast); + * ``` + * @param {String} `str` + * @param {Object} `options` Set `options.sourcemap` to true to enable source maps. + * @return {Object} Returns an AST. + * @api public + */ + +Snapdragon.prototype.parse = function(str, options) { + this.options = utils.extend({}, this.options, options); + var parsed = this.parser.parse(str, this.options); -/***/ }), -/* 348 */ -/***/ (function(module, exports) { + // add non-enumerable parser reference + define(parsed, 'parser', this.parser); + return parsed; +}; -/*! - * pascalcase +/** + * Compile the given `AST`. * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. + * ```js + * var snapdragon = new Snapdgragon([options]); + * // register plugins + * snapdragon.use(function() {}); + * // register parser plugins + * snapdragon.parser.use(function() {}); + * // register compiler plugins + * snapdragon.compiler.use(function() {}); + * + * // parse + * var ast = snapdragon.parse('foo/bar'); + * + * // compile + * var res = snapdragon.compile(ast); + * console.log(res.output); + * ``` + * @param {Object} `ast` + * @param {Object} `options` + * @return {Object} Returns an object with an `output` property with the rendered string. + * @api public */ -function pascalcase(str) { - if (typeof str !== 'string') { - throw new TypeError('expected a string.'); - } - str = str.replace(/([A-Z])/g, ' $1'); - if (str.length === 1) { return str.toUpperCase(); } - str = str.replace(/^[\W_]+|[\W_]+$/g, '').toLowerCase(); - str = str.charAt(0).toUpperCase() + str.slice(1); - return str.replace(/[\W_]+(\w|$)/g, function (_, ch) { - return ch.toUpperCase(); - }); -} +Snapdragon.prototype.compile = function(ast, options) { + this.options = utils.extend({}, this.options, options); + var compiled = this.compiler.compile(ast, this.options); -module.exports = pascalcase; + // add non-enumerable compiler reference + define(compiled, 'compiler', this.compiler); + return compiled; +}; + +/** + * Expose `Snapdragon` + */ + +module.exports = Snapdragon; + +/** + * Expose `Parser` and `Compiler` + */ + +module.exports.Compiler = Compiler; +module.exports.Parser = Parser; /***/ }), -/* 349 */ +/* 430 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var util = __webpack_require__(14); -var utils = __webpack_require__(350); +var util = __webpack_require__(29); +var define = __webpack_require__(403); +var CacheBase = __webpack_require__(431); +var Emitter = __webpack_require__(432); +var isObject = __webpack_require__(416); +var merge = __webpack_require__(450); +var pascal = __webpack_require__(453); +var cu = __webpack_require__(454); /** - * Expose class utils + * Optionally define a custom `cache` namespace to use. */ -var cu = module.exports; +function namespace(name) { + var Cache = name ? CacheBase.namespace(name) : CacheBase; + var fns = []; -/** - * Expose class utils: `cu` - */ + /** + * Create an instance of `Base` with the given `config` and `options`. + * + * ```js + * // initialize with `config` and `options` + * var app = new Base({isApp: true}, {abc: true}); + * app.set('foo', 'bar'); + * + * // values defined with the given `config` object will be on the root of the instance + * console.log(app.baz); //=> undefined + * console.log(app.foo); //=> 'bar' + * // or use `.get` + * console.log(app.get('isApp')); //=> true + * console.log(app.get('foo')); //=> 'bar' + * + * // values defined with the given `options` object will be on `app.options + * console.log(app.options.abc); //=> true + * ``` + * + * @param {Object} `config` If supplied, this object is passed to [cache-base][] to merge onto the the instance upon instantiation. + * @param {Object} `options` If supplied, this object is used to initialize the `base.options` object. + * @api public + */ -cu.isObject = function isObject(val) { - return utils.isObj(val) || typeof val === 'function'; -}; + function Base(config, options) { + if (!(this instanceof Base)) { + return new Base(config, options); + } + Cache.call(this, config); + this.is('base'); + this.initBase(config, options); + } + + /** + * Inherit cache-base + */ + + util.inherits(Base, Cache); + + /** + * Add static emitter methods + */ + + Emitter(Base); + + /** + * Initialize `Base` defaults with the given `config` object + */ + + Base.prototype.initBase = function(config, options) { + this.options = merge({}, this.options, options); + this.cache = this.cache || {}; + this.define('registered', {}); + if (name) this[name] = {}; + + // make `app._callbacks` non-enumerable + this.define('_callbacks', this._callbacks); + if (isObject(config)) { + this.visit('set', config); + } + Base.run(this, 'use', fns); + }; + + /** + * Set the given `name` on `app._name` and `app.is*` properties. Used for doing + * lookups in plugins. + * + * ```js + * app.is('foo'); + * console.log(app._name); + * //=> 'foo' + * console.log(app.isFoo); + * //=> true + * app.is('bar'); + * console.log(app.isFoo); + * //=> true + * console.log(app.isBar); + * //=> true + * console.log(app._name); + * //=> 'bar' + * ``` + * @name .is + * @param {String} `name` + * @return {Boolean} + * @api public + */ + + Base.prototype.is = function(name) { + if (typeof name !== 'string') { + throw new TypeError('expected name to be a string'); + } + this.define('is' + pascal(name), true); + this.define('_name', name); + this.define('_appname', name); + return this; + }; + + /** + * Returns true if a plugin has already been registered on an instance. + * + * Plugin implementors are encouraged to use this first thing in a plugin + * to prevent the plugin from being called more than once on the same + * instance. + * + * ```js + * var base = new Base(); + * base.use(function(app) { + * if (app.isRegistered('myPlugin')) return; + * // do stuff to `app` + * }); + * + * // to also record the plugin as being registered + * base.use(function(app) { + * if (app.isRegistered('myPlugin', true)) return; + * // do stuff to `app` + * }); + * ``` + * @name .isRegistered + * @emits `plugin` Emits the name of the plugin being registered. Useful for unit tests, to ensure plugins are only registered once. + * @param {String} `name` The plugin name. + * @param {Boolean} `register` If the plugin if not already registered, to record it as being registered pass `true` as the second argument. + * @return {Boolean} Returns true if a plugin is already registered. + * @api public + */ + + Base.prototype.isRegistered = function(name, register) { + if (this.registered.hasOwnProperty(name)) { + return true; + } + if (register !== false) { + this.registered[name] = true; + this.emit('plugin', name); + } + return false; + }; + + /** + * Define a plugin function to be called immediately upon init. Plugins are chainable + * and expose the following arguments to the plugin function: + * + * - `app`: the current instance of `Base` + * - `base`: the [first ancestor instance](#base) of `Base` + * + * ```js + * var app = new Base() + * .use(foo) + * .use(bar) + * .use(baz) + * ``` + * @name .use + * @param {Function} `fn` plugin function to call + * @return {Object} Returns the item instance for chaining. + * @api public + */ -/** - * Returns true if an array has any of the given elements, or an - * object has any of the give keys. - * - * ```js - * cu.has(['a', 'b', 'c'], 'c'); - * //=> true - * - * cu.has(['a', 'b', 'c'], ['c', 'z']); - * //=> true - * - * cu.has({a: 'b', c: 'd'}, ['c', 'z']); - * //=> true - * ``` - * @param {Object} `obj` - * @param {String|Array} `val` - * @return {Boolean} - * @api public - */ + Base.prototype.use = function(fn) { + fn.call(this, this); + return this; + }; -cu.has = function has(obj, val) { - val = cu.arrayify(val); - var len = val.length; + /** + * The `.define` method is used for adding non-enumerable property on the instance. + * Dot-notation is **not supported** with `define`. + * + * ```js + * // arbitrary `render` function using lodash `template` + * app.define('render', function(str, locals) { + * return _.template(str)(locals); + * }); + * ``` + * @name .define + * @param {String} `key` The name of the property to define. + * @param {any} `value` + * @return {Object} Returns the instance for chaining. + * @api public + */ - if (cu.isObject(obj)) { - for (var key in obj) { - if (val.indexOf(key) > -1) { - return true; - } + Base.prototype.define = function(key, val) { + if (isObject(key)) { + return this.visit('define', key); } + define(this, key, val); + return this; + }; - var keys = cu.nativeKeys(obj); - return cu.has(keys, val); - } + /** + * Mix property `key` onto the Base prototype. If base is inherited using + * `Base.extend` this method will be overridden by a new `mixin` method that will + * only add properties to the prototype of the inheriting application. + * + * ```js + * app.mixin('foo', function() { + * // do stuff + * }); + * ``` + * @name .mixin + * @param {String} `key` + * @param {Object|Array} `val` + * @return {Object} Returns the `base` instance for chaining. + * @api public + */ - if (Array.isArray(obj)) { - var arr = obj; - while (len--) { - if (arr.indexOf(val[len]) > -1) { - return true; - } - } - return false; - } + Base.prototype.mixin = function(key, val) { + Base.prototype[key] = val; + return this; + }; - throw new TypeError('expected an array or object.'); -}; + /** + * Non-enumberable mixin array, used by the static [Base.mixin]() method. + */ -/** - * Returns true if an array or object has all of the given values. - * - * ```js - * cu.hasAll(['a', 'b', 'c'], 'c'); - * //=> true - * - * cu.hasAll(['a', 'b', 'c'], ['c', 'z']); - * //=> false - * - * cu.hasAll({a: 'b', c: 'd'}, ['c', 'z']); - * //=> false - * ``` - * @param {Object|Array} `val` - * @param {String|Array} `values` - * @return {Boolean} - * @api public - */ + Base.prototype.mixins = Base.prototype.mixins || []; -cu.hasAll = function hasAll(val, values) { - values = cu.arrayify(values); - var len = values.length; - while (len--) { - if (!cu.has(val, values[len])) { - return false; + /** + * Getter/setter used when creating nested instances of `Base`, for storing a reference + * to the first ancestor instance. This works by setting an instance of `Base` on the `parent` + * property of a "child" instance. The `base` property defaults to the current instance if + * no `parent` property is defined. + * + * ```js + * // create an instance of `Base`, this is our first ("base") instance + * var first = new Base(); + * first.foo = 'bar'; // arbitrary property, to make it easier to see what's happening later + * + * // create another instance + * var second = new Base(); + * // create a reference to the first instance (`first`) + * second.parent = first; + * + * // create another instance + * var third = new Base(); + * // create a reference to the previous instance (`second`) + * // repeat this pattern every time a "child" instance is created + * third.parent = second; + * + * // we can always access the first instance using the `base` property + * console.log(first.base.foo); + * //=> 'bar' + * console.log(second.base.foo); + * //=> 'bar' + * console.log(third.base.foo); + * //=> 'bar' + * // and now you know how to get to third base ;) + * ``` + * @name .base + * @api public + */ + + Object.defineProperty(Base.prototype, 'base', { + configurable: true, + get: function() { + return this.parent ? this.parent.base : this; } - } - return true; -}; + }); -/** - * Cast the given value to an array. - * - * ```js - * cu.arrayify('foo'); - * //=> ['foo'] - * - * cu.arrayify(['foo']); - * //=> ['foo'] - * ``` - * - * @param {String|Array} `val` - * @return {Array} - * @api public - */ + /** + * Static method for adding global plugin functions that will + * be added to an instance when created. + * + * ```js + * Base.use(function(app) { + * app.foo = 'bar'; + * }); + * var app = new Base(); + * console.log(app.foo); + * //=> 'bar' + * ``` + * @name #use + * @param {Function} `fn` Plugin function to use on each instance. + * @return {Object} Returns the `Base` constructor for chaining + * @api public + */ -cu.arrayify = function arrayify(val) { - return val ? (Array.isArray(val) ? val : [val]) : []; -}; + define(Base, 'use', function(fn) { + fns.push(fn); + return Base; + }); -/** - * Noop - */ + /** + * Run an array of functions by passing each function + * to a method on the given object specified by the given property. + * + * @param {Object} `obj` Object containing method to use. + * @param {String} `prop` Name of the method on the object to use. + * @param {Array} `arr` Array of functions to pass to the method. + */ -cu.noop = function noop() { - return; -}; + define(Base, 'run', function(obj, prop, arr) { + var len = arr.length, i = 0; + while (len--) { + obj[prop](arr[i++]); + } + return Base; + }); -/** - * Returns the first argument passed to the function. - */ + /** + * Static method for inheriting the prototype and static methods of the `Base` class. + * This method greatly simplifies the process of creating inheritance-based applications. + * See [static-extend][] for more details. + * + * ```js + * var extend = cu.extend(Parent); + * Parent.extend(Child); + * + * // optional methods + * Parent.extend(Child, { + * foo: function() {}, + * bar: function() {} + * }); + * ``` + * @name #extend + * @param {Function} `Ctor` constructor to extend + * @param {Object} `methods` Optional prototype properties to mix in. + * @return {Object} Returns the `Base` constructor for chaining + * @api public + */ -cu.identity = function identity(val) { - return val; -}; + define(Base, 'extend', cu.extend(Base, function(Ctor, Parent) { + Ctor.prototype.mixins = Ctor.prototype.mixins || []; -/** - * Returns true if a value has a `contructor` - * - * ```js - * cu.hasConstructor({}); - * //=> true - * - * cu.hasConstructor(Object.create(null)); - * //=> false - * ``` - * @param {Object} `value` - * @return {Boolean} - * @api public - */ + define(Ctor, 'mixin', function(fn) { + var mixin = fn(Ctor.prototype, Ctor); + if (typeof mixin === 'function') { + Ctor.prototype.mixins.push(mixin); + } + return Ctor; + }); -cu.hasConstructor = function hasConstructor(val) { - return cu.isObject(val) && typeof val.constructor !== 'undefined'; -}; + define(Ctor, 'mixins', function(Child) { + Base.run(Child, 'mixin', Ctor.prototype.mixins); + return Ctor; + }); -/** - * Get the native `ownPropertyNames` from the constructor of the - * given `object`. An empty array is returned if the object does - * not have a constructor. - * - * ```js - * cu.nativeKeys({a: 'b', b: 'c', c: 'd'}) - * //=> ['a', 'b', 'c'] - * - * cu.nativeKeys(function(){}) - * //=> ['length', 'caller'] - * ``` - * - * @param {Object} `obj` Object that has a `constructor`. - * @return {Array} Array of keys. - * @api public - */ + Ctor.prototype.mixin = function(key, value) { + Ctor.prototype[key] = value; + return this; + }; + return Base; + })); -cu.nativeKeys = function nativeKeys(val) { - if (!cu.hasConstructor(val)) return []; - return Object.getOwnPropertyNames(val); -}; + /** + * Used for adding methods to the `Base` prototype, and/or to the prototype of child instances. + * When a mixin function returns a function, the returned function is pushed onto the `.mixins` + * array, making it available to be used on inheriting classes whenever `Base.mixins()` is + * called (e.g. `Base.mixins(Child)`). + * + * ```js + * Base.mixin(function(proto) { + * proto.foo = function(msg) { + * return 'foo ' + msg; + * }; + * }); + * ``` + * @name #mixin + * @param {Function} `fn` Function to call + * @return {Object} Returns the `Base` constructor for chaining + * @api public + */ -/** - * Returns property descriptor `key` if it's an "own" property - * of the given object. - * - * ```js - * function App() {} - * Object.defineProperty(App.prototype, 'count', { - * get: function() { - * return Object.keys(this).length; - * } - * }); - * cu.getDescriptor(App.prototype, 'count'); - * // returns: - * // { - * // get: [Function], - * // set: undefined, - * // enumerable: false, - * // configurable: false - * // } - * ``` - * - * @param {Object} `obj` - * @param {String} `key` - * @return {Object} Returns descriptor `key` - * @api public - */ + define(Base, 'mixin', function(fn) { + var mixin = fn(Base.prototype, Base); + if (typeof mixin === 'function') { + Base.prototype.mixins.push(mixin); + } + return Base; + }); -cu.getDescriptor = function getDescriptor(obj, key) { - if (!cu.isObject(obj)) { - throw new TypeError('expected an object.'); - } - if (typeof key !== 'string') { - throw new TypeError('expected key to be a string.'); - } - return Object.getOwnPropertyDescriptor(obj, key); -}; + /** + * Static method for running global mixin functions against a child constructor. + * Mixins must be registered before calling this method. + * + * ```js + * Base.extend(Child); + * Base.mixins(Child); + * ``` + * @name #mixins + * @param {Function} `Child` Constructor function of a child class + * @return {Object} Returns the `Base` constructor for chaining + * @api public + */ -/** - * Copy a descriptor from one object to another. - * - * ```js - * function App() {} - * Object.defineProperty(App.prototype, 'count', { - * get: function() { - * return Object.keys(this).length; - * } - * }); - * var obj = {}; - * cu.copyDescriptor(obj, App.prototype, 'count'); - * ``` - * @param {Object} `receiver` - * @param {Object} `provider` - * @param {String} `name` - * @return {Object} - * @api public - */ + define(Base, 'mixins', function(Child) { + Base.run(Child, 'mixin', Base.prototype.mixins); + return Base; + }); -cu.copyDescriptor = function copyDescriptor(receiver, provider, name) { - if (!cu.isObject(receiver)) { - throw new TypeError('expected receiving object to be an object.'); - } - if (!cu.isObject(provider)) { - throw new TypeError('expected providing object to be an object.'); - } - if (typeof name !== 'string') { - throw new TypeError('expected name to be a string.'); - } + /** + * Similar to `util.inherit`, but copies all static properties, prototype properties, and + * getters/setters from `Provider` to `Receiver`. See [class-utils][]{#inherit} for more details. + * + * ```js + * Base.inherit(Foo, Bar); + * ``` + * @name #inherit + * @param {Function} `Receiver` Receiving (child) constructor + * @param {Function} `Provider` Providing (parent) constructor + * @return {Object} Returns the `Base` constructor for chaining + * @api public + */ - var val = cu.getDescriptor(provider, name); - if (val) Object.defineProperty(receiver, name, val); -}; + define(Base, 'inherit', cu.inherit); + define(Base, 'bubble', cu.bubble); + return Base; +} /** - * Copy static properties, prototype properties, and descriptors - * from one object to another. - * - * @param {Object} `receiver` - * @param {Object} `provider` - * @param {String|Array} `omit` One or more properties to omit - * @return {Object} - * @api public + * Expose `Base` with default settings */ -cu.copy = function copy(receiver, provider, omit) { - if (!cu.isObject(receiver)) { - throw new TypeError('expected receiving object to be an object.'); - } - if (!cu.isObject(provider)) { - throw new TypeError('expected providing object to be an object.'); - } - var props = Object.getOwnPropertyNames(provider); - var keys = Object.keys(provider); - var len = props.length, - key; - omit = cu.arrayify(omit); - - while (len--) { - key = props[len]; - - if (cu.has(keys, key)) { - utils.define(receiver, key, provider[key]); - } else if (!(key in receiver) && !cu.has(omit, key)) { - cu.copyDescriptor(receiver, provider, key); - } - } -}; +module.exports = namespace(); /** - * Inherit the static properties, prototype properties, and descriptors - * from of an object. - * - * @param {Object} `receiver` - * @param {Object} `provider` - * @param {String|Array} `omit` One or more properties to omit - * @return {Object} - * @api public + * Allow users to define a namespace */ -cu.inherit = function inherit(receiver, provider, omit) { - if (!cu.isObject(receiver)) { - throw new TypeError('expected receiving object to be an object.'); - } - if (!cu.isObject(provider)) { - throw new TypeError('expected providing object to be an object.'); - } - - var keys = []; - for (var key in provider) { - keys.push(key); - receiver[key] = provider[key]; - } - - keys = keys.concat(cu.arrayify(omit)); +module.exports.namespace = namespace; - var a = provider.prototype || provider; - var b = receiver.prototype || receiver; - cu.copy(b, a, keys); -}; -/** - * Returns a function for extending the static properties, - * prototype properties, and descriptors from the `Parent` - * constructor onto `Child` constructors. - * - * ```js - * var extend = cu.extend(Parent); - * Parent.extend(Child); - * - * // optional methods - * Parent.extend(Child, { - * foo: function() {}, - * bar: function() {} - * }); - * ``` - * @param {Function} `Parent` Parent ctor - * @param {Function} `extend` Optional extend function to handle custom extensions. Useful when updating methods that require a specific prototype. - * @param {Function} `Child` Child ctor - * @param {Object} `proto` Optionally pass additional prototype properties to inherit. - * @return {Object} - * @api public - */ +/***/ }), +/* 431 */ +/***/ (function(module, exports, __webpack_require__) { -cu.extend = function() { - // keep it lazy, instead of assigning to `cu.extend` - return utils.staticExtend.apply(null, arguments); -}; +"use strict"; + + +var isObject = __webpack_require__(416); +var Emitter = __webpack_require__(432); +var visit = __webpack_require__(433); +var toPath = __webpack_require__(436); +var union = __webpack_require__(437); +var del = __webpack_require__(441); +var get = __webpack_require__(439); +var has = __webpack_require__(446); +var set = __webpack_require__(449); /** - * Bubble up events emitted from static methods on the Parent ctor. + * Create a `Cache` constructor that when instantiated will + * store values on the given `prop`. * - * @param {Object} `Parent` - * @param {Array} `events` Event names to bubble up + * ```js + * var Cache = require('cache-base').namespace('data'); + * var cache = new Cache(); + * + * cache.set('foo', 'bar'); + * //=> {data: {foo: 'bar'}} + * ``` + * @param {String} `prop` The property name to use for storing values. + * @return {Function} Returns a custom `Cache` constructor * @api public */ -cu.bubble = function(Parent, events) { - events = events || []; - Parent.bubble = function(Child, arr) { - if (Array.isArray(arr)) { - events = utils.union([], events, arr); +function namespace(prop) { + + /** + * Create a new `Cache`. Internally the `Cache` constructor is created using + * the `namespace` function, with `cache` defined as the storage object. + * + * ```js + * var app = new Cache(); + * ``` + * @param {Object} `cache` Optionally pass an object to initialize with. + * @constructor + * @api public + */ + + function Cache(cache) { + if (prop) { + this[prop] = {}; } - var len = events.length; - var idx = -1; - while (++idx < len) { - var name = events[idx]; - Parent.on(name, Child.emit.bind(Child, name)); + if (cache) { + this.set(cache); } - cu.bubble(Child, events); - }; -}; + } + /** + * Inherit Emitter + */ -/***/ }), -/* 350 */ -/***/ (function(module, exports, __webpack_require__) { + Emitter(Cache.prototype); -"use strict"; + /** + * Assign `value` to `key`. Also emits `set` with + * the key and value. + * + * ```js + * app.on('set', function(key, val) { + * // do something when `set` is emitted + * }); + * + * app.set(key, value); + * + * // also takes an object or array + * app.set({name: 'Halle'}); + * app.set([{foo: 'bar'}, {baz: 'quux'}]); + * console.log(app); + * //=> {name: 'Halle', foo: 'bar', baz: 'quux'} + * ``` + * + * @name .set + * @emits `set` with `key` and `value` as arguments. + * @param {String} `key` + * @param {any} `value` + * @return {Object} Returns the instance for chaining. + * @api public + */ + Cache.prototype.set = function(key, val) { + if (Array.isArray(key) && arguments.length === 2) { + key = toPath(key); + } + if (isObject(key) || Array.isArray(key)) { + this.visit('set', key); + } else { + set(prop ? this[prop] : this, key, val); + this.emit('set', key, val); + } + return this; + }; -var utils = {}; + /** + * Union `array` to `key`. Also emits `set` with + * the key and value. + * + * ```js + * app.union('a.b', ['foo']); + * app.union('a.b', ['bar']); + * console.log(app.get('a')); + * //=> {b: ['foo', 'bar']} + * ``` + * @name .union + * @param {String} `key` + * @param {any} `value` + * @return {Object} Returns the instance for chaining. + * @api public + */ + Cache.prototype.union = function(key, val) { + if (Array.isArray(key) && arguments.length === 2) { + key = toPath(key); + } + var ctx = prop ? this[prop] : this; + union(ctx, key, arrayify(val)); + this.emit('union', val); + return this; + }; + /** + * Return the value of `key`. Dot notation may be used + * to get [nested property values][get-value]. + * + * ```js + * app.set('a.b.c', 'd'); + * app.get('a.b'); + * //=> {c: 'd'} + * + * app.get(['a', 'b']); + * //=> {c: 'd'} + * ``` + * + * @name .get + * @emits `get` with `key` and `value` as arguments. + * @param {String} `key` The name of the property to get. Dot-notation may be used. + * @return {any} Returns the value of `key` + * @api public + */ -/** - * Lazily required module dependencies - */ + Cache.prototype.get = function(key) { + key = toPath(arguments); -utils.union = __webpack_require__(142); -utils.define = __webpack_require__(351); -utils.isObj = __webpack_require__(30); -utils.staticExtend = __webpack_require__(358); + var ctx = prop ? this[prop] : this; + var val = get(ctx, key); + this.emit('get', key, val); + return val; + }; -/** - * Expose `utils` - */ + /** + * Return true if app has a stored value for `key`, + * false only if value is `undefined`. + * + * ```js + * app.set('foo', 'bar'); + * app.has('foo'); + * //=> true + * ``` + * + * @name .has + * @emits `has` with `key` and true or false as arguments. + * @param {String} `key` + * @return {Boolean} + * @api public + */ -module.exports = utils; + Cache.prototype.has = function(key) { + key = toPath(arguments); + var ctx = prop ? this[prop] : this; + var val = get(ctx, key); -/***/ }), -/* 351 */ -/***/ (function(module, exports, __webpack_require__) { + var has = typeof val !== 'undefined'; + this.emit('has', key, has); + return has; + }; -"use strict"; -/*! - * define-property - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. - */ + /** + * Delete one or more properties from the instance. + * + * ```js + * app.del(); // delete all + * // or + * app.del('foo'); + * // or + * app.del(['foo', 'bar']); + * ``` + * @name .del + * @emits `del` with the `key` as the only argument. + * @param {String|Array} `key` Property name or array of property names. + * @return {Object} Returns the instance for chaining. + * @api public + */ + Cache.prototype.del = function(key) { + if (Array.isArray(key)) { + this.visit('del', key); + } else { + del(prop ? this[prop] : this, key); + this.emit('del', key); + } + return this; + }; + /** + * Reset the entire cache to an empty object. + * + * ```js + * app.clear(); + * ``` + * @api public + */ -var isDescriptor = __webpack_require__(352); + Cache.prototype.clear = function() { + if (prop) { + this[prop] = {}; + } + }; -module.exports = function defineProperty(obj, prop, val) { - if (typeof obj !== 'object' && typeof obj !== 'function') { - throw new TypeError('expected an object or function.'); - } + /** + * Visit `method` over the properties in the given object, or map + * visit over the object-elements in an array. + * + * @name .visit + * @param {String} `method` The name of the `base` method to call. + * @param {Object|Array} `val` The object or array to iterate over. + * @return {Object} Returns the instance for chaining. + * @api public + */ - if (typeof prop !== 'string') { - throw new TypeError('expected `prop` to be a string.'); - } + Cache.prototype.visit = function(method, val) { + visit(this, method, val); + return this; + }; - if (isDescriptor(val) && ('set' in val || 'get' in val)) { - return Object.defineProperty(obj, prop, val); - } + return Cache; +} - return Object.defineProperty(obj, prop, { - configurable: true, - enumerable: false, - writable: true, - value: val - }); -}; +/** + * Cast val to an array + */ + +function arrayify(val) { + return val ? (Array.isArray(val) ? val : [val]) : []; +} +/** + * Expose `Cache` + */ -/***/ }), -/* 352 */ -/***/ (function(module, exports, __webpack_require__) { +module.exports = namespace(); -"use strict"; -/*! - * is-descriptor - * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. +/** + * Expose `Cache.namespace` */ +module.exports.namespace = namespace; -var typeOf = __webpack_require__(353); -var isAccessor = __webpack_require__(354); -var isData = __webpack_require__(356); +/***/ }), +/* 432 */ +/***/ (function(module, exports, __webpack_require__) { -module.exports = function isDescriptor(obj, key) { - if (typeOf(obj) !== 'object') { - return false; - } - if ('get' in obj) { - return isAccessor(obj, key); - } - return isData(obj, key); -}; + +/** + * Expose `Emitter`. + */ + +if (true) { + module.exports = Emitter; +} + +/** + * Initialize a new `Emitter`. + * + * @api public + */ + +function Emitter(obj) { + if (obj) return mixin(obj); +}; + +/** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + +function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; +} + +/** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.on = +Emitter.prototype.addEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks['$' + event] = this._callbacks['$' + event] || []) + .push(fn); + return this; +}; + +/** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.once = function(event, fn){ + function on() { + this.off(event, on); + fn.apply(this, arguments); + } + + on.fn = fn; + this.on(event, on); + return this; +}; + +/** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.off = +Emitter.prototype.removeListener = +Emitter.prototype.removeAllListeners = +Emitter.prototype.removeEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + + // all + if (0 == arguments.length) { + this._callbacks = {}; + return this; + } + + // specific event + var callbacks = this._callbacks['$' + event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks['$' + event]; + return this; + } + + // remove specific handler + var cb; + for (var i = 0; i < callbacks.length; i++) { + cb = callbacks[i]; + if (cb === fn || cb.fn === fn) { + callbacks.splice(i, 1); + break; + } + } + return this; +}; + +/** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + +Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + var args = [].slice.call(arguments, 1) + , callbacks = this._callbacks['$' + event]; + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; +}; + +/** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + +Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks['$' + event] || []; +}; + +/** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + +Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; +}; /***/ }), -/* 353 */ -/***/ (function(module, exports) { - -var toString = Object.prototype.toString; +/* 433 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Get the native `typeof` a value. +"use strict"; +/*! + * collection-visit * - * @param {*} `val` - * @return {*} Native javascript type + * Copyright (c) 2015, 2017, Jon Schlinkert. + * Released under the MIT License. */ -module.exports = function kindOf(val) { - var type = typeof val; - - // primitivies - if (type === 'undefined') { - return 'undefined'; - } - if (val === null) { - return 'null'; - } - if (val === true || val === false || val instanceof Boolean) { - return 'boolean'; - } - if (type === 'string' || val instanceof String) { - return 'string'; - } - if (type === 'number' || val instanceof Number) { - return 'number'; - } - - // functions - if (type === 'function' || val instanceof Function) { - if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') { - return 'generatorfunction'; - } - return 'function'; - } - - // array - if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { - return 'array'; - } - - // check for instances of RegExp and Date before calling `toString` - if (val instanceof RegExp) { - return 'regexp'; - } - if (val instanceof Date) { - return 'date'; - } - // other objects - type = toString.call(val); - if (type === '[object RegExp]') { - return 'regexp'; - } - if (type === '[object Date]') { - return 'date'; - } - if (type === '[object Arguments]') { - return 'arguments'; - } - if (type === '[object Error]') { - return 'error'; - } - if (type === '[object Promise]') { - return 'promise'; - } +var visit = __webpack_require__(434); +var mapVisit = __webpack_require__(435); - // buffer - if (isBuffer(val)) { - return 'buffer'; - } +module.exports = function(collection, method, val) { + var result; - // es6: Map, WeakMap, Set, WeakSet - if (type === '[object Set]') { - return 'set'; - } - if (type === '[object WeakSet]') { - return 'weakset'; - } - if (type === '[object Map]') { - return 'map'; - } - if (type === '[object WeakMap]') { - return 'weakmap'; - } - if (type === '[object Symbol]') { - return 'symbol'; - } - - if (type === '[object Map Iterator]') { - return 'mapiterator'; - } - if (type === '[object Set Iterator]') { - return 'setiterator'; - } - if (type === '[object String Iterator]') { - return 'stringiterator'; - } - if (type === '[object Array Iterator]') { - return 'arrayiterator'; - } - - // typed arrays - if (type === '[object Int8Array]') { - return 'int8array'; - } - if (type === '[object Uint8Array]') { - return 'uint8array'; - } - if (type === '[object Uint8ClampedArray]') { - return 'uint8clampedarray'; - } - if (type === '[object Int16Array]') { - return 'int16array'; - } - if (type === '[object Uint16Array]') { - return 'uint16array'; - } - if (type === '[object Int32Array]') { - return 'int32array'; - } - if (type === '[object Uint32Array]') { - return 'uint32array'; - } - if (type === '[object Float32Array]') { - return 'float32array'; + if (typeof val === 'string' && (method in collection)) { + var args = [].slice.call(arguments, 2); + result = collection[method].apply(collection, args); + } else if (Array.isArray(val)) { + result = mapVisit.apply(null, arguments); + } else { + result = visit.apply(null, arguments); } - if (type === '[object Float64Array]') { - return 'float64array'; + + if (typeof result !== 'undefined') { + return result; } - // must be a plain object - return 'object'; + return collection; }; -/** - * If you need to support Safari 5-7 (8-10 yr-old browser), - * take a look at https://github.com/feross/is-buffer - */ - -function isBuffer(val) { - return val.constructor - && typeof val.constructor.isBuffer === 'function' - && val.constructor.isBuffer(val); -} - /***/ }), -/* 354 */ +/* 434 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /*! - * is-accessor-descriptor + * object-visit * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. + * Copyright (c) 2015, 2017, Jon Schlinkert. + * Released under the MIT License. */ -var typeOf = __webpack_require__(355); - -// accessor descriptor properties -var accessor = { - get: 'function', - set: 'function', - configurable: 'boolean', - enumerable: 'boolean' -}; - -function isAccessorDescriptor(obj, prop) { - if (typeof prop === 'string') { - var val = Object.getOwnPropertyDescriptor(obj, prop); - return typeof val !== 'undefined'; - } - - if (typeOf(obj) !== 'object') { - return false; - } +var isObject = __webpack_require__(416); - if (has(obj, 'value') || has(obj, 'writable')) { - return false; +module.exports = function visit(thisArg, method, target, val) { + if (!isObject(thisArg) && typeof thisArg !== 'function') { + throw new Error('object-visit expects `thisArg` to be an object.'); } - if (!has(obj, 'get') || typeof obj.get !== 'function') { - return false; + if (typeof method !== 'string') { + throw new Error('object-visit expects `method` name to be a string'); } - // tldr: it's valid to have "set" be undefined - // "set" might be undefined if `Object.getOwnPropertyDescriptor` - // was used to get the value, and only `get` was defined by the user - if (has(obj, 'set') && typeof obj[key] !== 'function' && typeof obj[key] !== 'undefined') { - return false; + if (typeof thisArg[method] !== 'function') { + return thisArg; } - for (var key in obj) { - if (!accessor.hasOwnProperty(key)) { - continue; - } - - if (typeOf(obj[key]) === accessor[key]) { - continue; - } + var args = [].slice.call(arguments, 3); + target = target || {}; - if (typeof obj[key] !== 'undefined') { - return false; - } + for (var key in target) { + var arr = [key, target[key]].concat(args); + thisArg[method].apply(thisArg, arr); } - return true; -} - -function has(obj, key) { - return {}.hasOwnProperty.call(obj, key); -} - -/** - * Expose `isAccessorDescriptor` - */ - -module.exports = isAccessorDescriptor; + return thisArg; +}; /***/ }), -/* 355 */ +/* 435 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(22); -var toString = Object.prototype.toString; +"use strict"; + + +var util = __webpack_require__(29); +var visit = __webpack_require__(434); /** - * Get the native `typeof` a value. + * Map `visit` over an array of objects. * - * @param {*} `val` - * @return {*} Native javascript type + * @param {Object} `collection` The context in which to invoke `method` + * @param {String} `method` Name of the method to call on `collection` + * @param {Object} `arr` Array of objects. */ -module.exports = function kindOf(val) { - // primitivies - if (typeof val === 'undefined') { - return 'undefined'; - } - if (val === null) { - return 'null'; - } - if (val === true || val === false || val instanceof Boolean) { - return 'boolean'; - } - if (typeof val === 'string' || val instanceof String) { - return 'string'; - } - if (typeof val === 'number' || val instanceof Number) { - return 'number'; - } - - // functions - if (typeof val === 'function' || val instanceof Function) { - return 'function'; - } - - // array - if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { - return 'array'; - } - - // check for instances of RegExp and Date before calling `toString` - if (val instanceof RegExp) { - return 'regexp'; - } - if (val instanceof Date) { - return 'date'; - } - - // other objects - var type = toString.call(val); - - if (type === '[object RegExp]') { - return 'regexp'; - } - if (type === '[object Date]') { - return 'date'; - } - if (type === '[object Arguments]') { - return 'arguments'; - } - if (type === '[object Error]') { - return 'error'; +module.exports = function mapVisit(collection, method, val) { + if (isObject(val)) { + return visit.apply(null, arguments); } - // buffer - if (isBuffer(val)) { - return 'buffer'; + if (!Array.isArray(val)) { + throw new TypeError('expected an array: ' + util.inspect(val)); } - // es6: Map, WeakMap, Set, WeakSet - if (type === '[object Set]') { - return 'set'; - } - if (type === '[object WeakSet]') { - return 'weakset'; - } - if (type === '[object Map]') { - return 'map'; - } - if (type === '[object WeakMap]') { - return 'weakmap'; - } - if (type === '[object Symbol]') { - return 'symbol'; - } + var args = [].slice.call(arguments, 3); - // typed arrays - if (type === '[object Int8Array]') { - return 'int8array'; - } - if (type === '[object Uint8Array]') { - return 'uint8array'; - } - if (type === '[object Uint8ClampedArray]') { - return 'uint8clampedarray'; - } - if (type === '[object Int16Array]') { - return 'int16array'; - } - if (type === '[object Uint16Array]') { - return 'uint16array'; - } - if (type === '[object Int32Array]') { - return 'int32array'; - } - if (type === '[object Uint32Array]') { - return 'uint32array'; - } - if (type === '[object Float32Array]') { - return 'float32array'; - } - if (type === '[object Float64Array]') { - return 'float64array'; + for (var i = 0; i < val.length; i++) { + var ele = val[i]; + if (isObject(ele)) { + visit.apply(null, [collection, method, ele].concat(args)); + } else { + collection[method].apply(collection, [ele].concat(args)); + } } - - // must be a plain object - return 'object'; }; +function isObject(val) { + return val && (typeof val === 'function' || (!Array.isArray(val) && typeof val === 'object')); +} + /***/ }), -/* 356 */ +/* 436 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /*! - * is-data-descriptor + * to-object-path * * Copyright (c) 2015, Jon Schlinkert. * Licensed under the MIT License. @@ -39759,613 +41209,466 @@ module.exports = function kindOf(val) { -var typeOf = __webpack_require__(357); +var typeOf = __webpack_require__(421); -// data descriptor properties -var data = { - configurable: 'boolean', - enumerable: 'boolean', - writable: 'boolean' +module.exports = function toPath(args) { + if (typeOf(args) !== 'arguments') { + args = arguments; + } + return filter(args).join('.'); }; -function isDataDescriptor(obj, prop) { - if (typeOf(obj) !== 'object') { - return false; - } +function filter(arr) { + var len = arr.length; + var idx = -1; + var res = []; - if (typeof prop === 'string') { - var val = Object.getOwnPropertyDescriptor(obj, prop); - return typeof val !== 'undefined'; + while (++idx < len) { + var ele = arr[idx]; + if (typeOf(ele) === 'arguments' || Array.isArray(ele)) { + res.push.apply(res, filter(ele)); + } else if (typeof ele === 'string') { + res.push(ele); + } } + return res; +} - if (!('value' in obj) && !('writable' in obj)) { - return false; - } - for (var key in obj) { - if (key === 'value') continue; +/***/ }), +/* 437 */ +/***/ (function(module, exports, __webpack_require__) { - if (!data.hasOwnProperty(key)) { - continue; - } +"use strict"; - if (typeOf(obj[key]) === data[key]) { - continue; - } - if (typeof obj[key] !== 'undefined') { - return false; - } +var isObject = __webpack_require__(400); +var union = __webpack_require__(438); +var get = __webpack_require__(439); +var set = __webpack_require__(440); + +module.exports = function unionValue(obj, prop, value) { + if (!isObject(obj)) { + throw new TypeError('union-value expects the first argument to be an object.'); } - return true; -} -/** - * Expose `isDataDescriptor` - */ + if (typeof prop !== 'string') { + throw new TypeError('union-value expects `prop` to be a string.'); + } -module.exports = isDataDescriptor; + var arr = arrayify(get(obj, prop)); + set(obj, prop, union(arr, arrayify(value))); + return obj; +}; + +function arrayify(val) { + if (val === null || typeof val === 'undefined') { + return []; + } + if (Array.isArray(val)) { + return val; + } + return [val]; +} /***/ }), -/* 357 */ +/* 438 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(22); -var toString = Object.prototype.toString; +"use strict"; -/** - * Get the native `typeof` a value. - * - * @param {*} `val` - * @return {*} Native javascript type - */ -module.exports = function kindOf(val) { - // primitivies - if (typeof val === 'undefined') { - return 'undefined'; - } - if (val === null) { - return 'null'; - } - if (val === true || val === false || val instanceof Boolean) { - return 'boolean'; - } - if (typeof val === 'string' || val instanceof String) { - return 'string'; - } - if (typeof val === 'number' || val instanceof Number) { - return 'number'; +module.exports = function union(init) { + if (!Array.isArray(init)) { + throw new TypeError('arr-union expects the first argument to be an array.'); } - // functions - if (typeof val === 'function' || val instanceof Function) { - return 'function'; - } + var len = arguments.length; + var i = 0; - // array - if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { - return 'array'; - } + while (++i < len) { + var arg = arguments[i]; + if (!arg) continue; - // check for instances of RegExp and Date before calling `toString` - if (val instanceof RegExp) { - return 'regexp'; - } - if (val instanceof Date) { - return 'date'; - } + if (!Array.isArray(arg)) { + arg = [arg]; + } - // other objects - var type = toString.call(val); + for (var j = 0; j < arg.length; j++) { + var ele = arg[j]; - if (type === '[object RegExp]') { - return 'regexp'; - } - if (type === '[object Date]') { - return 'date'; - } - if (type === '[object Arguments]') { - return 'arguments'; - } - if (type === '[object Error]') { - return 'error'; + if (init.indexOf(ele) >= 0) { + continue; + } + init.push(ele); + } } + return init; +}; - // buffer - if (isBuffer(val)) { - return 'buffer'; - } - // es6: Map, WeakMap, Set, WeakSet - if (type === '[object Set]') { - return 'set'; - } - if (type === '[object WeakSet]') { - return 'weakset'; - } - if (type === '[object Map]') { - return 'map'; - } - if (type === '[object WeakMap]') { - return 'weakmap'; - } - if (type === '[object Symbol]') { - return 'symbol'; - } +/***/ }), +/* 439 */ +/***/ (function(module, exports) { - // typed arrays - if (type === '[object Int8Array]') { - return 'int8array'; - } - if (type === '[object Uint8Array]') { - return 'uint8array'; - } - if (type === '[object Uint8ClampedArray]') { - return 'uint8clampedarray'; - } - if (type === '[object Int16Array]') { - return 'int16array'; - } - if (type === '[object Uint16Array]') { - return 'uint16array'; - } - if (type === '[object Int32Array]') { - return 'int32array'; - } - if (type === '[object Uint32Array]') { - return 'uint32array'; - } - if (type === '[object Float32Array]') { - return 'float32array'; +/*! + * get-value + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. + */ + +module.exports = function(obj, prop, a, b, c) { + if (!isObject(obj) || !prop) { + return obj; } - if (type === '[object Float64Array]') { - return 'float64array'; + + prop = toString(prop); + + // allowing for multiple properties to be passed as + // a string or array, but much faster (3-4x) than doing + // `[].slice.call(arguments)` + if (a) prop += '.' + toString(a); + if (b) prop += '.' + toString(b); + if (c) prop += '.' + toString(c); + + if (prop in obj) { + return obj[prop]; } - // must be a plain object - return 'object'; + var segs = prop.split('.'); + var len = segs.length; + var i = -1; + + while (obj && (++i < len)) { + var key = segs[i]; + while (key[key.length - 1] === '\\') { + key = key.slice(0, -1) + '.' + segs[++i]; + } + obj = obj[key]; + } + return obj; }; +function isObject(val) { + return val !== null && (typeof val === 'object' || typeof val === 'function'); +} + +function toString(val) { + if (!val) return ''; + if (Array.isArray(val)) { + return val.join('.'); + } + return val; +} + /***/ }), -/* 358 */ +/* 440 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /*! - * static-extend + * set-value * - * Copyright (c) 2016, Jon Schlinkert. - * Licensed under the MIT License. + * Copyright (c) 2014-2015, 2017, Jon Schlinkert. + * Released under the MIT License. */ -var copy = __webpack_require__(359); -var define = __webpack_require__(366); -var util = __webpack_require__(14); +var toPath = __webpack_require__(436); +var extend = __webpack_require__(399); +var isPlainObject = __webpack_require__(415); +var isObject = __webpack_require__(400); -/** - * Returns a function for extending the static properties, - * prototype properties, and descriptors from the `Parent` - * constructor onto `Child` constructors. - * - * ```js - * var extend = require('static-extend'); - * Parent.extend = extend(Parent); - * - * // optionally pass a custom merge function as the second arg - * Parent.extend = extend(Parent, function(Child) { - * Child.prototype.mixin = function(key, val) { - * Child.prototype[key] = val; - * }; - * }); - * - * // extend "child" constructors - * Parent.extend(Child); - * - * // optionally define prototype methods as the second arg - * Parent.extend(Child, { - * foo: function() {}, - * bar: function() {} - * }); - * ``` - * @param {Function} `Parent` Parent ctor - * @param {Function} `extendFn` Optional extend function for handling any necessary custom merging. Useful when updating methods that require a specific prototype. - * @param {Function} `Child` Child ctor - * @param {Object} `proto` Optionally pass additional prototype properties to inherit. - * @return {Object} - * @api public - */ +module.exports = function(obj, path, val) { + if (!isObject(obj)) { + return obj; + } -function extend(Parent, extendFn) { - if (typeof Parent !== 'function') { - throw new TypeError('expected Parent to be a function.'); + if (Array.isArray(path)) { + path = toPath(path); } - return function(Ctor, proto) { - if (typeof Ctor !== 'function') { - throw new TypeError('expected Ctor to be a function.'); - } + if (typeof path !== 'string') { + return obj; + } - util.inherits(Ctor, Parent); - copy(Ctor, Parent); + var segs = path.split('.'); + var len = segs.length, i = -1; + var res = obj; + var last; - // proto can be null or a plain object - if (typeof proto === 'object') { - var obj = Object.create(proto); + while (++i < len) { + var key = segs[i]; - for (var k in obj) { - Ctor.prototype[k] = obj[k]; - } + while (key[key.length - 1] === '\\') { + key = key.slice(0, -1) + '.' + segs[++i]; } - // keep a reference to the parent prototype - define(Ctor.prototype, '_parent_', { - configurable: true, - set: function() {}, - get: function() { - return Parent.prototype; - } - }); + if (i === len - 1) { + last = key; + break; + } - if (typeof extendFn === 'function') { - extendFn(Ctor, Parent); + if (!isObject(obj[key])) { + obj[key] = {}; } + obj = obj[key]; + } - Ctor.extend = extend(Ctor, extendFn); - }; -}; + if (obj.hasOwnProperty(last) && isObject(obj[last])) { + if (isPlainObject(val)) { + extend(obj[last], val); + } else { + obj[last] = val; + } -/** - * Expose `extend` - */ + } else { + obj[last] = val; + } + return res; +}; -module.exports = extend; /***/ }), -/* 359 */ +/* 441 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +/*! + * unset-value + * + * Copyright (c) 2015, 2017, Jon Schlinkert. + * Released under the MIT License. + */ -var typeOf = __webpack_require__(49); -var copyDescriptor = __webpack_require__(360); -var define = __webpack_require__(361); -/** - * Copy static properties, prototype properties, and descriptors from one object to another. - * - * ```js - * function App() {} - * var proto = App.prototype; - * App.prototype.set = function() {}; - * App.prototype.get = function() {}; - * - * var obj = {}; - * copy(obj, proto); - * ``` - * @param {Object} `receiver` - * @param {Object} `provider` - * @param {String|Array} `omit` One or more properties to omit - * @return {Object} - * @api public - */ +var isObject = __webpack_require__(416); +var has = __webpack_require__(442); -function copy(receiver, provider, omit) { - if (!isObject(receiver)) { - throw new TypeError('expected receiving object to be an object.'); +module.exports = function unset(obj, prop) { + if (!isObject(obj)) { + throw new TypeError('expected an object.'); } - if (!isObject(provider)) { - throw new TypeError('expected providing object to be an object.'); + if (obj.hasOwnProperty(prop)) { + delete obj[prop]; + return true; } - var props = nativeKeys(provider); - var keys = Object.keys(provider); - var len = props.length; - omit = arrayify(omit); - - while (len--) { - var key = props[len]; - - if (has(keys, key)) { - define(receiver, key, provider[key]); - } else if (!(key in receiver) && !has(omit, key)) { - copyDescriptor(receiver, provider, key); + if (has(obj, prop)) { + var segs = prop.split('.'); + var last = segs.pop(); + while (segs.length && segs[segs.length - 1].slice(-1) === '\\') { + last = segs.pop().slice(0, -1) + '.' + last; } + while (segs.length) obj = obj[prop = segs.shift()]; + return (delete obj[last]); } + return true; }; -/** - * Return true if the given value is an object or function - */ -function isObject(val) { - return typeOf(val) === 'object' || typeof val === 'function'; -} +/***/ }), +/* 442 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Returns true if an array has any of the given elements, or an - * object has any of the give keys. - * - * ```js - * has(['a', 'b', 'c'], 'c'); - * //=> true - * - * has(['a', 'b', 'c'], ['c', 'z']); - * //=> true +"use strict"; +/*! + * has-value * - * has({a: 'b', c: 'd'}, ['c', 'z']); - * //=> true - * ``` - * @param {Object} `obj` - * @param {String|Array} `val` - * @return {Boolean} + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. */ -function has(obj, val) { - val = arrayify(val); - var len = val.length; - if (isObject(obj)) { - for (var key in obj) { - if (val.indexOf(key) > -1) { - return true; - } - } - var keys = nativeKeys(obj); - return has(keys, val); - } +var isObject = __webpack_require__(443); +var hasValues = __webpack_require__(445); +var get = __webpack_require__(439); - if (Array.isArray(obj)) { - var arr = obj; - while (len--) { - if (arr.indexOf(val[len]) > -1) { - return true; - } - } - return false; +module.exports = function(obj, prop, noZero) { + if (isObject(obj)) { + return hasValues(get(obj, prop), noZero); } + return hasValues(obj, prop); +}; - throw new TypeError('expected an array or object.'); -} - -/** - * Cast the given value to an array. - * - * ```js - * arrayify('foo'); - * //=> ['foo'] - * - * arrayify(['foo']); - * //=> ['foo'] - * ``` - * - * @param {String|Array} `val` - * @return {Array} - */ -function arrayify(val) { - return val ? (Array.isArray(val) ? val : [val]) : []; -} +/***/ }), +/* 443 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Returns true if a value has a `contructor` - * - * ```js - * hasConstructor({}); - * //=> true +"use strict"; +/*! + * isobject * - * hasConstructor(Object.create(null)); - * //=> false - * ``` - * @param {Object} `value` - * @return {Boolean} + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. */ -function hasConstructor(val) { - return isObject(val) && typeof val.constructor !== 'undefined'; -} -/** - * Get the native `ownPropertyNames` from the constructor of the - * given `object`. An empty array is returned if the object does - * not have a constructor. - * - * ```js - * nativeKeys({a: 'b', b: 'c', c: 'd'}) - * //=> ['a', 'b', 'c'] - * - * nativeKeys(function(){}) - * //=> ['length', 'caller'] - * ``` - * - * @param {Object} `obj` Object that has a `constructor`. - * @return {Array} Array of keys. - */ -function nativeKeys(val) { - if (!hasConstructor(val)) return []; - return Object.getOwnPropertyNames(val); -} +var isArray = __webpack_require__(444); -/** - * Expose `copy` - */ +module.exports = function isObject(val) { + return val != null && typeof val === 'object' && isArray(val) === false; +}; -module.exports = copy; -/** - * Expose `copy.has` for tests - */ +/***/ }), +/* 444 */ +/***/ (function(module, exports) { -module.exports.has = has; +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; /***/ }), -/* 360 */ +/* 445 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /*! - * copy-descriptor + * has-values * - * Copyright (c) 2015, Jon Schlinkert. + * Copyright (c) 2014-2015, Jon Schlinkert. * Licensed under the MIT License. */ -/** - * Copy a descriptor from one object to another. - * - * ```js - * function App() { - * this.cache = {}; - * } - * App.prototype.set = function(key, val) { - * this.cache[key] = val; - * return this; - * }; - * Object.defineProperty(App.prototype, 'count', { - * get: function() { - * return Object.keys(this.cache).length; - * } - * }); - * - * copy(App.prototype, 'count', 'len'); - * - * // create an instance - * var app = new App(); - * - * app.set('a', true); - * app.set('b', true); - * app.set('c', true); - * - * console.log(app.count); - * //=> 3 - * console.log(app.len); - * //=> 3 - * ``` - * @name copy - * @param {Object} `receiver` The target object - * @param {Object} `provider` The provider object - * @param {String} `from` The key to copy on provider. - * @param {String} `to` Optionally specify a new key name to use. - * @return {Object} - * @api public - */ - -module.exports = function copyDescriptor(receiver, provider, from, to) { - if (!isObject(provider) && typeof provider !== 'function') { - to = from; - from = provider; - provider = receiver; - } - if (!isObject(receiver) && typeof receiver !== 'function') { - throw new TypeError('expected the first argument to be an object'); - } - if (!isObject(provider) && typeof provider !== 'function') { - throw new TypeError('expected provider to be an object'); +module.exports = function hasValue(o, noZero) { + if (o === null || o === undefined) { + return false; } - if (typeof to !== 'string') { - to = from; + if (typeof o === 'boolean') { + return true; } - if (typeof from !== 'string') { - throw new TypeError('expected key to be a string'); + + if (typeof o === 'number') { + if (o === 0 && noZero === true) { + return false; + } + return true; } - if (!(from in provider)) { - throw new Error('property "' + from + '" does not exist'); + if (o.length !== undefined) { + return o.length !== 0; } - var val = Object.getOwnPropertyDescriptor(provider, from); - if (val) Object.defineProperty(receiver, to, val); + for (var key in o) { + if (o.hasOwnProperty(key)) { + return true; + } + } + return false; }; -function isObject(val) { - return {}.toString.call(val) === '[object Object]'; -} - - /***/ }), -/* 361 */ +/* 446 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /*! - * define-property + * has-value * - * Copyright (c) 2015, Jon Schlinkert. + * Copyright (c) 2014-2017, Jon Schlinkert. * Licensed under the MIT License. */ -var isDescriptor = __webpack_require__(362); - -module.exports = function defineProperty(obj, prop, val) { - if (typeof obj !== 'object' && typeof obj !== 'function') { - throw new TypeError('expected an object or function.'); - } - - if (typeof prop !== 'string') { - throw new TypeError('expected `prop` to be a string.'); - } - - if (isDescriptor(val) && ('set' in val || 'get' in val)) { - return Object.defineProperty(obj, prop, val); - } +var isObject = __webpack_require__(416); +var hasValues = __webpack_require__(447); +var get = __webpack_require__(439); - return Object.defineProperty(obj, prop, { - configurable: true, - enumerable: false, - writable: true, - value: val - }); +module.exports = function(val, prop) { + return hasValues(isObject(val) && prop ? get(val, prop) : val); }; /***/ }), -/* 362 */ +/* 447 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /*! - * is-descriptor + * has-values * - * Copyright (c) 2015-2017, Jon Schlinkert. + * Copyright (c) 2014-2015, 2017, Jon Schlinkert. * Released under the MIT License. */ -var typeOf = __webpack_require__(363); -var isAccessor = __webpack_require__(364); -var isData = __webpack_require__(365); +var typeOf = __webpack_require__(448); +var isNumber = __webpack_require__(420); -module.exports = function isDescriptor(obj, key) { - if (typeOf(obj) !== 'object') { - return false; +module.exports = function hasValue(val) { + // is-number checks for NaN and other edge cases + if (isNumber(val)) { + return true; } - if ('get' in obj) { - return isAccessor(obj, key); + + switch (typeOf(val)) { + case 'null': + case 'boolean': + case 'function': + return true; + case 'string': + case 'arguments': + return val.length !== 0; + case 'error': + return val.message !== ''; + case 'array': + var len = val.length; + if (len === 0) { + return false; + } + for (var i = 0; i < len; i++) { + if (hasValue(val[i])) { + return true; + } + } + return false; + case 'file': + case 'map': + case 'set': + return val.size !== 0; + case 'object': + var keys = Object.keys(val); + if (keys.length === 0) { + return false; + } + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (hasValue(val[key])) { + return true; + } + } + return false; + default: { + return false; + } } - return isData(obj, key); }; /***/ }), -/* 363 */ -/***/ (function(module, exports) { +/* 448 */ +/***/ (function(module, exports, __webpack_require__) { +var isBuffer = __webpack_require__(396); var toString = Object.prototype.toString; /** @@ -40376,10 +41679,8 @@ var toString = Object.prototype.toString; */ module.exports = function kindOf(val) { - var type = typeof val; - // primitivies - if (type === 'undefined') { + if (typeof val === 'undefined') { return 'undefined'; } if (val === null) { @@ -40388,18 +41689,15 @@ module.exports = function kindOf(val) { if (val === true || val === false || val instanceof Boolean) { return 'boolean'; } - if (type === 'string' || val instanceof String) { + if (typeof val === 'string' || val instanceof String) { return 'string'; } - if (type === 'number' || val instanceof Number) { + if (typeof val === 'number' || val instanceof Number) { return 'number'; } // functions - if (type === 'function' || val instanceof Function) { - if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') { - return 'generatorfunction'; - } + if (typeof val === 'function' || val instanceof Function) { return 'function'; } @@ -40417,7 +41715,7 @@ module.exports = function kindOf(val) { } // other objects - type = toString.call(val); + var type = toString.call(val); if (type === '[object RegExp]') { return 'regexp'; @@ -40456,20 +41754,7 @@ module.exports = function kindOf(val) { if (type === '[object Symbol]') { return 'symbol'; } - - if (type === '[object Map Iterator]') { - return 'mapiterator'; - } - if (type === '[object Set Iterator]') { - return 'setiterator'; - } - if (type === '[object String Iterator]') { - return 'stringiterator'; - } - if (type === '[object Array Iterator]') { - return 'arrayiterator'; - } - + // typed arrays if (type === '[object Int8Array]') { return 'int8array'; @@ -40503,158 +41788,594 @@ module.exports = function kindOf(val) { return 'object'; }; + +/***/ }), +/* 449 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * set-value + * + * Copyright (c) 2014-2015, 2017, Jon Schlinkert. + * Released under the MIT License. + */ + + + +var split = __webpack_require__(412); +var extend = __webpack_require__(399); +var isPlainObject = __webpack_require__(415); +var isObject = __webpack_require__(400); + +module.exports = function(obj, prop, val) { + if (!isObject(obj)) { + return obj; + } + + if (Array.isArray(prop)) { + prop = [].concat.apply([], prop).join('.'); + } + + if (typeof prop !== 'string') { + return obj; + } + + var keys = split(prop, {sep: '.', brackets: true}); + var len = keys.length; + var idx = -1; + var current = obj; + + while (++idx < len) { + var key = keys[idx]; + if (idx !== len - 1) { + if (!isObject(current[key])) { + current[key] = {}; + } + current = current[key]; + continue; + } + + if (isPlainObject(current[key]) && isPlainObject(val)) { + current[key] = extend({}, current[key], val); + } else { + current[key] = val; + } + } + + return obj; +}; + + +/***/ }), +/* 450 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isExtendable = __webpack_require__(451); +var forIn = __webpack_require__(452); + +function mixinDeep(target, objects) { + var len = arguments.length, i = 0; + while (++i < len) { + var obj = arguments[i]; + if (isObject(obj)) { + forIn(obj, copy, target); + } + } + return target; +} + /** - * If you need to support Safari 5-7 (8-10 yr-old browser), - * take a look at https://github.com/feross/is-buffer + * Copy properties from the source object to the + * target object. + * + * @param {*} `val` + * @param {String} `key` */ -function isBuffer(val) { - return val.constructor - && typeof val.constructor.isBuffer === 'function' - && val.constructor.isBuffer(val); +function copy(val, key) { + var obj = this[key]; + if (isObject(val) && isObject(obj)) { + mixinDeep(obj, val); + } else { + this[key] = val; + } +} + +/** + * Returns true if `val` is an object or function. + * + * @param {any} val + * @return {Boolean} + */ + +function isObject(val) { + return isExtendable(val) && !Array.isArray(val); } +/** + * Expose `mixinDeep` + */ + +module.exports = mixinDeep; + /***/ }), -/* 364 */ +/* 451 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /*! - * is-accessor-descriptor + * is-extendable + * + * Copyright (c) 2015-2017, Jon Schlinkert. + * Released under the MIT License. + */ + + + +var isPlainObject = __webpack_require__(415); + +module.exports = function isExtendable(val) { + return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); +}; + + +/***/ }), +/* 452 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * for-in + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + + + +module.exports = function forIn(obj, fn, thisArg) { + for (var key in obj) { + if (fn.call(thisArg, obj[key], key, obj) === false) { + break; + } + } +}; + + +/***/ }), +/* 453 */ +/***/ (function(module, exports) { + +/*! + * pascalcase * * Copyright (c) 2015, Jon Schlinkert. * Licensed under the MIT License. */ +function pascalcase(str) { + if (typeof str !== 'string') { + throw new TypeError('expected a string.'); + } + str = str.replace(/([A-Z])/g, ' $1'); + if (str.length === 1) { return str.toUpperCase(); } + str = str.replace(/^[\W_]+|[\W_]+$/g, '').toLowerCase(); + str = str.charAt(0).toUpperCase() + str.slice(1); + return str.replace(/[\W_]+(\w|$)/g, function (_, ch) { + return ch.toUpperCase(); + }); +} + +module.exports = pascalcase; -var typeOf = __webpack_require__(49); +/***/ }), +/* 454 */ +/***/ (function(module, exports, __webpack_require__) { -// accessor descriptor properties -var accessor = { - get: 'function', - set: 'function', - configurable: 'boolean', - enumerable: 'boolean' +"use strict"; + + +var util = __webpack_require__(29); +var utils = __webpack_require__(455); + +/** + * Expose class utils + */ + +var cu = module.exports; + +/** + * Expose class utils: `cu` + */ + +cu.isObject = function isObject(val) { + return utils.isObj(val) || typeof val === 'function'; }; -function isAccessorDescriptor(obj, prop) { - if (typeof prop === 'string') { - var val = Object.getOwnPropertyDescriptor(obj, prop); - return typeof val !== 'undefined'; +/** + * Returns true if an array has any of the given elements, or an + * object has any of the give keys. + * + * ```js + * cu.has(['a', 'b', 'c'], 'c'); + * //=> true + * + * cu.has(['a', 'b', 'c'], ['c', 'z']); + * //=> true + * + * cu.has({a: 'b', c: 'd'}, ['c', 'z']); + * //=> true + * ``` + * @param {Object} `obj` + * @param {String|Array} `val` + * @return {Boolean} + * @api public + */ + +cu.has = function has(obj, val) { + val = cu.arrayify(val); + var len = val.length; + + if (cu.isObject(obj)) { + for (var key in obj) { + if (val.indexOf(key) > -1) { + return true; + } + } + + var keys = cu.nativeKeys(obj); + return cu.has(keys, val); } - if (typeOf(obj) !== 'object') { + if (Array.isArray(obj)) { + var arr = obj; + while (len--) { + if (arr.indexOf(val[len]) > -1) { + return true; + } + } return false; } - if (has(obj, 'value') || has(obj, 'writable')) { - return false; + throw new TypeError('expected an array or object.'); +}; + +/** + * Returns true if an array or object has all of the given values. + * + * ```js + * cu.hasAll(['a', 'b', 'c'], 'c'); + * //=> true + * + * cu.hasAll(['a', 'b', 'c'], ['c', 'z']); + * //=> false + * + * cu.hasAll({a: 'b', c: 'd'}, ['c', 'z']); + * //=> false + * ``` + * @param {Object|Array} `val` + * @param {String|Array} `values` + * @return {Boolean} + * @api public + */ + +cu.hasAll = function hasAll(val, values) { + values = cu.arrayify(values); + var len = values.length; + while (len--) { + if (!cu.has(val, values[len])) { + return false; + } + } + return true; +}; + +/** + * Cast the given value to an array. + * + * ```js + * cu.arrayify('foo'); + * //=> ['foo'] + * + * cu.arrayify(['foo']); + * //=> ['foo'] + * ``` + * + * @param {String|Array} `val` + * @return {Array} + * @api public + */ + +cu.arrayify = function arrayify(val) { + return val ? (Array.isArray(val) ? val : [val]) : []; +}; + +/** + * Noop + */ + +cu.noop = function noop() { + return; +}; + +/** + * Returns the first argument passed to the function. + */ + +cu.identity = function identity(val) { + return val; +}; + +/** + * Returns true if a value has a `contructor` + * + * ```js + * cu.hasConstructor({}); + * //=> true + * + * cu.hasConstructor(Object.create(null)); + * //=> false + * ``` + * @param {Object} `value` + * @return {Boolean} + * @api public + */ + +cu.hasConstructor = function hasConstructor(val) { + return cu.isObject(val) && typeof val.constructor !== 'undefined'; +}; + +/** + * Get the native `ownPropertyNames` from the constructor of the + * given `object`. An empty array is returned if the object does + * not have a constructor. + * + * ```js + * cu.nativeKeys({a: 'b', b: 'c', c: 'd'}) + * //=> ['a', 'b', 'c'] + * + * cu.nativeKeys(function(){}) + * //=> ['length', 'caller'] + * ``` + * + * @param {Object} `obj` Object that has a `constructor`. + * @return {Array} Array of keys. + * @api public + */ + +cu.nativeKeys = function nativeKeys(val) { + if (!cu.hasConstructor(val)) return []; + return Object.getOwnPropertyNames(val); +}; + +/** + * Returns property descriptor `key` if it's an "own" property + * of the given object. + * + * ```js + * function App() {} + * Object.defineProperty(App.prototype, 'count', { + * get: function() { + * return Object.keys(this).length; + * } + * }); + * cu.getDescriptor(App.prototype, 'count'); + * // returns: + * // { + * // get: [Function], + * // set: undefined, + * // enumerable: false, + * // configurable: false + * // } + * ``` + * + * @param {Object} `obj` + * @param {String} `key` + * @return {Object} Returns descriptor `key` + * @api public + */ + +cu.getDescriptor = function getDescriptor(obj, key) { + if (!cu.isObject(obj)) { + throw new TypeError('expected an object.'); + } + if (typeof key !== 'string') { + throw new TypeError('expected key to be a string.'); + } + return Object.getOwnPropertyDescriptor(obj, key); +}; + +/** + * Copy a descriptor from one object to another. + * + * ```js + * function App() {} + * Object.defineProperty(App.prototype, 'count', { + * get: function() { + * return Object.keys(this).length; + * } + * }); + * var obj = {}; + * cu.copyDescriptor(obj, App.prototype, 'count'); + * ``` + * @param {Object} `receiver` + * @param {Object} `provider` + * @param {String} `name` + * @return {Object} + * @api public + */ + +cu.copyDescriptor = function copyDescriptor(receiver, provider, name) { + if (!cu.isObject(receiver)) { + throw new TypeError('expected receiving object to be an object.'); + } + if (!cu.isObject(provider)) { + throw new TypeError('expected providing object to be an object.'); + } + if (typeof name !== 'string') { + throw new TypeError('expected name to be a string.'); + } + + var val = cu.getDescriptor(provider, name); + if (val) Object.defineProperty(receiver, name, val); +}; + +/** + * Copy static properties, prototype properties, and descriptors + * from one object to another. + * + * @param {Object} `receiver` + * @param {Object} `provider` + * @param {String|Array} `omit` One or more properties to omit + * @return {Object} + * @api public + */ + +cu.copy = function copy(receiver, provider, omit) { + if (!cu.isObject(receiver)) { + throw new TypeError('expected receiving object to be an object.'); + } + if (!cu.isObject(provider)) { + throw new TypeError('expected providing object to be an object.'); + } + var props = Object.getOwnPropertyNames(provider); + var keys = Object.keys(provider); + var len = props.length, + key; + omit = cu.arrayify(omit); + + while (len--) { + key = props[len]; + + if (cu.has(keys, key)) { + utils.define(receiver, key, provider[key]); + } else if (!(key in receiver) && !cu.has(omit, key)) { + cu.copyDescriptor(receiver, provider, key); + } } +}; + +/** + * Inherit the static properties, prototype properties, and descriptors + * from of an object. + * + * @param {Object} `receiver` + * @param {Object} `provider` + * @param {String|Array} `omit` One or more properties to omit + * @return {Object} + * @api public + */ - if (!has(obj, 'get') || typeof obj.get !== 'function') { - return false; +cu.inherit = function inherit(receiver, provider, omit) { + if (!cu.isObject(receiver)) { + throw new TypeError('expected receiving object to be an object.'); + } + if (!cu.isObject(provider)) { + throw new TypeError('expected providing object to be an object.'); } - // tldr: it's valid to have "set" be undefined - // "set" might be undefined if `Object.getOwnPropertyDescriptor` - // was used to get the value, and only `get` was defined by the user - if (has(obj, 'set') && typeof obj[key] !== 'function' && typeof obj[key] !== 'undefined') { - return false; + var keys = []; + for (var key in provider) { + keys.push(key); + receiver[key] = provider[key]; } - for (var key in obj) { - if (!accessor.hasOwnProperty(key)) { - continue; - } + keys = keys.concat(cu.arrayify(omit)); - if (typeOf(obj[key]) === accessor[key]) { - continue; - } + var a = provider.prototype || provider; + var b = receiver.prototype || receiver; + cu.copy(b, a, keys); +}; - if (typeof obj[key] !== 'undefined') { - return false; - } - } - return true; -} +/** + * Returns a function for extending the static properties, + * prototype properties, and descriptors from the `Parent` + * constructor onto `Child` constructors. + * + * ```js + * var extend = cu.extend(Parent); + * Parent.extend(Child); + * + * // optional methods + * Parent.extend(Child, { + * foo: function() {}, + * bar: function() {} + * }); + * ``` + * @param {Function} `Parent` Parent ctor + * @param {Function} `extend` Optional extend function to handle custom extensions. Useful when updating methods that require a specific prototype. + * @param {Function} `Child` Child ctor + * @param {Object} `proto` Optionally pass additional prototype properties to inherit. + * @return {Object} + * @api public + */ -function has(obj, key) { - return {}.hasOwnProperty.call(obj, key); -} +cu.extend = function() { + // keep it lazy, instead of assigning to `cu.extend` + return utils.staticExtend.apply(null, arguments); +}; /** - * Expose `isAccessorDescriptor` + * Bubble up events emitted from static methods on the Parent ctor. + * + * @param {Object} `Parent` + * @param {Array} `events` Event names to bubble up + * @api public */ -module.exports = isAccessorDescriptor; +cu.bubble = function(Parent, events) { + events = events || []; + Parent.bubble = function(Child, arr) { + if (Array.isArray(arr)) { + events = utils.union([], events, arr); + } + var len = events.length; + var idx = -1; + while (++idx < len) { + var name = events[idx]; + Parent.on(name, Child.emit.bind(Child, name)); + } + cu.bubble(Child, events); + }; +}; /***/ }), -/* 365 */ +/* 455 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/*! - * is-data-descriptor - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - -var typeOf = __webpack_require__(49); - -// data descriptor properties -var data = { - configurable: 'boolean', - enumerable: 'boolean', - writable: 'boolean' -}; - -function isDataDescriptor(obj, prop) { - if (typeOf(obj) !== 'object') { - return false; - } - - if (typeof prop === 'string') { - var val = Object.getOwnPropertyDescriptor(obj, prop); - return typeof val !== 'undefined'; - } +var utils = {}; - if (!('value' in obj) && !('writable' in obj)) { - return false; - } - for (var key in obj) { - if (key === 'value') continue; - if (!data.hasOwnProperty(key)) { - continue; - } +/** + * Lazily required module dependencies + */ - if (typeOf(obj[key]) === data[key]) { - continue; - } +utils.union = __webpack_require__(438); +utils.define = __webpack_require__(456); +utils.isObj = __webpack_require__(416); +utils.staticExtend = __webpack_require__(463); - if (typeof obj[key] !== 'undefined') { - return false; - } - } - return true; -} /** - * Expose `isDataDescriptor` + * Expose `utils` */ -module.exports = isDataDescriptor; +module.exports = utils; /***/ }), -/* 366 */ +/* 456 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40667,7 +42388,7 @@ module.exports = isDataDescriptor; -var isDescriptor = __webpack_require__(367); +var isDescriptor = __webpack_require__(457); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -40692,7 +42413,7 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 367 */ +/* 457 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40705,9 +42426,9 @@ module.exports = function defineProperty(obj, prop, val) { -var typeOf = __webpack_require__(368); -var isAccessor = __webpack_require__(369); -var isData = __webpack_require__(371); +var typeOf = __webpack_require__(458); +var isAccessor = __webpack_require__(459); +var isData = __webpack_require__(461); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -40721,7 +42442,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 368 */ +/* 458 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -40874,7 +42595,7 @@ function isBuffer(val) { /***/ }), -/* 369 */ +/* 459 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40887,7 +42608,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(370); +var typeOf = __webpack_require__(460); // accessor descriptor properties var accessor = { @@ -40950,10 +42671,10 @@ module.exports = isAccessorDescriptor; /***/ }), -/* 370 */ +/* 460 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(22); +var isBuffer = __webpack_require__(396); var toString = Object.prototype.toString; /** @@ -41072,7 +42793,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 371 */ +/* 461 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41085,7 +42806,7 @@ module.exports = function kindOf(val) { -var typeOf = __webpack_require__(372); +var typeOf = __webpack_require__(462); // data descriptor properties var data = { @@ -41134,10 +42855,10 @@ module.exports = isDataDescriptor; /***/ }), -/* 372 */ +/* 462 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(22); +var isBuffer = __webpack_require__(396); var toString = Object.prototype.toString; /** @@ -41240,23 +42961,427 @@ module.exports = function kindOf(val) { if (type === '[object Int32Array]') { return 'int32array'; } - if (type === '[object Uint32Array]') { - return 'uint32array'; + if (type === '[object Uint32Array]') { + return 'uint32array'; + } + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; + } + + // must be a plain object + return 'object'; +}; + + +/***/ }), +/* 463 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * static-extend + * + * Copyright (c) 2016, Jon Schlinkert. + * Licensed under the MIT License. + */ + + + +var copy = __webpack_require__(464); +var define = __webpack_require__(471); +var util = __webpack_require__(29); + +/** + * Returns a function for extending the static properties, + * prototype properties, and descriptors from the `Parent` + * constructor onto `Child` constructors. + * + * ```js + * var extend = require('static-extend'); + * Parent.extend = extend(Parent); + * + * // optionally pass a custom merge function as the second arg + * Parent.extend = extend(Parent, function(Child) { + * Child.prototype.mixin = function(key, val) { + * Child.prototype[key] = val; + * }; + * }); + * + * // extend "child" constructors + * Parent.extend(Child); + * + * // optionally define prototype methods as the second arg + * Parent.extend(Child, { + * foo: function() {}, + * bar: function() {} + * }); + * ``` + * @param {Function} `Parent` Parent ctor + * @param {Function} `extendFn` Optional extend function for handling any necessary custom merging. Useful when updating methods that require a specific prototype. + * @param {Function} `Child` Child ctor + * @param {Object} `proto` Optionally pass additional prototype properties to inherit. + * @return {Object} + * @api public + */ + +function extend(Parent, extendFn) { + if (typeof Parent !== 'function') { + throw new TypeError('expected Parent to be a function.'); + } + + return function(Ctor, proto) { + if (typeof Ctor !== 'function') { + throw new TypeError('expected Ctor to be a function.'); + } + + util.inherits(Ctor, Parent); + copy(Ctor, Parent); + + // proto can be null or a plain object + if (typeof proto === 'object') { + var obj = Object.create(proto); + + for (var k in obj) { + Ctor.prototype[k] = obj[k]; + } + } + + // keep a reference to the parent prototype + define(Ctor.prototype, '_parent_', { + configurable: true, + set: function() {}, + get: function() { + return Parent.prototype; + } + }); + + if (typeof extendFn === 'function') { + extendFn(Ctor, Parent); + } + + Ctor.extend = extend(Ctor, extendFn); + }; +}; + +/** + * Expose `extend` + */ + +module.exports = extend; + + +/***/ }), +/* 464 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var typeOf = __webpack_require__(421); +var copyDescriptor = __webpack_require__(465); +var define = __webpack_require__(466); + +/** + * Copy static properties, prototype properties, and descriptors from one object to another. + * + * ```js + * function App() {} + * var proto = App.prototype; + * App.prototype.set = function() {}; + * App.prototype.get = function() {}; + * + * var obj = {}; + * copy(obj, proto); + * ``` + * @param {Object} `receiver` + * @param {Object} `provider` + * @param {String|Array} `omit` One or more properties to omit + * @return {Object} + * @api public + */ + +function copy(receiver, provider, omit) { + if (!isObject(receiver)) { + throw new TypeError('expected receiving object to be an object.'); + } + if (!isObject(provider)) { + throw new TypeError('expected providing object to be an object.'); + } + + var props = nativeKeys(provider); + var keys = Object.keys(provider); + var len = props.length; + omit = arrayify(omit); + + while (len--) { + var key = props[len]; + + if (has(keys, key)) { + define(receiver, key, provider[key]); + } else if (!(key in receiver) && !has(omit, key)) { + copyDescriptor(receiver, provider, key); + } + } +}; + +/** + * Return true if the given value is an object or function + */ + +function isObject(val) { + return typeOf(val) === 'object' || typeof val === 'function'; +} + +/** + * Returns true if an array has any of the given elements, or an + * object has any of the give keys. + * + * ```js + * has(['a', 'b', 'c'], 'c'); + * //=> true + * + * has(['a', 'b', 'c'], ['c', 'z']); + * //=> true + * + * has({a: 'b', c: 'd'}, ['c', 'z']); + * //=> true + * ``` + * @param {Object} `obj` + * @param {String|Array} `val` + * @return {Boolean} + */ + +function has(obj, val) { + val = arrayify(val); + var len = val.length; + + if (isObject(obj)) { + for (var key in obj) { + if (val.indexOf(key) > -1) { + return true; + } + } + + var keys = nativeKeys(obj); + return has(keys, val); + } + + if (Array.isArray(obj)) { + var arr = obj; + while (len--) { + if (arr.indexOf(val[len]) > -1) { + return true; + } + } + return false; + } + + throw new TypeError('expected an array or object.'); +} + +/** + * Cast the given value to an array. + * + * ```js + * arrayify('foo'); + * //=> ['foo'] + * + * arrayify(['foo']); + * //=> ['foo'] + * ``` + * + * @param {String|Array} `val` + * @return {Array} + */ + +function arrayify(val) { + return val ? (Array.isArray(val) ? val : [val]) : []; +} + +/** + * Returns true if a value has a `contructor` + * + * ```js + * hasConstructor({}); + * //=> true + * + * hasConstructor(Object.create(null)); + * //=> false + * ``` + * @param {Object} `value` + * @return {Boolean} + */ + +function hasConstructor(val) { + return isObject(val) && typeof val.constructor !== 'undefined'; +} + +/** + * Get the native `ownPropertyNames` from the constructor of the + * given `object`. An empty array is returned if the object does + * not have a constructor. + * + * ```js + * nativeKeys({a: 'b', b: 'c', c: 'd'}) + * //=> ['a', 'b', 'c'] + * + * nativeKeys(function(){}) + * //=> ['length', 'caller'] + * ``` + * + * @param {Object} `obj` Object that has a `constructor`. + * @return {Array} Array of keys. + */ + +function nativeKeys(val) { + if (!hasConstructor(val)) return []; + return Object.getOwnPropertyNames(val); +} + +/** + * Expose `copy` + */ + +module.exports = copy; + +/** + * Expose `copy.has` for tests + */ + +module.exports.has = has; + + +/***/ }), +/* 465 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * copy-descriptor + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. + */ + + + +/** + * Copy a descriptor from one object to another. + * + * ```js + * function App() { + * this.cache = {}; + * } + * App.prototype.set = function(key, val) { + * this.cache[key] = val; + * return this; + * }; + * Object.defineProperty(App.prototype, 'count', { + * get: function() { + * return Object.keys(this.cache).length; + * } + * }); + * + * copy(App.prototype, 'count', 'len'); + * + * // create an instance + * var app = new App(); + * + * app.set('a', true); + * app.set('b', true); + * app.set('c', true); + * + * console.log(app.count); + * //=> 3 + * console.log(app.len); + * //=> 3 + * ``` + * @name copy + * @param {Object} `receiver` The target object + * @param {Object} `provider` The provider object + * @param {String} `from` The key to copy on provider. + * @param {String} `to` Optionally specify a new key name to use. + * @return {Object} + * @api public + */ + +module.exports = function copyDescriptor(receiver, provider, from, to) { + if (!isObject(provider) && typeof provider !== 'function') { + to = from; + from = provider; + provider = receiver; + } + if (!isObject(receiver) && typeof receiver !== 'function') { + throw new TypeError('expected the first argument to be an object'); + } + if (!isObject(provider) && typeof provider !== 'function') { + throw new TypeError('expected provider to be an object'); + } + + if (typeof to !== 'string') { + to = from; + } + if (typeof from !== 'string') { + throw new TypeError('expected key to be a string'); + } + + if (!(from in provider)) { + throw new Error('property "' + from + '" does not exist'); + } + + var val = Object.getOwnPropertyDescriptor(provider, from); + if (val) Object.defineProperty(receiver, to, val); +}; + +function isObject(val) { + return {}.toString.call(val) === '[object Object]'; +} + + + +/***/ }), +/* 466 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * define-property + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. + */ + + + +var isDescriptor = __webpack_require__(467); + +module.exports = function defineProperty(obj, prop, val) { + if (typeof obj !== 'object' && typeof obj !== 'function') { + throw new TypeError('expected an object or function.'); } - if (type === '[object Float32Array]') { - return 'float32array'; + + if (typeof prop !== 'string') { + throw new TypeError('expected `prop` to be a string.'); } - if (type === '[object Float64Array]') { - return 'float64array'; + + if (isDescriptor(val) && ('set' in val || 'get' in val)) { + return Object.defineProperty(obj, prop, val); } - // must be a plain object - return 'object'; + return Object.defineProperty(obj, prop, { + configurable: true, + enumerable: false, + writable: true, + value: val + }); }; /***/ }), -/* 373 */ +/* 467 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41269,9 +43394,9 @@ module.exports = function kindOf(val) { -var typeOf = __webpack_require__(374); -var isAccessor = __webpack_require__(375); -var isData = __webpack_require__(377); +var typeOf = __webpack_require__(468); +var isAccessor = __webpack_require__(469); +var isData = __webpack_require__(470); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -41285,7 +43410,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 374 */ +/* 468 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -41438,7 +43563,7 @@ function isBuffer(val) { /***/ }), -/* 375 */ +/* 469 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41451,7 +43576,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(376); +var typeOf = __webpack_require__(421); // accessor descriptor properties var accessor = { @@ -41514,129 +43639,7 @@ module.exports = isAccessorDescriptor; /***/ }), -/* 376 */ -/***/ (function(module, exports, __webpack_require__) { - -var isBuffer = __webpack_require__(22); -var toString = Object.prototype.toString; - -/** - * Get the native `typeof` a value. - * - * @param {*} `val` - * @return {*} Native javascript type - */ - -module.exports = function kindOf(val) { - // primitivies - if (typeof val === 'undefined') { - return 'undefined'; - } - if (val === null) { - return 'null'; - } - if (val === true || val === false || val instanceof Boolean) { - return 'boolean'; - } - if (typeof val === 'string' || val instanceof String) { - return 'string'; - } - if (typeof val === 'number' || val instanceof Number) { - return 'number'; - } - - // functions - if (typeof val === 'function' || val instanceof Function) { - return 'function'; - } - - // array - if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { - return 'array'; - } - - // check for instances of RegExp and Date before calling `toString` - if (val instanceof RegExp) { - return 'regexp'; - } - if (val instanceof Date) { - return 'date'; - } - - // other objects - var type = toString.call(val); - - if (type === '[object RegExp]') { - return 'regexp'; - } - if (type === '[object Date]') { - return 'date'; - } - if (type === '[object Arguments]') { - return 'arguments'; - } - if (type === '[object Error]') { - return 'error'; - } - - // buffer - if (isBuffer(val)) { - return 'buffer'; - } - - // es6: Map, WeakMap, Set, WeakSet - if (type === '[object Set]') { - return 'set'; - } - if (type === '[object WeakSet]') { - return 'weakset'; - } - if (type === '[object Map]') { - return 'map'; - } - if (type === '[object WeakMap]') { - return 'weakmap'; - } - if (type === '[object Symbol]') { - return 'symbol'; - } - - // typed arrays - if (type === '[object Int8Array]') { - return 'int8array'; - } - if (type === '[object Uint8Array]') { - return 'uint8array'; - } - if (type === '[object Uint8ClampedArray]') { - return 'uint8clampedarray'; - } - if (type === '[object Int16Array]') { - return 'int16array'; - } - if (type === '[object Uint16Array]') { - return 'uint16array'; - } - if (type === '[object Int32Array]') { - return 'int32array'; - } - if (type === '[object Uint32Array]') { - return 'uint32array'; - } - if (type === '[object Float32Array]') { - return 'float32array'; - } - if (type === '[object Float64Array]') { - return 'float64array'; - } - - // must be a plain object - return 'object'; -}; - - -/***/ }), -/* 377 */ +/* 470 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41649,7 +43652,7 @@ module.exports = function kindOf(val) { -var typeOf = __webpack_require__(378); +var typeOf = __webpack_require__(421); // data descriptor properties var data = { @@ -41669,372 +43672,36 @@ function isDataDescriptor(obj, prop) { } if (!('value' in obj) && !('writable' in obj)) { - return false; - } - - for (var key in obj) { - if (key === 'value') continue; - - if (!data.hasOwnProperty(key)) { - continue; - } - - if (typeOf(obj[key]) === data[key]) { - continue; - } - - if (typeof obj[key] !== 'undefined') { - return false; - } - } - return true; -} - -/** - * Expose `isDataDescriptor` - */ - -module.exports = isDataDescriptor; - - -/***/ }), -/* 378 */ -/***/ (function(module, exports, __webpack_require__) { - -var isBuffer = __webpack_require__(22); -var toString = Object.prototype.toString; - -/** - * Get the native `typeof` a value. - * - * @param {*} `val` - * @return {*} Native javascript type - */ - -module.exports = function kindOf(val) { - // primitivies - if (typeof val === 'undefined') { - return 'undefined'; - } - if (val === null) { - return 'null'; - } - if (val === true || val === false || val instanceof Boolean) { - return 'boolean'; - } - if (typeof val === 'string' || val instanceof String) { - return 'string'; - } - if (typeof val === 'number' || val instanceof Number) { - return 'number'; - } - - // functions - if (typeof val === 'function' || val instanceof Function) { - return 'function'; - } - - // array - if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { - return 'array'; - } - - // check for instances of RegExp and Date before calling `toString` - if (val instanceof RegExp) { - return 'regexp'; - } - if (val instanceof Date) { - return 'date'; - } - - // other objects - var type = toString.call(val); - - if (type === '[object RegExp]') { - return 'regexp'; - } - if (type === '[object Date]') { - return 'date'; - } - if (type === '[object Arguments]') { - return 'arguments'; - } - if (type === '[object Error]') { - return 'error'; - } - - // buffer - if (isBuffer(val)) { - return 'buffer'; - } - - // es6: Map, WeakMap, Set, WeakSet - if (type === '[object Set]') { - return 'set'; - } - if (type === '[object WeakSet]') { - return 'weakset'; - } - if (type === '[object Map]') { - return 'map'; - } - if (type === '[object WeakMap]') { - return 'weakmap'; - } - if (type === '[object Symbol]') { - return 'symbol'; - } - - // typed arrays - if (type === '[object Int8Array]') { - return 'int8array'; - } - if (type === '[object Uint8Array]') { - return 'uint8array'; - } - if (type === '[object Uint8ClampedArray]') { - return 'uint8clampedarray'; - } - if (type === '[object Int16Array]') { - return 'int16array'; - } - if (type === '[object Uint16Array]') { - return 'uint16array'; - } - if (type === '[object Int32Array]') { - return 'int32array'; - } - if (type === '[object Uint32Array]') { - return 'uint32array'; - } - if (type === '[object Float32Array]') { - return 'float32array'; - } - if (type === '[object Float64Array]') { - return 'float64array'; - } - - // must be a plain object - return 'object'; -}; - - -/***/ }), -/* 379 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var use = __webpack_require__(143); -var define = __webpack_require__(67); -var debug = __webpack_require__(106)('snapdragon:compiler'); -var utils = __webpack_require__(79); - -/** - * Create a new `Compiler` with the given `options`. - * @param {Object} `options` - */ - -function Compiler(options, state) { - debug('initializing', __filename); - this.options = utils.extend({source: 'string'}, options); - this.state = state || {}; - this.compilers = {}; - this.output = ''; - this.set('eos', function(node) { - return this.emit(node.val, node); - }); - this.set('noop', function(node) { - return this.emit(node.val, node); - }); - this.set('bos', function(node) { - return this.emit(node.val, node); - }); - use(this); -} - -/** - * Prototype methods - */ - -Compiler.prototype = { - - /** - * Throw an error message with details including the cursor position. - * @param {String} `msg` Message to use in the Error. - */ - - error: function(msg, node) { - var pos = node.position || {start: {column: 0}}; - var message = this.options.source + ' column:' + pos.start.column + ': ' + msg; - - var err = new Error(message); - err.reason = msg; - err.column = pos.start.column; - err.source = this.pattern; - - if (this.options.silent) { - this.errors.push(err); - } else { - throw err; - } - }, - - /** - * Define a non-enumberable property on the `Compiler` instance. - * - * ```js - * compiler.define('foo', 'bar'); - * ``` - * @name .define - * @param {String} `key` propery name - * @param {any} `val` property value - * @return {Object} Returns the Compiler instance for chaining. - * @api public - */ - - define: function(key, val) { - define(this, key, val); - return this; - }, - - /** - * Emit `node.val` - */ - - emit: function(str, node) { - this.output += str; - return str; - }, - - /** - * Add a compiler `fn` with the given `name` - */ - - set: function(name, fn) { - this.compilers[name] = fn; - return this; - }, - - /** - * Get compiler `name`. - */ - - get: function(name) { - return this.compilers[name]; - }, - - /** - * Get the previous AST node. - */ - - prev: function(n) { - return this.ast.nodes[this.idx - (n || 1)] || { type: 'bos', val: '' }; - }, - - /** - * Get the next AST node. - */ - - next: function(n) { - return this.ast.nodes[this.idx + (n || 1)] || { type: 'eos', val: '' }; - }, - - /** - * Visit `node`. - */ - - visit: function(node, nodes, i) { - var fn = this.compilers[node.type]; - this.idx = i; - - if (typeof fn !== 'function') { - throw this.error('compiler "' + node.type + '" is not registered', node); - } - return fn.call(this, node, nodes, i); - }, - - /** - * Map visit over array of `nodes`. - */ - - mapVisit: function(nodes) { - if (!Array.isArray(nodes)) { - throw new TypeError('expected an array'); - } - var len = nodes.length; - var idx = -1; - while (++idx < len) { - this.visit(nodes[idx], nodes, idx); - } - return this; - }, - - /** - * Compile `ast`. - */ - - compile: function(ast, options) { - var opts = utils.extend({}, this.options, options); - this.ast = ast; - this.parsingErrors = this.ast.errors; - this.output = ''; - - // source map support - if (opts.sourcemap) { - var sourcemaps = __webpack_require__(407); - sourcemaps(this); - this.mapVisit(this.ast.nodes); - this.applySourceMaps(); - this.map = opts.sourcemap === 'generator' ? this.map : this.map.toJSON(); - return this; - } - - this.mapVisit(this.ast.nodes); - return this; - } -}; - -/** - * Expose `Compiler` - */ - -module.exports = Compiler; - - -/***/ }), -/* 380 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = {}; - - + return false; + } -/** - * Lazily required module dependencies - */ + for (var key in obj) { + if (key === 'value') continue; -utils.define = __webpack_require__(381); -utils.isObject = __webpack_require__(30); + if (!data.hasOwnProperty(key)) { + continue; + } + if (typeOf(obj[key]) === data[key]) { + continue; + } -utils.isString = function(val) { - return val && typeof val === 'string'; -}; + if (typeof obj[key] !== 'undefined') { + return false; + } + } + return true; +} /** - * Expose `utils` modules + * Expose `isDataDescriptor` */ -module.exports = utils; +module.exports = isDataDescriptor; /***/ }), -/* 381 */ +/* 471 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42047,7 +43714,7 @@ module.exports = utils; -var isDescriptor = __webpack_require__(382); +var isDescriptor = __webpack_require__(472); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -42072,7 +43739,7 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 382 */ +/* 472 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42085,9 +43752,9 @@ module.exports = function defineProperty(obj, prop, val) { -var typeOf = __webpack_require__(383); -var isAccessor = __webpack_require__(384); -var isData = __webpack_require__(386); +var typeOf = __webpack_require__(473); +var isAccessor = __webpack_require__(474); +var isData = __webpack_require__(476); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -42101,7 +43768,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 383 */ +/* 473 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -42254,7 +43921,7 @@ function isBuffer(val) { /***/ }), -/* 384 */ +/* 474 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42267,7 +43934,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(385); +var typeOf = __webpack_require__(475); // accessor descriptor properties var accessor = { @@ -42330,10 +43997,10 @@ module.exports = isAccessorDescriptor; /***/ }), -/* 385 */ +/* 475 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(22); +var isBuffer = __webpack_require__(396); var toString = Object.prototype.toString; /** @@ -42452,7 +44119,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 386 */ +/* 476 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42465,7 +44132,7 @@ module.exports = function kindOf(val) { -var typeOf = __webpack_require__(387); +var typeOf = __webpack_require__(477); // data descriptor properties var data = { @@ -42514,10 +44181,10 @@ module.exports = isDataDescriptor; /***/ }), -/* 387 */ +/* 477 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(22); +var isBuffer = __webpack_require__(396); var toString = Object.prototype.toString; /** @@ -42636,15283 +44303,14951 @@ module.exports = function kindOf(val) { /***/ }), -/* 388 */ +/* 478 */ /***/ (function(module, exports, __webpack_require__) { -/** - * This is the web browser implementation of `debug()`. +"use strict"; +/*! + * define-property * - * Expose `debug()` as the module. + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. */ -exports = module.exports = __webpack_require__(144); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = 'undefined' != typeof chrome - && 'undefined' != typeof chrome.storage - ? chrome.storage.local - : localstorage(); - -/** - * Colors. - */ -exports.colors = [ - 'lightseagreen', - 'forestgreen', - 'goldenrod', - 'dodgerblue', - 'darkorchid', - 'crimson' -]; -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ +var isDescriptor = __webpack_require__(479); -function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { - return true; +module.exports = function defineProperty(obj, prop, val) { + if (typeof obj !== 'object' && typeof obj !== 'function') { + throw new TypeError('expected an object or function.'); } - // is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || - // double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -exports.formatters.j = function(v) { - try { - return JSON.stringify(v); - } catch (err) { - return '[UnexpectedJSONParseError]: ' + err.message; + if (typeof prop !== 'string') { + throw new TypeError('expected `prop` to be a string.'); } -}; - - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs(args) { - var useColors = this.useColors; - - args[0] = (useColors ? '%c' : '') - + this.namespace - + (useColors ? ' %c' : ' ') - + args[0] - + (useColors ? '%c ' : ' ') - + '+' + exports.humanize(this.diff); - if (!useColors) return; - - var c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit') + if (isDescriptor(val) && ('set' in val || 'get' in val)) { + return Object.defineProperty(obj, prop, val); + } - // the final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - var index = 0; - var lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, function(match) { - if ('%%' === match) return; - index++; - if ('%c' === match) { - // we only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } + return Object.defineProperty(obj, prop, { + configurable: true, + enumerable: false, + writable: true, + value: val }); +}; - args.splice(lastC, 0, c); -} - -/** - * Invokes `console.log()` when available. - * No-op when `console.log` is not a "function". - * - * @api public - */ -function log() { - // this hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return 'object' === typeof console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); -} +/***/ }), +/* 479 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Save `namespaces`. +"use strict"; +/*! + * is-descriptor * - * @param {String} namespaces - * @api private + * Copyright (c) 2015-2017, Jon Schlinkert. + * Released under the MIT License. */ -function save(namespaces) { - try { - if (null == namespaces) { - exports.storage.removeItem('debug'); - } else { - exports.storage.debug = namespaces; - } - } catch(e) {} -} -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ -function load() { - var r; - try { - r = exports.storage.debug; - } catch(e) {} +var typeOf = __webpack_require__(480); +var isAccessor = __webpack_require__(481); +var isData = __webpack_require__(483); - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; +module.exports = function isDescriptor(obj, key) { + if (typeOf(obj) !== 'object') { + return false; } - - return r; -} - -/** - * Enable namespaces listed in `localStorage.debug` initially. - */ - -exports.enable(load()); - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage() { - try { - return window.localStorage; - } catch (e) {} -} + if ('get' in obj) { + return isAccessor(obj, key); + } + return isData(obj, key); +}; /***/ }), -/* 389 */ +/* 480 */ /***/ (function(module, exports) { -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; +var toString = Object.prototype.toString; /** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] + * Get the native `typeof` a value. * - * @param {String|Number} val - * @param {Object} [options] - * @throws {Error} throw an error if val is not a non-empty string or a number - * @return {String|Number} - * @api public + * @param {*} `val` + * @return {*} Native javascript type */ -module.exports = function(val, options) { - options = options || {}; +module.exports = function kindOf(val) { var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse(val); - } else if (type === 'number' && isNaN(val) === false) { - return options.long ? fmtLong(val) : fmtShort(val); + + // primitivies + if (type === 'undefined') { + return 'undefined'; + } + if (val === null) { + return 'null'; + } + if (val === true || val === false || val instanceof Boolean) { + return 'boolean'; + } + if (type === 'string' || val instanceof String) { + return 'string'; + } + if (type === 'number' || val instanceof Number) { + return 'number'; } - throw new Error( - 'val is not a non-empty string or a valid number. val=' + - JSON.stringify(val) - ); -}; -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ + // functions + if (type === 'function' || val instanceof Function) { + if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') { + return 'generatorfunction'; + } + return 'function'; + } -function parse(str) { - str = String(str); - if (str.length > 100) { - return; + // array + if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { + return 'array'; } - var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( - str - ); - if (!match) { - return; + + // check for instances of RegExp and Date before calling `toString` + if (val instanceof RegExp) { + return 'regexp'; } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - default: - return undefined; + if (val instanceof Date) { + return 'date'; } -} -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ + // other objects + type = toString.call(val); -function fmtShort(ms) { - if (ms >= d) { - return Math.round(ms / d) + 'd'; + if (type === '[object RegExp]') { + return 'regexp'; } - if (ms >= h) { - return Math.round(ms / h) + 'h'; + if (type === '[object Date]') { + return 'date'; } - if (ms >= m) { - return Math.round(ms / m) + 'm'; + if (type === '[object Arguments]') { + return 'arguments'; } - if (ms >= s) { - return Math.round(ms / s) + 's'; + if (type === '[object Error]') { + return 'error'; + } + if (type === '[object Promise]') { + return 'promise'; } - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtLong(ms) { - return plural(ms, d, 'day') || - plural(ms, h, 'hour') || - plural(ms, m, 'minute') || - plural(ms, s, 'second') || - ms + ' ms'; -} -/** - * Pluralization helper. - */ + // buffer + if (isBuffer(val)) { + return 'buffer'; + } -function plural(ms, n, name) { - if (ms < n) { - return; + // es6: Map, WeakMap, Set, WeakSet + if (type === '[object Set]') { + return 'set'; } - if (ms < n * 1.5) { - return Math.floor(ms / n) + ' ' + name; + if (type === '[object WeakSet]') { + return 'weakset'; + } + if (type === '[object Map]') { + return 'map'; + } + if (type === '[object WeakMap]') { + return 'weakmap'; + } + if (type === '[object Symbol]') { + return 'symbol'; + } + + if (type === '[object Map Iterator]') { + return 'mapiterator'; + } + if (type === '[object Set Iterator]') { + return 'setiterator'; + } + if (type === '[object String Iterator]') { + return 'stringiterator'; + } + if (type === '[object Array Iterator]') { + return 'arrayiterator'; + } + + // typed arrays + if (type === '[object Int8Array]') { + return 'int8array'; + } + if (type === '[object Uint8Array]') { + return 'uint8array'; + } + if (type === '[object Uint8ClampedArray]') { + return 'uint8clampedarray'; + } + if (type === '[object Int16Array]') { + return 'int16array'; + } + if (type === '[object Uint16Array]') { + return 'uint16array'; + } + if (type === '[object Int32Array]') { + return 'int32array'; + } + if (type === '[object Uint32Array]') { + return 'uint32array'; + } + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; } - return Math.ceil(ms / n) + ' ' + name + 's'; -} - - -/***/ }), -/* 390 */ -/***/ (function(module, exports, __webpack_require__) { - -/** - * Module dependencies. - */ - -var tty = __webpack_require__(391); -var util = __webpack_require__(14); - -/** - * This is the Node.js implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = __webpack_require__(144); -exports.init = init; -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -/** - * Build up the default `inspectOpts` object from the environment variables. - * - * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js - */ - -exports.inspectOpts = Object.keys(process.env).filter(function (key) { - return /^debug_/i.test(key); -}).reduce(function (obj, key) { - // camel-case - var prop = key - .substring(6) - .toLowerCase() - .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() }); - - // coerce string value into JS value - var val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) val = true; - else if (/^(no|off|false|disabled)$/i.test(val)) val = false; - else if (val === 'null') val = null; - else val = Number(val); - obj[prop] = val; - return obj; -}, {}); + // must be a plain object + return 'object'; +}; /** - * The file descriptor to write the `debug()` calls to. - * Set the `DEBUG_FD` env variable to override with another value. i.e.: - * - * $ DEBUG_FD=3 node script.js 3>debug.log + * If you need to support Safari 5-7 (8-10 yr-old browser), + * take a look at https://github.com/feross/is-buffer */ -var fd = parseInt(process.env.DEBUG_FD, 10) || 2; - -if (1 !== fd && 2 !== fd) { - util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')() +function isBuffer(val) { + return val.constructor + && typeof val.constructor.isBuffer === 'function' + && val.constructor.isBuffer(val); } -var stream = 1 === fd ? process.stdout : - 2 === fd ? process.stderr : - createWritableStdioStream(fd); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ -function useColors() { - return 'colors' in exports.inspectOpts - ? Boolean(exports.inspectOpts.colors) - : tty.isatty(fd); -} +/***/ }), +/* 481 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Map %o to `util.inspect()`, all on a single line. +"use strict"; +/*! + * is-accessor-descriptor + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. */ -exports.formatters.o = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts) - .split('\n').map(function(str) { - return str.trim() - }).join(' '); -}; -/** - * Map %o to `util.inspect()`, allowing multiple lines if needed. - */ -exports.formatters.O = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); +var typeOf = __webpack_require__(482); + +// accessor descriptor properties +var accessor = { + get: 'function', + set: 'function', + configurable: 'boolean', + enumerable: 'boolean' }; -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ +function isAccessorDescriptor(obj, prop) { + if (typeof prop === 'string') { + var val = Object.getOwnPropertyDescriptor(obj, prop); + return typeof val !== 'undefined'; + } -function formatArgs(args) { - var name = this.namespace; - var useColors = this.useColors; + if (typeOf(obj) !== 'object') { + return false; + } - if (useColors) { - var c = this.color; - var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m'; + if (has(obj, 'value') || has(obj, 'writable')) { + return false; + } - args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m'); - } else { - args[0] = new Date().toUTCString() - + ' ' + name + ' ' + args[0]; + if (!has(obj, 'get') || typeof obj.get !== 'function') { + return false; } -} -/** - * Invokes `util.format()` with the specified arguments and writes to `stream`. - */ + // tldr: it's valid to have "set" be undefined + // "set" might be undefined if `Object.getOwnPropertyDescriptor` + // was used to get the value, and only `get` was defined by the user + if (has(obj, 'set') && typeof obj[key] !== 'function' && typeof obj[key] !== 'undefined') { + return false; + } -function log() { - return stream.write(util.format.apply(util, arguments) + '\n'); -} + for (var key in obj) { + if (!accessor.hasOwnProperty(key)) { + continue; + } -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ + if (typeOf(obj[key]) === accessor[key]) { + continue; + } -function save(namespaces) { - if (null == namespaces) { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } else { - process.env.DEBUG = namespaces; + if (typeof obj[key] !== 'undefined') { + return false; + } } + return true; +} + +function has(obj, key) { + return {}.hasOwnProperty.call(obj, key); } /** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private + * Expose `isAccessorDescriptor` */ -function load() { - return process.env.DEBUG; -} +module.exports = isAccessorDescriptor; + + +/***/ }), +/* 482 */ +/***/ (function(module, exports, __webpack_require__) { + +var isBuffer = __webpack_require__(396); +var toString = Object.prototype.toString; /** - * Copied from `node/src/node.js`. + * Get the native `typeof` a value. * - * XXX: It's lame that node doesn't expose this API out-of-the-box. It also - * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. + * @param {*} `val` + * @return {*} Native javascript type */ -function createWritableStdioStream (fd) { - var stream; - var tty_wrap = process.binding('tty_wrap'); +module.exports = function kindOf(val) { + // primitivies + if (typeof val === 'undefined') { + return 'undefined'; + } + if (val === null) { + return 'null'; + } + if (val === true || val === false || val instanceof Boolean) { + return 'boolean'; + } + if (typeof val === 'string' || val instanceof String) { + return 'string'; + } + if (typeof val === 'number' || val instanceof Number) { + return 'number'; + } - // Note stream._type is used for test-module-load-list.js + // functions + if (typeof val === 'function' || val instanceof Function) { + return 'function'; + } - switch (tty_wrap.guessHandleType(fd)) { - case 'TTY': - stream = new tty.WriteStream(fd); - stream._type = 'tty'; + // array + if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { + return 'array'; + } - // Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; + // check for instances of RegExp and Date before calling `toString` + if (val instanceof RegExp) { + return 'regexp'; + } + if (val instanceof Date) { + return 'date'; + } - case 'FILE': - var fs = __webpack_require__(13); - stream = new fs.SyncWriteStream(fd, { autoClose: false }); - stream._type = 'fs'; - break; + // other objects + var type = toString.call(val); - case 'PIPE': - case 'TCP': - var net = __webpack_require__(392); - stream = new net.Socket({ - fd: fd, - readable: false, - writable: true - }); + if (type === '[object RegExp]') { + return 'regexp'; + } + if (type === '[object Date]') { + return 'date'; + } + if (type === '[object Arguments]') { + return 'arguments'; + } + if (type === '[object Error]') { + return 'error'; + } - // FIXME Should probably have an option in net.Socket to create a - // stream from an existing fd which is writable only. But for now - // we'll just add this hack and set the `readable` member to false. - // Test: ./node test/fixtures/echo.js < /etc/passwd - stream.readable = false; - stream.read = null; - stream._type = 'pipe'; + // buffer + if (isBuffer(val)) { + return 'buffer'; + } - // FIXME Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; + // es6: Map, WeakMap, Set, WeakSet + if (type === '[object Set]') { + return 'set'; + } + if (type === '[object WeakSet]') { + return 'weakset'; + } + if (type === '[object Map]') { + return 'map'; + } + if (type === '[object WeakMap]') { + return 'weakmap'; + } + if (type === '[object Symbol]') { + return 'symbol'; + } - default: - // Probably an error on in uv_guess_handle() - throw new Error('Implement me. Unknown stream file type!'); + // typed arrays + if (type === '[object Int8Array]') { + return 'int8array'; + } + if (type === '[object Uint8Array]') { + return 'uint8array'; + } + if (type === '[object Uint8ClampedArray]') { + return 'uint8clampedarray'; + } + if (type === '[object Int16Array]') { + return 'int16array'; + } + if (type === '[object Uint16Array]') { + return 'uint16array'; + } + if (type === '[object Int32Array]') { + return 'int32array'; + } + if (type === '[object Uint32Array]') { + return 'uint32array'; + } + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; } - // For supporting legacy API we put the FD here. - stream.fd = fd; + // must be a plain object + return 'object'; +}; - stream._isStdio = true; - return stream; -} +/***/ }), +/* 483 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Init logic for `debug` instances. +"use strict"; +/*! + * is-data-descriptor * - * Create a new `inspectOpts` object in case `useColors` is set - * differently for a particular `debug` instance. + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. */ -function init (debug) { - debug.inspectOpts = {}; - var keys = Object.keys(exports.inspectOpts); - for (var i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } -} -/** - * Enable namespaces listed in `process.env.DEBUG` initially. - */ +var typeOf = __webpack_require__(484); -exports.enable(load()); +// data descriptor properties +var data = { + configurable: 'boolean', + enumerable: 'boolean', + writable: 'boolean' +}; +function isDataDescriptor(obj, prop) { + if (typeOf(obj) !== 'object') { + return false; + } -/***/ }), -/* 391 */ -/***/ (function(module, exports) { + if (typeof prop === 'string') { + var val = Object.getOwnPropertyDescriptor(obj, prop); + return typeof val !== 'undefined'; + } -module.exports = require("tty"); + if (!('value' in obj) && !('writable' in obj)) { + return false; + } -/***/ }), -/* 392 */ -/***/ (function(module, exports) { + for (var key in obj) { + if (key === 'value') continue; -module.exports = require("net"); + if (!data.hasOwnProperty(key)) { + continue; + } -/***/ }), -/* 393 */ -/***/ (function(module, exports, __webpack_require__) { + if (typeOf(obj[key]) === data[key]) { + continue; + } -/* - * Copyright 2009-2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE.txt or: - * http://opensource.org/licenses/BSD-3-Clause + if (typeof obj[key] !== 'undefined') { + return false; + } + } + return true; +} + +/** + * Expose `isDataDescriptor` */ -exports.SourceMapGenerator = __webpack_require__(145).SourceMapGenerator; -exports.SourceMapConsumer = __webpack_require__(396).SourceMapConsumer; -exports.SourceNode = __webpack_require__(399).SourceNode; +module.exports = isDataDescriptor; -/***/ }), -/* 394 */ -/***/ (function(module, exports) { -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ +/***/ }), +/* 484 */ +/***/ (function(module, exports, __webpack_require__) { -var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); +var isBuffer = __webpack_require__(396); +var toString = Object.prototype.toString; /** - * Encode an integer in the range of 0 to 63 to a single base 64 digit. + * Get the native `typeof` a value. + * + * @param {*} `val` + * @return {*} Native javascript type */ -exports.encode = function (number) { - if (0 <= number && number < intToCharMap.length) { - return intToCharMap[number]; - } - throw new TypeError("Must be between 0 and 63: " + number); -}; -/** - * Decode a single base 64 character code digit to an integer. Returns -1 on - * failure. - */ -exports.decode = function (charCode) { - var bigA = 65; // 'A' - var bigZ = 90; // 'Z' +module.exports = function kindOf(val) { + // primitivies + if (typeof val === 'undefined') { + return 'undefined'; + } + if (val === null) { + return 'null'; + } + if (val === true || val === false || val instanceof Boolean) { + return 'boolean'; + } + if (typeof val === 'string' || val instanceof String) { + return 'string'; + } + if (typeof val === 'number' || val instanceof Number) { + return 'number'; + } - var littleA = 97; // 'a' - var littleZ = 122; // 'z' + // functions + if (typeof val === 'function' || val instanceof Function) { + return 'function'; + } - var zero = 48; // '0' - var nine = 57; // '9' + // array + if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { + return 'array'; + } - var plus = 43; // '+' - var slash = 47; // '/' + // check for instances of RegExp and Date before calling `toString` + if (val instanceof RegExp) { + return 'regexp'; + } + if (val instanceof Date) { + return 'date'; + } - var littleOffset = 26; - var numberOffset = 52; + // other objects + var type = toString.call(val); - // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ - if (bigA <= charCode && charCode <= bigZ) { - return (charCode - bigA); + if (type === '[object RegExp]') { + return 'regexp'; + } + if (type === '[object Date]') { + return 'date'; + } + if (type === '[object Arguments]') { + return 'arguments'; + } + if (type === '[object Error]') { + return 'error'; } - // 26 - 51: abcdefghijklmnopqrstuvwxyz - if (littleA <= charCode && charCode <= littleZ) { - return (charCode - littleA + littleOffset); + // buffer + if (isBuffer(val)) { + return 'buffer'; } - // 52 - 61: 0123456789 - if (zero <= charCode && charCode <= nine) { - return (charCode - zero + numberOffset); + // es6: Map, WeakMap, Set, WeakSet + if (type === '[object Set]') { + return 'set'; + } + if (type === '[object WeakSet]') { + return 'weakset'; + } + if (type === '[object Map]') { + return 'map'; + } + if (type === '[object WeakMap]') { + return 'weakmap'; + } + if (type === '[object Symbol]') { + return 'symbol'; } - // 62: + - if (charCode == plus) { - return 62; + // typed arrays + if (type === '[object Int8Array]') { + return 'int8array'; + } + if (type === '[object Uint8Array]') { + return 'uint8array'; + } + if (type === '[object Uint8ClampedArray]') { + return 'uint8clampedarray'; + } + if (type === '[object Int16Array]') { + return 'int16array'; + } + if (type === '[object Uint16Array]') { + return 'uint16array'; + } + if (type === '[object Int32Array]') { + return 'int32array'; + } + if (type === '[object Uint32Array]') { + return 'uint32array'; } - - // 63: / - if (charCode == slash) { - return 63; + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; } - // Invalid base64 digit. - return -1; + // must be a plain object + return 'object'; }; /***/ }), -/* 395 */ +/* 485 */ /***/ (function(module, exports, __webpack_require__) { -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2014 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ +"use strict"; -var util = __webpack_require__(68); -/** - * Determine whether mappingB is after mappingA with respect to generated - * position. - */ -function generatedPositionAfter(mappingA, mappingB) { - // Optimized for most common case - var lineA = mappingA.generatedLine; - var lineB = mappingB.generatedLine; - var columnA = mappingA.generatedColumn; - var columnB = mappingB.generatedColumn; - return lineB > lineA || lineB == lineA && columnB >= columnA || - util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; -} +var use = __webpack_require__(486); +var define = __webpack_require__(478); +var debug = __webpack_require__(495)('snapdragon:compiler'); +var utils = __webpack_require__(502); /** - * A data structure to provide a sorted view of accumulated mappings in a - * performance conscious manner. It trades a neglibable overhead in general - * case for a large speedup in case of mappings being added in order. + * Create a new `Compiler` with the given `options`. + * @param {Object} `options` */ -function MappingList() { - this._array = []; - this._sorted = true; - // Serves as infimum - this._last = {generatedLine: -1, generatedColumn: 0}; + +function Compiler(options, state) { + debug('initializing', __filename); + this.options = utils.extend({source: 'string'}, options); + this.state = state || {}; + this.compilers = {}; + this.output = ''; + this.set('eos', function(node) { + return this.emit(node.val, node); + }); + this.set('noop', function(node) { + return this.emit(node.val, node); + }); + this.set('bos', function(node) { + return this.emit(node.val, node); + }); + use(this); } /** - * Iterate through internal items. This method takes the same arguments that - * `Array.prototype.forEach` takes. - * - * NOTE: The order of the mappings is NOT guaranteed. + * Prototype methods */ -MappingList.prototype.unsortedForEach = - function MappingList_forEach(aCallback, aThisArg) { - this._array.forEach(aCallback, aThisArg); - }; -/** - * Add the given source mapping. - * - * @param Object aMapping - */ -MappingList.prototype.add = function MappingList_add(aMapping) { - if (generatedPositionAfter(this._last, aMapping)) { - this._last = aMapping; - this._array.push(aMapping); - } else { - this._sorted = false; - this._array.push(aMapping); - } -}; +Compiler.prototype = { -/** - * Returns the flat, sorted array of mappings. The mappings are sorted by - * generated position. - * - * WARNING: This method returns internal data without copying, for - * performance. The return value must NOT be mutated, and should be treated as - * an immutable borrow. If you want to take ownership, you must make your own - * copy. - */ -MappingList.prototype.toArray = function MappingList_toArray() { - if (!this._sorted) { - this._array.sort(util.compareByGeneratedPositionsInflated); - this._sorted = true; - } - return this._array; -}; + /** + * Throw an error message with details including the cursor position. + * @param {String} `msg` Message to use in the Error. + */ -exports.MappingList = MappingList; + error: function(msg, node) { + var pos = node.position || {start: {column: 0}}; + var message = this.options.source + ' column:' + pos.start.column + ': ' + msg; + var err = new Error(message); + err.reason = msg; + err.column = pos.start.column; + err.source = this.pattern; -/***/ }), -/* 396 */ -/***/ (function(module, exports, __webpack_require__) { + if (this.options.silent) { + this.errors.push(err); + } else { + throw err; + } + }, -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ + /** + * Define a non-enumberable property on the `Compiler` instance. + * + * ```js + * compiler.define('foo', 'bar'); + * ``` + * @name .define + * @param {String} `key` propery name + * @param {any} `val` property value + * @return {Object} Returns the Compiler instance for chaining. + * @api public + */ -var util = __webpack_require__(68); -var binarySearch = __webpack_require__(397); -var ArraySet = __webpack_require__(147).ArraySet; -var base64VLQ = __webpack_require__(146); -var quickSort = __webpack_require__(398).quickSort; + define: function(key, val) { + define(this, key, val); + return this; + }, -function SourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } + /** + * Emit `node.val` + */ - return sourceMap.sections != null - ? new IndexedSourceMapConsumer(sourceMap) - : new BasicSourceMapConsumer(sourceMap); -} + emit: function(str, node) { + this.output += str; + return str; + }, -SourceMapConsumer.fromSourceMap = function(aSourceMap) { - return BasicSourceMapConsumer.fromSourceMap(aSourceMap); -} + /** + * Add a compiler `fn` with the given `name` + */ -/** - * The version of the source mapping spec that we are consuming. - */ -SourceMapConsumer.prototype._version = 3; + set: function(name, fn) { + this.compilers[name] = fn; + return this; + }, -// `__generatedMappings` and `__originalMappings` are arrays that hold the -// parsed mapping coordinates from the source map's "mappings" attribute. They -// are lazily instantiated, accessed via the `_generatedMappings` and -// `_originalMappings` getters respectively, and we only parse the mappings -// and create these arrays once queried for a source location. We jump through -// these hoops because there can be many thousands of mappings, and parsing -// them is expensive, so we only want to do it if we must. -// -// Each object in the arrays is of the form: -// -// { -// generatedLine: The line number in the generated code, -// generatedColumn: The column number in the generated code, -// source: The path to the original source file that generated this -// chunk of code, -// originalLine: The line number in the original source that -// corresponds to this chunk of generated code, -// originalColumn: The column number in the original source that -// corresponds to this chunk of generated code, -// name: The name of the original symbol which generated this chunk of -// code. -// } -// -// All properties except for `generatedLine` and `generatedColumn` can be -// `null`. -// -// `_generatedMappings` is ordered by the generated positions. -// -// `_originalMappings` is ordered by the original positions. + /** + * Get compiler `name`. + */ -SourceMapConsumer.prototype.__generatedMappings = null; -Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { - get: function () { - if (!this.__generatedMappings) { - this._parseMappings(this._mappings, this.sourceRoot); - } + get: function(name) { + return this.compilers[name]; + }, - return this.__generatedMappings; - } -}); + /** + * Get the previous AST node. + */ -SourceMapConsumer.prototype.__originalMappings = null; -Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { - get: function () { - if (!this.__originalMappings) { - this._parseMappings(this._mappings, this.sourceRoot); - } + prev: function(n) { + return this.ast.nodes[this.idx - (n || 1)] || { type: 'bos', val: '' }; + }, - return this.__originalMappings; - } -}); + /** + * Get the next AST node. + */ -SourceMapConsumer.prototype._charIsMappingSeparator = - function SourceMapConsumer_charIsMappingSeparator(aStr, index) { - var c = aStr.charAt(index); - return c === ";" || c === ","; - }; + next: function(n) { + return this.ast.nodes[this.idx + (n || 1)] || { type: 'eos', val: '' }; + }, -/** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ -SourceMapConsumer.prototype._parseMappings = - function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { - throw new Error("Subclasses must implement _parseMappings"); - }; + /** + * Visit `node`. + */ -SourceMapConsumer.GENERATED_ORDER = 1; -SourceMapConsumer.ORIGINAL_ORDER = 2; + visit: function(node, nodes, i) { + var fn = this.compilers[node.type]; + this.idx = i; -SourceMapConsumer.GREATEST_LOWER_BOUND = 1; -SourceMapConsumer.LEAST_UPPER_BOUND = 2; + if (typeof fn !== 'function') { + throw this.error('compiler "' + node.type + '" is not registered', node); + } + return fn.call(this, node, nodes, i); + }, -/** - * Iterate over each mapping between an original source/line/column and a - * generated line/column in this source map. - * - * @param Function aCallback - * The function that is called with each mapping. - * @param Object aContext - * Optional. If specified, this object will be the value of `this` every - * time that `aCallback` is called. - * @param aOrder - * Either `SourceMapConsumer.GENERATED_ORDER` or - * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to - * iterate over the mappings sorted by the generated file's line/column - * order or the original's source/line/column order, respectively. Defaults to - * `SourceMapConsumer.GENERATED_ORDER`. - */ -SourceMapConsumer.prototype.eachMapping = - function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { - var context = aContext || null; - var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + /** + * Map visit over array of `nodes`. + */ - var mappings; - switch (order) { - case SourceMapConsumer.GENERATED_ORDER: - mappings = this._generatedMappings; - break; - case SourceMapConsumer.ORIGINAL_ORDER: - mappings = this._originalMappings; - break; - default: - throw new Error("Unknown order of iteration."); + mapVisit: function(nodes) { + if (!Array.isArray(nodes)) { + throw new TypeError('expected an array'); } + var len = nodes.length; + var idx = -1; + while (++idx < len) { + this.visit(nodes[idx], nodes, idx); + } + return this; + }, - var sourceRoot = this.sourceRoot; - mappings.map(function (mapping) { - var source = mapping.source === null ? null : this._sources.at(mapping.source); - if (source != null && sourceRoot != null) { - source = util.join(sourceRoot, source); - } - return { - source: source, - generatedLine: mapping.generatedLine, - generatedColumn: mapping.generatedColumn, - originalLine: mapping.originalLine, - originalColumn: mapping.originalColumn, - name: mapping.name === null ? null : this._names.at(mapping.name) - }; - }, this).forEach(aCallback, context); - }; - -/** - * Returns all generated line and column information for the original source, - * line, and column provided. If no column is provided, returns all mappings - * corresponding to a either the line we are searching for or the next - * closest line that has any mappings. Otherwise, returns all mappings - * corresponding to the given line and either the column we are searching for - * or the next closest column that has any offsets. - * - * The only argument is an object with the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: Optional. the column number in the original source. - * - * and an array of objects is returned, each with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ -SourceMapConsumer.prototype.allGeneratedPositionsFor = - function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { - var line = util.getArg(aArgs, 'line'); + /** + * Compile `ast`. + */ - // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping - // returns the index of the closest mapping less than the needle. By - // setting needle.originalColumn to 0, we thus find the last mapping for - // the given line, provided such a mapping exists. - var needle = { - source: util.getArg(aArgs, 'source'), - originalLine: line, - originalColumn: util.getArg(aArgs, 'column', 0) - }; + compile: function(ast, options) { + var opts = utils.extend({}, this.options, options); + this.ast = ast; + this.parsingErrors = this.ast.errors; + this.output = ''; - if (this.sourceRoot != null) { - needle.source = util.relative(this.sourceRoot, needle.source); - } - if (!this._sources.has(needle.source)) { - return []; + // source map support + if (opts.sourcemap) { + var sourcemaps = __webpack_require__(521); + sourcemaps(this); + this.mapVisit(this.ast.nodes); + this.applySourceMaps(); + this.map = opts.sourcemap === 'generator' ? this.map : this.map.toJSON(); + return this; } - needle.source = this._sources.indexOf(needle.source); - var mappings = []; + this.mapVisit(this.ast.nodes); + return this; + } +}; - var index = this._findMapping(needle, - this._originalMappings, - "originalLine", - "originalColumn", - util.compareByOriginalPositions, - binarySearch.LEAST_UPPER_BOUND); - if (index >= 0) { - var mapping = this._originalMappings[index]; +/** + * Expose `Compiler` + */ - if (aArgs.column === undefined) { - var originalLine = mapping.originalLine; +module.exports = Compiler; - // Iterate until either we run out of mappings, or we run into - // a mapping for a different line than the one we found. Since - // mappings are sorted, this is guaranteed to find all mappings for - // the line we found. - while (mapping && mapping.originalLine === originalLine) { - mappings.push({ - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }); - mapping = this._originalMappings[++index]; - } - } else { - var originalColumn = mapping.originalColumn; +/***/ }), +/* 486 */ +/***/ (function(module, exports, __webpack_require__) { - // Iterate until either we run out of mappings, or we run into - // a mapping for a different line than the one we were searching for. - // Since mappings are sorted, this is guaranteed to find all mappings for - // the line we are searching for. - while (mapping && - mapping.originalLine === line && - mapping.originalColumn == originalColumn) { - mappings.push({ - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }); +"use strict"; +/*! + * use + * + * Copyright (c) 2015, 2017, Jon Schlinkert. + * Released under the MIT License. + */ - mapping = this._originalMappings[++index]; - } - } - } - return mappings; - }; -exports.SourceMapConsumer = SourceMapConsumer; +var utils = __webpack_require__(487); -/** - * A BasicSourceMapConsumer instance represents a parsed source map which we can - * query for information about the original file positions by giving it a file - * position in the generated source. - * - * The only parameter is the raw source map (either as a JSON string, or - * already parsed to an object). According to the spec, source maps have the - * following attributes: - * - * - version: Which version of the source map spec this map is following. - * - sources: An array of URLs to the original source files. - * - names: An array of identifiers which can be referrenced by individual mappings. - * - sourceRoot: Optional. The URL root from which all sources are relative. - * - sourcesContent: Optional. An array of contents of the original source files. - * - mappings: A string of base64 VLQs which contain the actual mappings. - * - file: Optional. The generated file this source map is associated with. - * - * Here is an example source map, taken from the source map spec[0]: - * - * { - * version : 3, - * file: "out.js", - * sourceRoot : "", - * sources: ["foo.js", "bar.js"], - * names: ["src", "maps", "are", "fun"], - * mappings: "AA,AB;;ABCDE;" - * } - * - * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# - */ -function BasicSourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); +module.exports = function base(app, opts) { + if (!utils.isObject(app) && typeof app !== 'function') { + throw new TypeError('use: expect `app` be an object or function'); + } + + if (!utils.isObject(opts)) { + opts = {}; + } + + var prop = utils.isString(opts.prop) ? opts.prop : 'fns'; + if (!Array.isArray(app[prop])) { + utils.define(app, prop, []); } - var version = util.getArg(sourceMap, 'version'); - var sources = util.getArg(sourceMap, 'sources'); - // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which - // requires the array) to play nice here. - var names = util.getArg(sourceMap, 'names', []); - var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); - var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); - var mappings = util.getArg(sourceMap, 'mappings'); - var file = util.getArg(sourceMap, 'file', null); + /** + * Define a plugin function to be passed to use. The only + * parameter exposed to the plugin is `app`, the object or function. + * passed to `use(app)`. `app` is also exposed as `this` in plugins. + * + * Additionally, **if a plugin returns a function, the function will + * be pushed onto the `fns` array**, allowing the plugin to be + * called at a later point by the `run` method. + * + * ```js + * var use = require('use'); + * + * // define a plugin + * function foo(app) { + * // do stuff + * } + * + * var app = function(){}; + * use(app); + * + * // register plugins + * app.use(foo); + * app.use(bar); + * app.use(baz); + * ``` + * @name .use + * @param {Function} `fn` plugin function to call + * @api public + */ + + utils.define(app, 'use', use); - // Once again, Sass deviates from the spec and supplies the version as a - // string rather than a number, so we use loose equality checking here. - if (version != this._version) { - throw new Error('Unsupported version: ' + version); - } + /** + * Run all plugins on `fns`. Any plugin that returns a function + * when called by `use` is pushed onto the `fns` array. + * + * ```js + * var config = {}; + * app.run(config); + * ``` + * @name .run + * @param {Object} `value` Object to be modified by plugins. + * @return {Object} Returns the object passed to `run` + * @api public + */ - sources = sources - .map(String) - // Some source maps produce relative source paths like "./foo.js" instead of - // "foo.js". Normalize these first so that future comparisons will succeed. - // See bugzil.la/1090768. - .map(util.normalize) - // Always ensure that absolute sources are internally stored relative to - // the source root, if the source root is absolute. Not doing this would - // be particularly problematic when the source root is a prefix of the - // source (valid, but why??). See github issue #199 and bugzil.la/1188982. - .map(function (source) { - return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) - ? util.relative(sourceRoot, source) - : source; - }); + utils.define(app, 'run', function(val) { + if (!utils.isObject(val)) return; + decorate(val); - // Pass `true` below to allow duplicate names and sources. While source maps - // are intended to be compressed and deduplicated, the TypeScript compiler - // sometimes generates source maps with duplicates in them. See Github issue - // #72 and bugzil.la/889492. - this._names = ArraySet.fromArray(names.map(String), true); - this._sources = ArraySet.fromArray(sources, true); + var self = this || app; + var fns = self[prop]; + var len = fns.length; + var idx = -1; - this.sourceRoot = sourceRoot; - this.sourcesContent = sourcesContent; - this._mappings = mappings; - this.file = file; -} + while (++idx < len) { + val.use(fns[idx]); + } + return val; + }); -BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); -BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + /** + * Call plugin `fn`. If a function is returned push it into the + * `fns` array to be called by the `run` method. + */ -/** - * Create a BasicSourceMapConsumer from a SourceMapGenerator. - * - * @param SourceMapGenerator aSourceMap - * The source map that will be consumed. - * @returns BasicSourceMapConsumer - */ -BasicSourceMapConsumer.fromSourceMap = - function SourceMapConsumer_fromSourceMap(aSourceMap) { - var smc = Object.create(BasicSourceMapConsumer.prototype); + function use(fn, options) { + if (typeof fn !== 'function') { + throw new TypeError('.use expects `fn` be a function'); + } - var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); - var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); - smc.sourceRoot = aSourceMap._sourceRoot; - smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), - smc.sourceRoot); - smc.file = aSourceMap._file; + var self = this || app; + if (typeof opts.fn === 'function') { + opts.fn.call(self, self, options); + } - // Because we are modifying the entries (by converting string sources and - // names to indices into the sources and names ArraySets), we have to make - // a copy of the entry or else bad things happen. Shared mutable state - // strikes again! See github issue #191. + var plugin = fn.call(self, self); + if (typeof plugin === 'function') { + var fns = self[prop]; + fns.push(plugin); + } + return self; + } - var generatedMappings = aSourceMap._mappings.toArray().slice(); - var destGeneratedMappings = smc.__generatedMappings = []; - var destOriginalMappings = smc.__originalMappings = []; + /** + * Ensure the `.use` method exists on `val` + */ - for (var i = 0, length = generatedMappings.length; i < length; i++) { - var srcMapping = generatedMappings[i]; - var destMapping = new Mapping; - destMapping.generatedLine = srcMapping.generatedLine; - destMapping.generatedColumn = srcMapping.generatedColumn; + function decorate(val) { + if (!val.use || !val.run) { + base(val); + } + } - if (srcMapping.source) { - destMapping.source = sources.indexOf(srcMapping.source); - destMapping.originalLine = srcMapping.originalLine; - destMapping.originalColumn = srcMapping.originalColumn; + return app; +}; - if (srcMapping.name) { - destMapping.name = names.indexOf(srcMapping.name); - } - destOriginalMappings.push(destMapping); - } +/***/ }), +/* 487 */ +/***/ (function(module, exports, __webpack_require__) { - destGeneratedMappings.push(destMapping); - } +"use strict"; - quickSort(smc.__originalMappings, util.compareByOriginalPositions); - return smc; - }; +var utils = {}; -/** - * The version of the source mapping spec that we are consuming. - */ -BasicSourceMapConsumer.prototype._version = 3; -/** - * The list of original sources. - */ -Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { - get: function () { - return this._sources.toArray().map(function (s) { - return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s; - }, this); - } -}); /** - * Provide the JIT with a nice shape / hidden class. + * Lazily required module dependencies */ -function Mapping() { - this.generatedLine = 0; - this.generatedColumn = 0; - this.source = null; - this.originalLine = null; - this.originalColumn = null; - this.name = null; -} + +utils.define = __webpack_require__(488); +utils.isObject = __webpack_require__(416); + + +utils.isString = function(val) { + return val && typeof val === 'string'; +}; /** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). + * Expose `utils` modules */ -BasicSourceMapConsumer.prototype._parseMappings = - function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { - var generatedLine = 1; - var previousGeneratedColumn = 0; - var previousOriginalLine = 0; - var previousOriginalColumn = 0; - var previousSource = 0; - var previousName = 0; - var length = aStr.length; - var index = 0; - var cachedSegments = {}; - var temp = {}; - var originalMappings = []; - var generatedMappings = []; - var mapping, str, segment, end, value; - - while (index < length) { - if (aStr.charAt(index) === ';') { - generatedLine++; - index++; - previousGeneratedColumn = 0; - } - else if (aStr.charAt(index) === ',') { - index++; - } - else { - mapping = new Mapping(); - mapping.generatedLine = generatedLine; - // Because each offset is encoded relative to the previous one, - // many segments often have the same encoding. We can exploit this - // fact by caching the parsed variable length fields of each segment, - // allowing us to avoid a second parse if we encounter the same - // segment again. - for (end = index; end < length; end++) { - if (this._charIsMappingSeparator(aStr, end)) { - break; - } - } - str = aStr.slice(index, end); +module.exports = utils; - segment = cachedSegments[str]; - if (segment) { - index += str.length; - } else { - segment = []; - while (index < end) { - base64VLQ.decode(aStr, index, temp); - value = temp.value; - index = temp.rest; - segment.push(value); - } - if (segment.length === 2) { - throw new Error('Found a source, but no line and column'); - } +/***/ }), +/* 488 */ +/***/ (function(module, exports, __webpack_require__) { - if (segment.length === 3) { - throw new Error('Found a source and line, but no column'); - } +"use strict"; +/*! + * define-property + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. + */ - cachedSegments[str] = segment; - } - // Generated column. - mapping.generatedColumn = previousGeneratedColumn + segment[0]; - previousGeneratedColumn = mapping.generatedColumn; - if (segment.length > 1) { - // Original source. - mapping.source = previousSource + segment[1]; - previousSource += segment[1]; +var isDescriptor = __webpack_require__(489); - // Original line. - mapping.originalLine = previousOriginalLine + segment[2]; - previousOriginalLine = mapping.originalLine; - // Lines are stored 0-based - mapping.originalLine += 1; +module.exports = function defineProperty(obj, prop, val) { + if (typeof obj !== 'object' && typeof obj !== 'function') { + throw new TypeError('expected an object or function.'); + } - // Original column. - mapping.originalColumn = previousOriginalColumn + segment[3]; - previousOriginalColumn = mapping.originalColumn; + if (typeof prop !== 'string') { + throw new TypeError('expected `prop` to be a string.'); + } - if (segment.length > 4) { - // Original name. - mapping.name = previousName + segment[4]; - previousName += segment[4]; - } - } + if (isDescriptor(val) && ('set' in val || 'get' in val)) { + return Object.defineProperty(obj, prop, val); + } - generatedMappings.push(mapping); - if (typeof mapping.originalLine === 'number') { - originalMappings.push(mapping); - } - } - } + return Object.defineProperty(obj, prop, { + configurable: true, + enumerable: false, + writable: true, + value: val + }); +}; - quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated); - this.__generatedMappings = generatedMappings; - quickSort(originalMappings, util.compareByOriginalPositions); - this.__originalMappings = originalMappings; - }; +/***/ }), +/* 489 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Find the mapping that best matches the hypothetical "needle" mapping that - * we are searching for in the given "haystack" of mappings. +"use strict"; +/*! + * is-descriptor + * + * Copyright (c) 2015-2017, Jon Schlinkert. + * Released under the MIT License. */ -BasicSourceMapConsumer.prototype._findMapping = - function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, - aColumnName, aComparator, aBias) { - // To return the position we are searching for, we must first find the - // mapping for the given position and then return the opposite position it - // points to. Because the mappings are sorted, we can use binary search to - // find the best mapping. - if (aNeedle[aLineName] <= 0) { - throw new TypeError('Line must be greater than or equal to 1, got ' - + aNeedle[aLineName]); - } - if (aNeedle[aColumnName] < 0) { - throw new TypeError('Column must be greater than or equal to 0, got ' - + aNeedle[aColumnName]); - } - return binarySearch.search(aNeedle, aMappings, aComparator, aBias); - }; -/** - * Compute the last column for each generated mapping. The last column is - * inclusive. - */ -BasicSourceMapConsumer.prototype.computeColumnSpans = - function SourceMapConsumer_computeColumnSpans() { - for (var index = 0; index < this._generatedMappings.length; ++index) { - var mapping = this._generatedMappings[index]; +var typeOf = __webpack_require__(490); +var isAccessor = __webpack_require__(491); +var isData = __webpack_require__(493); - // Mappings do not contain a field for the last generated columnt. We - // can come up with an optimistic estimate, however, by assuming that - // mappings are contiguous (i.e. given two consecutive mappings, the - // first mapping ends where the second one starts). - if (index + 1 < this._generatedMappings.length) { - var nextMapping = this._generatedMappings[index + 1]; +module.exports = function isDescriptor(obj, key) { + if (typeOf(obj) !== 'object') { + return false; + } + if ('get' in obj) { + return isAccessor(obj, key); + } + return isData(obj, key); +}; - if (mapping.generatedLine === nextMapping.generatedLine) { - mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; - continue; - } - } - // The last mapping for each line spans the entire line. - mapping.lastGeneratedColumn = Infinity; - } - }; +/***/ }), +/* 490 */ +/***/ (function(module, exports) { + +var toString = Object.prototype.toString; /** - * Returns the original source, line, and column information for the generated - * source's line and column positions provided. The only argument is an object - * with the following properties: - * - * - line: The line number in the generated source. - * - column: The column number in the generated source. - * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or - * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. - * - * and an object is returned with the following properties: + * Get the native `typeof` a value. * - * - source: The original source file, or null. - * - line: The line number in the original source, or null. - * - column: The column number in the original source, or null. - * - name: The original identifier, or null. + * @param {*} `val` + * @return {*} Native javascript type */ -BasicSourceMapConsumer.prototype.originalPositionFor = - function SourceMapConsumer_originalPositionFor(aArgs) { - var needle = { - generatedLine: util.getArg(aArgs, 'line'), - generatedColumn: util.getArg(aArgs, 'column') - }; - var index = this._findMapping( - needle, - this._generatedMappings, - "generatedLine", - "generatedColumn", - util.compareByGeneratedPositionsDeflated, - util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) - ); +module.exports = function kindOf(val) { + var type = typeof val; - if (index >= 0) { - var mapping = this._generatedMappings[index]; + // primitivies + if (type === 'undefined') { + return 'undefined'; + } + if (val === null) { + return 'null'; + } + if (val === true || val === false || val instanceof Boolean) { + return 'boolean'; + } + if (type === 'string' || val instanceof String) { + return 'string'; + } + if (type === 'number' || val instanceof Number) { + return 'number'; + } - if (mapping.generatedLine === needle.generatedLine) { - var source = util.getArg(mapping, 'source', null); - if (source !== null) { - source = this._sources.at(source); - if (this.sourceRoot != null) { - source = util.join(this.sourceRoot, source); - } - } - var name = util.getArg(mapping, 'name', null); - if (name !== null) { - name = this._names.at(name); - } - return { - source: source, - line: util.getArg(mapping, 'originalLine', null), - column: util.getArg(mapping, 'originalColumn', null), - name: name - }; - } + // functions + if (type === 'function' || val instanceof Function) { + if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') { + return 'generatorfunction'; } + return 'function'; + } - return { - source: null, - line: null, - column: null, - name: null - }; - }; + // array + if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { + return 'array'; + } + + // check for instances of RegExp and Date before calling `toString` + if (val instanceof RegExp) { + return 'regexp'; + } + if (val instanceof Date) { + return 'date'; + } + + // other objects + type = toString.call(val); + + if (type === '[object RegExp]') { + return 'regexp'; + } + if (type === '[object Date]') { + return 'date'; + } + if (type === '[object Arguments]') { + return 'arguments'; + } + if (type === '[object Error]') { + return 'error'; + } + if (type === '[object Promise]') { + return 'promise'; + } + + // buffer + if (isBuffer(val)) { + return 'buffer'; + } + + // es6: Map, WeakMap, Set, WeakSet + if (type === '[object Set]') { + return 'set'; + } + if (type === '[object WeakSet]') { + return 'weakset'; + } + if (type === '[object Map]') { + return 'map'; + } + if (type === '[object WeakMap]') { + return 'weakmap'; + } + if (type === '[object Symbol]') { + return 'symbol'; + } + + if (type === '[object Map Iterator]') { + return 'mapiterator'; + } + if (type === '[object Set Iterator]') { + return 'setiterator'; + } + if (type === '[object String Iterator]') { + return 'stringiterator'; + } + if (type === '[object Array Iterator]') { + return 'arrayiterator'; + } + + // typed arrays + if (type === '[object Int8Array]') { + return 'int8array'; + } + if (type === '[object Uint8Array]') { + return 'uint8array'; + } + if (type === '[object Uint8ClampedArray]') { + return 'uint8clampedarray'; + } + if (type === '[object Int16Array]') { + return 'int16array'; + } + if (type === '[object Uint16Array]') { + return 'uint16array'; + } + if (type === '[object Int32Array]') { + return 'int32array'; + } + if (type === '[object Uint32Array]') { + return 'uint32array'; + } + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; + } -/** - * Return true if we have the source content for every source in the source - * map, false otherwise. - */ -BasicSourceMapConsumer.prototype.hasContentsOfAllSources = - function BasicSourceMapConsumer_hasContentsOfAllSources() { - if (!this.sourcesContent) { - return false; - } - return this.sourcesContent.length >= this._sources.size() && - !this.sourcesContent.some(function (sc) { return sc == null; }); - }; + // must be a plain object + return 'object'; +}; /** - * Returns the original source content. The only argument is the url of the - * original source file. Returns null if no original source content is - * available. + * If you need to support Safari 5-7 (8-10 yr-old browser), + * take a look at https://github.com/feross/is-buffer */ -BasicSourceMapConsumer.prototype.sourceContentFor = - function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { - if (!this.sourcesContent) { - return null; - } - - if (this.sourceRoot != null) { - aSource = util.relative(this.sourceRoot, aSource); - } - - if (this._sources.has(aSource)) { - return this.sourcesContent[this._sources.indexOf(aSource)]; - } - var url; - if (this.sourceRoot != null - && (url = util.urlParse(this.sourceRoot))) { - // XXX: file:// URIs and absolute paths lead to unexpected behavior for - // many users. We can help them out when they expect file:// URIs to - // behave like it would if they were running a local HTTP server. See - // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. - var fileUriAbsPath = aSource.replace(/^file:\/\//, ""); - if (url.scheme == "file" - && this._sources.has(fileUriAbsPath)) { - return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] - } +function isBuffer(val) { + return val.constructor + && typeof val.constructor.isBuffer === 'function' + && val.constructor.isBuffer(val); +} - if ((!url.path || url.path == "/") - && this._sources.has("/" + aSource)) { - return this.sourcesContent[this._sources.indexOf("/" + aSource)]; - } - } - // This function is used recursively from - // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we - // don't want to throw if we can't find the source - we just want to - // return null, so we provide a flag to exit gracefully. - if (nullOnMissing) { - return null; - } - else { - throw new Error('"' + aSource + '" is not in the SourceMap.'); - } - }; +/***/ }), +/* 491 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Returns the generated line and column information for the original source, - * line, and column positions provided. The only argument is an object with - * the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: The column number in the original source. - * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or - * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. - * - * and an object is returned with the following properties: +"use strict"; +/*! + * is-accessor-descriptor * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. */ -BasicSourceMapConsumer.prototype.generatedPositionFor = - function SourceMapConsumer_generatedPositionFor(aArgs) { - var source = util.getArg(aArgs, 'source'); - if (this.sourceRoot != null) { - source = util.relative(this.sourceRoot, source); - } - if (!this._sources.has(source)) { - return { - line: null, - column: null, - lastColumn: null - }; - } - source = this._sources.indexOf(source); - var needle = { - source: source, - originalLine: util.getArg(aArgs, 'line'), - originalColumn: util.getArg(aArgs, 'column') - }; - - var index = this._findMapping( - needle, - this._originalMappings, - "originalLine", - "originalColumn", - util.compareByOriginalPositions, - util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) - ); - if (index >= 0) { - var mapping = this._originalMappings[index]; - if (mapping.source === needle.source) { - return { - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }; - } - } +var typeOf = __webpack_require__(492); - return { - line: null, - column: null, - lastColumn: null - }; - }; +// accessor descriptor properties +var accessor = { + get: 'function', + set: 'function', + configurable: 'boolean', + enumerable: 'boolean' +}; -exports.BasicSourceMapConsumer = BasicSourceMapConsumer; +function isAccessorDescriptor(obj, prop) { + if (typeof prop === 'string') { + var val = Object.getOwnPropertyDescriptor(obj, prop); + return typeof val !== 'undefined'; + } -/** - * An IndexedSourceMapConsumer instance represents a parsed source map which - * we can query for information. It differs from BasicSourceMapConsumer in - * that it takes "indexed" source maps (i.e. ones with a "sections" field) as - * input. - * - * The only parameter is a raw source map (either as a JSON string, or already - * parsed to an object). According to the spec for indexed source maps, they - * have the following attributes: - * - * - version: Which version of the source map spec this map is following. - * - file: Optional. The generated file this source map is associated with. - * - sections: A list of section definitions. - * - * Each value under the "sections" field has two fields: - * - offset: The offset into the original specified at which this section - * begins to apply, defined as an object with a "line" and "column" - * field. - * - map: A source map definition. This source map could also be indexed, - * but doesn't have to be. - * - * Instead of the "map" field, it's also possible to have a "url" field - * specifying a URL to retrieve a source map from, but that's currently - * unsupported. - * - * Here's an example source map, taken from the source map spec[0], but - * modified to omit a section which uses the "url" field. - * - * { - * version : 3, - * file: "app.js", - * sections: [{ - * offset: {line:100, column:10}, - * map: { - * version : 3, - * file: "section.js", - * sources: ["foo.js", "bar.js"], - * names: ["src", "maps", "are", "fun"], - * mappings: "AAAA,E;;ABCDE;" - * } - * }], - * } - * - * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt - */ -function IndexedSourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); + if (typeOf(obj) !== 'object') { + return false; } - var version = util.getArg(sourceMap, 'version'); - var sections = util.getArg(sourceMap, 'sections'); + if (has(obj, 'value') || has(obj, 'writable')) { + return false; + } - if (version != this._version) { - throw new Error('Unsupported version: ' + version); + if (!has(obj, 'get') || typeof obj.get !== 'function') { + return false; } - this._sources = new ArraySet(); - this._names = new ArraySet(); + // tldr: it's valid to have "set" be undefined + // "set" might be undefined if `Object.getOwnPropertyDescriptor` + // was used to get the value, and only `get` was defined by the user + if (has(obj, 'set') && typeof obj[key] !== 'function' && typeof obj[key] !== 'undefined') { + return false; + } - var lastOffset = { - line: -1, - column: 0 - }; - this._sections = sections.map(function (s) { - if (s.url) { - // The url field will require support for asynchronicity. - // See https://github.com/mozilla/source-map/issues/16 - throw new Error('Support for url field in sections not implemented.'); + for (var key in obj) { + if (!accessor.hasOwnProperty(key)) { + continue; } - var offset = util.getArg(s, 'offset'); - var offsetLine = util.getArg(offset, 'line'); - var offsetColumn = util.getArg(offset, 'column'); - if (offsetLine < lastOffset.line || - (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { - throw new Error('Section offsets must be ordered and non-overlapping.'); + if (typeOf(obj[key]) === accessor[key]) { + continue; } - lastOffset = offset; - return { - generatedOffset: { - // The offset fields are 0-based, but we use 1-based indices when - // encoding/decoding from VLQ. - generatedLine: offsetLine + 1, - generatedColumn: offsetColumn + 1 - }, - consumer: new SourceMapConsumer(util.getArg(s, 'map')) + if (typeof obj[key] !== 'undefined') { + return false; } - }); + } + return true; } -IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); -IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; +function has(obj, key) { + return {}.hasOwnProperty.call(obj, key); +} /** - * The version of the source mapping spec that we are consuming. + * Expose `isAccessorDescriptor` */ -IndexedSourceMapConsumer.prototype._version = 3; -/** - * The list of original sources. - */ -Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { - get: function () { - var sources = []; - for (var i = 0; i < this._sections.length; i++) { - for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { - sources.push(this._sections[i].consumer.sources[j]); - } - } - return sources; - } -}); +module.exports = isAccessorDescriptor; + + +/***/ }), +/* 492 */ +/***/ (function(module, exports, __webpack_require__) { + +var isBuffer = __webpack_require__(396); +var toString = Object.prototype.toString; /** - * Returns the original source, line, and column information for the generated - * source's line and column positions provided. The only argument is an object - * with the following properties: - * - * - line: The line number in the generated source. - * - column: The column number in the generated source. - * - * and an object is returned with the following properties: + * Get the native `typeof` a value. * - * - source: The original source file, or null. - * - line: The line number in the original source, or null. - * - column: The column number in the original source, or null. - * - name: The original identifier, or null. + * @param {*} `val` + * @return {*} Native javascript type */ -IndexedSourceMapConsumer.prototype.originalPositionFor = - function IndexedSourceMapConsumer_originalPositionFor(aArgs) { - var needle = { - generatedLine: util.getArg(aArgs, 'line'), - generatedColumn: util.getArg(aArgs, 'column') - }; - // Find the section containing the generated position we're trying to map - // to an original position. - var sectionIndex = binarySearch.search(needle, this._sections, - function(needle, section) { - var cmp = needle.generatedLine - section.generatedOffset.generatedLine; - if (cmp) { - return cmp; - } +module.exports = function kindOf(val) { + // primitivies + if (typeof val === 'undefined') { + return 'undefined'; + } + if (val === null) { + return 'null'; + } + if (val === true || val === false || val instanceof Boolean) { + return 'boolean'; + } + if (typeof val === 'string' || val instanceof String) { + return 'string'; + } + if (typeof val === 'number' || val instanceof Number) { + return 'number'; + } - return (needle.generatedColumn - - section.generatedOffset.generatedColumn); - }); - var section = this._sections[sectionIndex]; + // functions + if (typeof val === 'function' || val instanceof Function) { + return 'function'; + } - if (!section) { - return { - source: null, - line: null, - column: null, - name: null - }; - } + // array + if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { + return 'array'; + } - return section.consumer.originalPositionFor({ - line: needle.generatedLine - - (section.generatedOffset.generatedLine - 1), - column: needle.generatedColumn - - (section.generatedOffset.generatedLine === needle.generatedLine - ? section.generatedOffset.generatedColumn - 1 - : 0), - bias: aArgs.bias - }); - }; + // check for instances of RegExp and Date before calling `toString` + if (val instanceof RegExp) { + return 'regexp'; + } + if (val instanceof Date) { + return 'date'; + } -/** - * Return true if we have the source content for every source in the source - * map, false otherwise. - */ -IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = - function IndexedSourceMapConsumer_hasContentsOfAllSources() { - return this._sections.every(function (s) { - return s.consumer.hasContentsOfAllSources(); - }); - }; + // other objects + var type = toString.call(val); -/** - * Returns the original source content. The only argument is the url of the - * original source file. Returns null if no original source content is - * available. - */ -IndexedSourceMapConsumer.prototype.sourceContentFor = - function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; + if (type === '[object RegExp]') { + return 'regexp'; + } + if (type === '[object Date]') { + return 'date'; + } + if (type === '[object Arguments]') { + return 'arguments'; + } + if (type === '[object Error]') { + return 'error'; + } - var content = section.consumer.sourceContentFor(aSource, true); - if (content) { - return content; - } - } - if (nullOnMissing) { - return null; - } - else { - throw new Error('"' + aSource + '" is not in the SourceMap.'); - } - }; + // buffer + if (isBuffer(val)) { + return 'buffer'; + } -/** - * Returns the generated line and column information for the original source, - * line, and column positions provided. The only argument is an object with - * the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: The column number in the original source. - * - * and an object is returned with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ -IndexedSourceMapConsumer.prototype.generatedPositionFor = - function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; + // es6: Map, WeakMap, Set, WeakSet + if (type === '[object Set]') { + return 'set'; + } + if (type === '[object WeakSet]') { + return 'weakset'; + } + if (type === '[object Map]') { + return 'map'; + } + if (type === '[object WeakMap]') { + return 'weakmap'; + } + if (type === '[object Symbol]') { + return 'symbol'; + } - // Only consider this section if the requested source is in the list of - // sources of the consumer. - if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) { - continue; - } - var generatedPosition = section.consumer.generatedPositionFor(aArgs); - if (generatedPosition) { - var ret = { - line: generatedPosition.line + - (section.generatedOffset.generatedLine - 1), - column: generatedPosition.column + - (section.generatedOffset.generatedLine === generatedPosition.line - ? section.generatedOffset.generatedColumn - 1 - : 0) - }; - return ret; - } - } + // typed arrays + if (type === '[object Int8Array]') { + return 'int8array'; + } + if (type === '[object Uint8Array]') { + return 'uint8array'; + } + if (type === '[object Uint8ClampedArray]') { + return 'uint8clampedarray'; + } + if (type === '[object Int16Array]') { + return 'int16array'; + } + if (type === '[object Uint16Array]') { + return 'uint16array'; + } + if (type === '[object Int32Array]') { + return 'int32array'; + } + if (type === '[object Uint32Array]') { + return 'uint32array'; + } + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; + } - return { - line: null, - column: null - }; - }; + // must be a plain object + return 'object'; +}; -/** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ -IndexedSourceMapConsumer.prototype._parseMappings = - function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { - this.__generatedMappings = []; - this.__originalMappings = []; - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - var sectionMappings = section.consumer._generatedMappings; - for (var j = 0; j < sectionMappings.length; j++) { - var mapping = sectionMappings[j]; - var source = section.consumer._sources.at(mapping.source); - if (section.consumer.sourceRoot !== null) { - source = util.join(section.consumer.sourceRoot, source); - } - this._sources.add(source); - source = this._sources.indexOf(source); +/***/ }), +/* 493 */ +/***/ (function(module, exports, __webpack_require__) { - var name = section.consumer._names.at(mapping.name); - this._names.add(name); - name = this._names.indexOf(name); +"use strict"; +/*! + * is-data-descriptor + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. + */ - // The mappings coming from the consumer for the section have - // generated positions relative to the start of the section, so we - // need to offset them to be relative to the start of the concatenated - // generated file. - var adjustedMapping = { - source: source, - generatedLine: mapping.generatedLine + - (section.generatedOffset.generatedLine - 1), - generatedColumn: mapping.generatedColumn + - (section.generatedOffset.generatedLine === mapping.generatedLine - ? section.generatedOffset.generatedColumn - 1 - : 0), - originalLine: mapping.originalLine, - originalColumn: mapping.originalColumn, - name: name - }; - this.__generatedMappings.push(adjustedMapping); - if (typeof adjustedMapping.originalLine === 'number') { - this.__originalMappings.push(adjustedMapping); - } - } - } - quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); - quickSort(this.__originalMappings, util.compareByOriginalPositions); - }; +var typeOf = __webpack_require__(494); -exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; +// data descriptor properties +var data = { + configurable: 'boolean', + enumerable: 'boolean', + writable: 'boolean' +}; +function isDataDescriptor(obj, prop) { + if (typeOf(obj) !== 'object') { + return false; + } -/***/ }), -/* 397 */ -/***/ (function(module, exports) { + if (typeof prop === 'string') { + var val = Object.getOwnPropertyDescriptor(obj, prop); + return typeof val !== 'undefined'; + } -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ + if (!('value' in obj) && !('writable' in obj)) { + return false; + } -exports.GREATEST_LOWER_BOUND = 1; -exports.LEAST_UPPER_BOUND = 2; + for (var key in obj) { + if (key === 'value') continue; -/** - * Recursive implementation of binary search. - * - * @param aLow Indices here and lower do not contain the needle. - * @param aHigh Indices here and higher do not contain the needle. - * @param aNeedle The element being searched for. - * @param aHaystack The non-empty array being searched. - * @param aCompare Function which takes two elements and returns -1, 0, or 1. - * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or - * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - */ -function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { - // This function terminates when one of the following is true: - // - // 1. We find the exact element we are looking for. - // - // 2. We did not find the exact element, but we can return the index of - // the next-closest element. - // - // 3. We did not find the exact element, and there is no next-closest - // element than the one we are searching for, so we return -1. - var mid = Math.floor((aHigh - aLow) / 2) + aLow; - var cmp = aCompare(aNeedle, aHaystack[mid], true); - if (cmp === 0) { - // Found the element we are looking for. - return mid; - } - else if (cmp > 0) { - // Our needle is greater than aHaystack[mid]. - if (aHigh - mid > 1) { - // The element is in the upper half. - return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + if (!data.hasOwnProperty(key)) { + continue; } - // The exact needle element was not found in this haystack. Determine if - // we are in termination case (3) or (2) and return the appropriate thing. - if (aBias == exports.LEAST_UPPER_BOUND) { - return aHigh < aHaystack.length ? aHigh : -1; - } else { - return mid; - } - } - else { - // Our needle is less than aHaystack[mid]. - if (mid - aLow > 1) { - // The element is in the lower half. - return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + if (typeOf(obj[key]) === data[key]) { + continue; } - // we are in termination case (3) or (2) and return the appropriate thing. - if (aBias == exports.LEAST_UPPER_BOUND) { - return mid; - } else { - return aLow < 0 ? -1 : aLow; + if (typeof obj[key] !== 'undefined') { + return false; } } + return true; } /** - * This is an implementation of binary search which will always try and return - * the index of the closest element if there is no exact hit. This is because - * mappings between original and generated line/col pairs are single points, - * and there is an implicit region between each of them, so a miss just means - * that you aren't on the very start of a region. - * - * @param aNeedle The element you are looking for. - * @param aHaystack The array that is being searched. - * @param aCompare A function which takes the needle and an element in the - * array and returns -1, 0, or 1 depending on whether the needle is less - * than, equal to, or greater than the element, respectively. - * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or - * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + * Expose `isDataDescriptor` */ -exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { - if (aHaystack.length === 0) { - return -1; - } - - var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, - aCompare, aBias || exports.GREATEST_LOWER_BOUND); - if (index < 0) { - return -1; - } - // We have found either the exact element, or the next-closest element than - // the one we are searching for. However, there may be more than one such - // element. Make sure we always return the smallest of these. - while (index - 1 >= 0) { - if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { - break; - } - --index; - } - - return index; -}; +module.exports = isDataDescriptor; /***/ }), -/* 398 */ -/***/ (function(module, exports) { - -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ +/* 494 */ +/***/ (function(module, exports, __webpack_require__) { -// It turns out that some (most?) JavaScript engines don't self-host -// `Array.prototype.sort`. This makes sense because C++ will likely remain -// faster than JS when doing raw CPU-intensive sorting. However, when using a -// custom comparator function, calling back and forth between the VM's C++ and -// JIT'd JS is rather slow *and* loses JIT type information, resulting in -// worse generated code for the comparator function than would be optimal. In -// fact, when sorting with a comparator, these costs outweigh the benefits of -// sorting in C++. By using our own JS-implemented Quick Sort (below), we get -// a ~3500ms mean speed-up in `bench/bench.html`. +var isBuffer = __webpack_require__(396); +var toString = Object.prototype.toString; /** - * Swap the elements indexed by `x` and `y` in the array `ary`. + * Get the native `typeof` a value. * - * @param {Array} ary - * The array. - * @param {Number} x - * The index of the first item. - * @param {Number} y - * The index of the second item. + * @param {*} `val` + * @return {*} Native javascript type */ -function swap(ary, x, y) { - var temp = ary[x]; - ary[x] = ary[y]; - ary[y] = temp; -} -/** - * Returns a random integer within the range `low .. high` inclusive. - * - * @param {Number} low - * The lower bound on the range. - * @param {Number} high - * The upper bound on the range. - */ -function randomIntInRange(low, high) { - return Math.round(low + (Math.random() * (high - low))); -} +module.exports = function kindOf(val) { + // primitivies + if (typeof val === 'undefined') { + return 'undefined'; + } + if (val === null) { + return 'null'; + } + if (val === true || val === false || val instanceof Boolean) { + return 'boolean'; + } + if (typeof val === 'string' || val instanceof String) { + return 'string'; + } + if (typeof val === 'number' || val instanceof Number) { + return 'number'; + } -/** - * The Quick Sort algorithm. - * - * @param {Array} ary - * An array to sort. - * @param {function} comparator - * Function to use to compare two items. - * @param {Number} p - * Start index of the array - * @param {Number} r - * End index of the array - */ -function doQuickSort(ary, comparator, p, r) { - // If our lower bound is less than our upper bound, we (1) partition the - // array into two pieces and (2) recurse on each half. If it is not, this is - // the empty array and our base case. + // functions + if (typeof val === 'function' || val instanceof Function) { + return 'function'; + } - if (p < r) { - // (1) Partitioning. - // - // The partitioning chooses a pivot between `p` and `r` and moves all - // elements that are less than or equal to the pivot to the before it, and - // all the elements that are greater than it after it. The effect is that - // once partition is done, the pivot is in the exact place it will be when - // the array is put in sorted order, and it will not need to be moved - // again. This runs in O(n) time. + // array + if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { + return 'array'; + } - // Always choose a random pivot so that an input array which is reverse - // sorted does not cause O(n^2) running time. - var pivotIndex = randomIntInRange(p, r); - var i = p - 1; + // check for instances of RegExp and Date before calling `toString` + if (val instanceof RegExp) { + return 'regexp'; + } + if (val instanceof Date) { + return 'date'; + } - swap(ary, pivotIndex, r); - var pivot = ary[r]; + // other objects + var type = toString.call(val); - // Immediately after `j` is incremented in this loop, the following hold - // true: - // - // * Every element in `ary[p .. i]` is less than or equal to the pivot. - // - // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. - for (var j = p; j < r; j++) { - if (comparator(ary[j], pivot) <= 0) { - i += 1; - swap(ary, i, j); - } - } + if (type === '[object RegExp]') { + return 'regexp'; + } + if (type === '[object Date]') { + return 'date'; + } + if (type === '[object Arguments]') { + return 'arguments'; + } + if (type === '[object Error]') { + return 'error'; + } - swap(ary, i + 1, j); - var q = i + 1; + // buffer + if (isBuffer(val)) { + return 'buffer'; + } - // (2) Recurse on each half. + // es6: Map, WeakMap, Set, WeakSet + if (type === '[object Set]') { + return 'set'; + } + if (type === '[object WeakSet]') { + return 'weakset'; + } + if (type === '[object Map]') { + return 'map'; + } + if (type === '[object WeakMap]') { + return 'weakmap'; + } + if (type === '[object Symbol]') { + return 'symbol'; + } - doQuickSort(ary, comparator, p, q - 1); - doQuickSort(ary, comparator, q + 1, r); + // typed arrays + if (type === '[object Int8Array]') { + return 'int8array'; + } + if (type === '[object Uint8Array]') { + return 'uint8array'; + } + if (type === '[object Uint8ClampedArray]') { + return 'uint8clampedarray'; + } + if (type === '[object Int16Array]') { + return 'int16array'; + } + if (type === '[object Uint16Array]') { + return 'uint16array'; + } + if (type === '[object Int32Array]') { + return 'int32array'; + } + if (type === '[object Uint32Array]') { + return 'uint32array'; + } + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; } -} -/** - * Sort the given array in-place with the given comparator function. - * - * @param {Array} ary - * An array to sort. - * @param {function} comparator - * Function to use to compare two items. - */ -exports.quickSort = function (ary, comparator) { - doQuickSort(ary, comparator, 0, ary.length - 1); + // must be a plain object + return 'object'; }; /***/ }), -/* 399 */ +/* 495 */ /***/ (function(module, exports, __webpack_require__) { -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause +/** + * Detect Electron renderer process, which is node, but we should + * treat as a browser. */ -var SourceMapGenerator = __webpack_require__(145).SourceMapGenerator; -var util = __webpack_require__(68); +if (typeof process !== 'undefined' && process.type === 'renderer') { + module.exports = __webpack_require__(496); +} else { + module.exports = __webpack_require__(499); +} + -// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other -// operating systems these days (capturing the result). -var REGEX_NEWLINE = /(\r?\n)/; +/***/ }), +/* 496 */ +/***/ (function(module, exports, __webpack_require__) { -// Newline character code for charCodeAt() comparisons -var NEWLINE_CODE = 10; +/** + * This is the web browser implementation of `debug()`. + * + * Expose `debug()` as the module. + */ -// Private symbol for identifying `SourceNode`s when multiple versions of -// the source-map library are loaded. This MUST NOT CHANGE across -// versions! -var isSourceNode = "$$$isSourceNode$$$"; +exports = module.exports = __webpack_require__(497); +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = 'undefined' != typeof chrome + && 'undefined' != typeof chrome.storage + ? chrome.storage.local + : localstorage(); /** - * SourceNodes provide a way to abstract over interpolating/concatenating - * snippets of generated JavaScript source code while maintaining the line and - * column information associated with the original source code. + * Colors. + */ + +exports.colors = [ + 'lightseagreen', + 'forestgreen', + 'goldenrod', + 'dodgerblue', + 'darkorchid', + 'crimson' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. * - * @param aLine The original line number. - * @param aColumn The original column number. - * @param aSource The original source's filename. - * @param aChunks Optional. An array of strings which are snippets of - * generated JS, or other SourceNodes. - * @param aName The original identifier. + * TODO: add a `localStorage` variable to explicitly enable/disable colors */ -function SourceNode(aLine, aColumn, aSource, aChunks, aName) { - this.children = []; - this.sourceContents = {}; - this.line = aLine == null ? null : aLine; - this.column = aColumn == null ? null : aColumn; - this.source = aSource == null ? null : aSource; - this.name = aName == null ? null : aName; - this[isSourceNode] = true; - if (aChunks != null) this.add(aChunks); + +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { + return true; + } + + // is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); } /** - * Creates a SourceNode from generated code and a SourceMapConsumer. + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +exports.formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (err) { + return '[UnexpectedJSONParseError]: ' + err.message; + } +}; + + +/** + * Colorize log arguments if enabled. * - * @param aGeneratedCode The generated code - * @param aSourceMapConsumer The SourceMap for the generated code - * @param aRelativePath Optional. The path that relative sources in the - * SourceMapConsumer should be relative to. + * @api public */ -SourceNode.fromStringWithSourceMap = - function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { - // The SourceNode we want to fill with the generated code - // and the SourceMap - var node = new SourceNode(); - // All even indices of this array are one line of the generated code, - // while all odd indices are the newlines between two adjacent lines - // (since `REGEX_NEWLINE` captures its match). - // Processed fragments are accessed by calling `shiftNextLine`. - var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); - var remainingLinesIndex = 0; - var shiftNextLine = function() { - var lineContents = getNextLine(); - // The last line of a file might not have a newline. - var newLine = getNextLine() || ""; - return lineContents + newLine; +function formatArgs(args) { + var useColors = this.useColors; - function getNextLine() { - return remainingLinesIndex < remainingLines.length ? - remainingLines[remainingLinesIndex++] : undefined; - } - }; + args[0] = (useColors ? '%c' : '') + + this.namespace + + (useColors ? ' %c' : ' ') + + args[0] + + (useColors ? '%c ' : ' ') + + '+' + exports.humanize(this.diff); - // We need to remember the position of "remainingLines" - var lastGeneratedLine = 1, lastGeneratedColumn = 0; + if (!useColors) return; - // The generate SourceNodes we need a code range. - // To extract it current and last mapping is used. - // Here we store the last mapping. - var lastMapping = null; + var c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit') - aSourceMapConsumer.eachMapping(function (mapping) { - if (lastMapping !== null) { - // We add the code from "lastMapping" to "mapping": - // First check if there is a new line in between. - if (lastGeneratedLine < mapping.generatedLine) { - // Associate first line with "lastMapping" - addMappingWithCode(lastMapping, shiftNextLine()); - lastGeneratedLine++; - lastGeneratedColumn = 0; - // The remaining code is added without mapping - } else { - // There is no new line in between. - // Associate the code between "lastGeneratedColumn" and - // "mapping.generatedColumn" with "lastMapping" - var nextLine = remainingLines[remainingLinesIndex]; - var code = nextLine.substr(0, mapping.generatedColumn - - lastGeneratedColumn); - remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - - lastGeneratedColumn); - lastGeneratedColumn = mapping.generatedColumn; - addMappingWithCode(lastMapping, code); - // No more remaining code, continue - lastMapping = mapping; - return; - } - } - // We add the generated code until the first mapping - // to the SourceNode without any mapping. - // Each line is added as separate string. - while (lastGeneratedLine < mapping.generatedLine) { - node.add(shiftNextLine()); - lastGeneratedLine++; - } - if (lastGeneratedColumn < mapping.generatedColumn) { - var nextLine = remainingLines[remainingLinesIndex]; - node.add(nextLine.substr(0, mapping.generatedColumn)); - remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); - lastGeneratedColumn = mapping.generatedColumn; - } - lastMapping = mapping; - }, this); - // We have processed all mappings. - if (remainingLinesIndex < remainingLines.length) { - if (lastMapping) { - // Associate the remaining code in the current line with "lastMapping" - addMappingWithCode(lastMapping, shiftNextLine()); - } - // and add the remaining lines without any mapping - node.add(remainingLines.splice(remainingLinesIndex).join("")); + // the final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + var index = 0; + var lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, function(match) { + if ('%%' === match) return; + index++; + if ('%c' === match) { + // we only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; } + }); - // Copy sourcesContent into SourceNode - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - if (aRelativePath != null) { - sourceFile = util.join(aRelativePath, sourceFile); - } - node.setSourceContent(sourceFile, content); - } - }); + args.splice(lastC, 0, c); +} - return node; +/** + * Invokes `console.log()` when available. + * No-op when `console.log` is not a "function". + * + * @api public + */ - function addMappingWithCode(mapping, code) { - if (mapping === null || mapping.source === undefined) { - node.add(code); - } else { - var source = aRelativePath - ? util.join(aRelativePath, mapping.source) - : mapping.source; - node.add(new SourceNode(mapping.originalLine, - mapping.originalColumn, - source, - code, - mapping.name)); - } - } - }; +function log() { + // this hackery is required for IE8/9, where + // the `console.log` function doesn't have 'apply' + return 'object' === typeof console + && console.log + && Function.prototype.apply.call(console.log, console, arguments); +} /** - * Add a chunk of generated JS to this source node. + * Save `namespaces`. * - * @param aChunk A string snippet of generated JS code, another instance of - * SourceNode, or an array where each member is one of those things. + * @param {String} namespaces + * @api private */ -SourceNode.prototype.add = function SourceNode_add(aChunk) { - if (Array.isArray(aChunk)) { - aChunk.forEach(function (chunk) { - this.add(chunk); - }, this); - } - else if (aChunk[isSourceNode] || typeof aChunk === "string") { - if (aChunk) { - this.children.push(aChunk); + +function save(namespaces) { + try { + if (null == namespaces) { + exports.storage.removeItem('debug'); + } else { + exports.storage.debug = namespaces; } - } - else { - throw new TypeError( - "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk - ); - } - return this; -}; + } catch(e) {} +} /** - * Add a chunk of generated JS to the beginning of this source node. + * Load `namespaces`. * - * @param aChunk A string snippet of generated JS code, another instance of - * SourceNode, or an array where each member is one of those things. + * @return {String} returns the previously persisted debug modes + * @api private */ -SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { - if (Array.isArray(aChunk)) { - for (var i = aChunk.length-1; i >= 0; i--) { - this.prepend(aChunk[i]); - } - } - else if (aChunk[isSourceNode] || typeof aChunk === "string") { - this.children.unshift(aChunk); - } - else { - throw new TypeError( - "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk - ); + +function load() { + var r; + try { + r = exports.storage.debug; + } catch(e) {} + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; } - return this; -}; + + return r; +} /** - * Walk over the tree of JS snippets in this node and its children. The - * walking function is called once for each snippet of JS and is passed that - * snippet and the its original associated source's line/column location. - * - * @param aFn The traversal function. + * Enable namespaces listed in `localStorage.debug` initially. */ -SourceNode.prototype.walk = function SourceNode_walk(aFn) { - var chunk; - for (var i = 0, len = this.children.length; i < len; i++) { - chunk = this.children[i]; - if (chunk[isSourceNode]) { - chunk.walk(aFn); - } - else { - if (chunk !== '') { - aFn(chunk, { source: this.source, - line: this.line, - column: this.column, - name: this.name }); - } - } - } -}; + +exports.enable(load()); /** - * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between - * each of `this.children`. + * Localstorage attempts to return the localstorage. * - * @param aSep The separator. + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private */ -SourceNode.prototype.join = function SourceNode_join(aSep) { - var newChildren; - var i; - var len = this.children.length; - if (len > 0) { - newChildren = []; - for (i = 0; i < len-1; i++) { - newChildren.push(this.children[i]); - newChildren.push(aSep); - } - newChildren.push(this.children[i]); - this.children = newChildren; - } - return this; -}; + +function localstorage() { + try { + return window.localStorage; + } catch (e) {} +} + + +/***/ }), +/* 497 */ +/***/ (function(module, exports, __webpack_require__) { + /** - * Call String.prototype.replace on the very right-most source snippet. Useful - * for trimming whitespace from the end of a source node, etc. + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. * - * @param aPattern The pattern to replace. - * @param aReplacement The thing to replace the pattern with. + * Expose `debug()` as the module. */ -SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { - var lastChild = this.children[this.children.length - 1]; - if (lastChild[isSourceNode]) { - lastChild.replaceRight(aPattern, aReplacement); - } - else if (typeof lastChild === 'string') { - this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); - } - else { - this.children.push(''.replace(aPattern, aReplacement)); - } - return this; -}; + +exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; +exports.coerce = coerce; +exports.disable = disable; +exports.enable = enable; +exports.enabled = enabled; +exports.humanize = __webpack_require__(498); /** - * Set the source content for a source file. This will be added to the SourceMapGenerator - * in the sourcesContent field. - * - * @param aSourceFile The filename of the source file - * @param aSourceContent The content of the source file + * The currently active debug mode names, and names to skip. */ -SourceNode.prototype.setSourceContent = - function SourceNode_setSourceContent(aSourceFile, aSourceContent) { - this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; - }; + +exports.names = []; +exports.skips = []; /** - * Walk over the tree of SourceNodes. The walking function is called for each - * source file content and is passed the filename and source content. + * Map of special "%n" handling functions, for the debug "format" argument. * - * @param aFn The traversal function. + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". */ -SourceNode.prototype.walkSourceContents = - function SourceNode_walkSourceContents(aFn) { - for (var i = 0, len = this.children.length; i < len; i++) { - if (this.children[i][isSourceNode]) { - this.children[i].walkSourceContents(aFn); - } - } - var sources = Object.keys(this.sourceContents); - for (var i = 0, len = sources.length; i < len; i++) { - aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); - } - }; +exports.formatters = {}; /** - * Return the string representation of this source node. Walks over the tree - * and concatenates all the various snippets together to one string. + * Previous log timestamp. */ -SourceNode.prototype.toString = function SourceNode_toString() { - var str = ""; - this.walk(function (chunk) { - str += chunk; - }); - return str; -}; + +var prevTime; /** - * Returns the string representation of this source node along with a source - * map. + * Select a color. + * @param {String} namespace + * @return {Number} + * @api private */ -SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { - var generated = { - code: "", - line: 1, - column: 0 - }; - var map = new SourceMapGenerator(aArgs); - var sourceMappingActive = false; - var lastOriginalSource = null; - var lastOriginalLine = null; - var lastOriginalColumn = null; - var lastOriginalName = null; - this.walk(function (chunk, original) { - generated.code += chunk; - if (original.source !== null - && original.line !== null - && original.column !== null) { - if(lastOriginalSource !== original.source - || lastOriginalLine !== original.line - || lastOriginalColumn !== original.column - || lastOriginalName !== original.name) { - map.addMapping({ - source: original.source, - original: { - line: original.line, - column: original.column - }, - generated: { - line: generated.line, - column: generated.column - }, - name: original.name - }); - } - lastOriginalSource = original.source; - lastOriginalLine = original.line; - lastOriginalColumn = original.column; - lastOriginalName = original.name; - sourceMappingActive = true; - } else if (sourceMappingActive) { - map.addMapping({ - generated: { - line: generated.line, - column: generated.column - } - }); - lastOriginalSource = null; - sourceMappingActive = false; + +function selectColor(namespace) { + var hash = 0, i; + + for (i in namespace) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return exports.colors[Math.abs(hash) % exports.colors.length]; +} + +/** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + +function createDebug(namespace) { + + function debug() { + // disabled? + if (!debug.enabled) return; + + var self = debug; + + // set `diff` timestamp + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + // turn the `arguments` into a proper Array + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; } - for (var idx = 0, length = chunk.length; idx < length; idx++) { - if (chunk.charCodeAt(idx) === NEWLINE_CODE) { - generated.line++; - generated.column = 0; - // Mappings end at eol - if (idx + 1 === length) { - lastOriginalSource = null; - sourceMappingActive = false; - } else if (sourceMappingActive) { - map.addMapping({ - source: original.source, - original: { - line: original.line, - column: original.column - }, - generated: { - line: generated.line, - column: generated.column - }, - name: original.name - }); - } - } else { - generated.column++; - } + + args[0] = exports.coerce(args[0]); + + if ('string' !== typeof args[0]) { + // anything else let's inspect with %O + args.unshift('%O'); } - }); - this.walkSourceContents(function (sourceFile, sourceContent) { - map.setSourceContent(sourceFile, sourceContent); - }); - return { code: generated.code, map: map }; -}; + // apply any `formatters` transformations + var index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { + // if we encounter an escaped % then don't increase the array index + if (match === '%%') return match; + index++; + var formatter = exports.formatters[format]; + if ('function' === typeof formatter) { + var val = args[index]; + match = formatter.call(self, val); -exports.SourceNode = SourceNode; + // now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + // apply env-specific formatting (colors, etc.) + exports.formatArgs.call(self, args); -/***/ }), -/* 400 */ -/***/ (function(module, exports, __webpack_require__) { + var logFn = debug.log || exports.log || console.log.bind(console); + logFn.apply(self, args); + } -// Copyright 2014, 2015, 2016, 2017 Simon Lydell -// X11 (“MIT”) Licensed. (See LICENSE.) + debug.namespace = namespace; + debug.enabled = exports.enabled(namespace); + debug.useColors = exports.useColors(); + debug.color = selectColor(namespace); + + // env-specific initialization logic for debug instances + if ('function' === typeof exports.init) { + exports.init(debug); + } + + return debug; +} -var sourceMappingURL = __webpack_require__(401) -var resolveUrl = __webpack_require__(402) -var decodeUriComponent = __webpack_require__(403) -var urix = __webpack_require__(405) -var atob = __webpack_require__(406) +/** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ +function enable(namespaces) { + exports.save(namespaces); + exports.names = []; + exports.skips = []; -function callbackAsync(callback, error, result) { - setImmediate(function() { callback(error, result) }) -} + var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + var len = split.length; -function parseMapToJSON(string, data) { - try { - return JSON.parse(string.replace(/^\)\]\}'/, "")) - } catch (error) { - error.sourceMapData = data - throw error + for (var i = 0; i < len; i++) { + if (!split[i]) continue; // ignore empty strings + namespaces = split[i].replace(/\*/g, '.*?'); + if (namespaces[0] === '-') { + exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + exports.names.push(new RegExp('^' + namespaces + '$')); + } } } -function readSync(read, url, data) { - var readUrl = decodeUriComponent(url) - try { - return String(read(readUrl)) - } catch (error) { - error.sourceMapData = data - throw error - } -} +/** + * Disable debug output. + * + * @api public + */ +function disable() { + exports.enable(''); +} +/** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ -function resolveSourceMap(code, codeUrl, read, callback) { - var mapData - try { - mapData = resolveSourceMapHelper(code, codeUrl) - } catch (error) { - return callbackAsync(callback, error) - } - if (!mapData || mapData.map) { - return callbackAsync(callback, null, mapData) - } - var readUrl = decodeUriComponent(mapData.url) - read(readUrl, function(error, result) { - if (error) { - error.sourceMapData = mapData - return callback(error) +function enabled(name) { + var i, len; + for (i = 0, len = exports.skips.length; i < len; i++) { + if (exports.skips[i].test(name)) { + return false; } - mapData.map = String(result) - try { - mapData.map = parseMapToJSON(mapData.map, mapData) - } catch (error) { - return callback(error) + } + for (i = 0, len = exports.names.length; i < len; i++) { + if (exports.names[i].test(name)) { + return true; } - callback(null, mapData) - }) -} - -function resolveSourceMapSync(code, codeUrl, read) { - var mapData = resolveSourceMapHelper(code, codeUrl) - if (!mapData || mapData.map) { - return mapData } - mapData.map = readSync(read, mapData.url, mapData) - mapData.map = parseMapToJSON(mapData.map, mapData) - return mapData + return false; } -var dataUriRegex = /^data:([^,;]*)(;[^,;]*)*(?:,(.*))?$/ -var jsonMimeTypeRegex = /^(?:application|text)\/json$/ +/** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ -function resolveSourceMapHelper(code, codeUrl) { - codeUrl = urix(codeUrl) +function coerce(val) { + if (val instanceof Error) return val.stack || val.message; + return val; +} - var url = sourceMappingURL.getFrom(code) - if (!url) { - return null - } - var dataUri = url.match(dataUriRegex) - if (dataUri) { - var mimeType = dataUri[1] - var lastParameter = dataUri[2] || "" - var encoded = dataUri[3] || "" - var data = { - sourceMappingURL: url, - url: null, - sourcesRelativeTo: codeUrl, - map: encoded - } - if (!jsonMimeTypeRegex.test(mimeType)) { - var error = new Error("Unuseful data uri mime type: " + (mimeType || "text/plain")) - error.sourceMapData = data - throw error - } - data.map = parseMapToJSON( - lastParameter === ";base64" ? atob(encoded) : decodeURIComponent(encoded), - data - ) - return data - } +/***/ }), +/* 498 */ +/***/ (function(module, exports) { - var mapUrl = resolveUrl(codeUrl, url) - return { - sourceMappingURL: url, - url: mapUrl, - sourcesRelativeTo: mapUrl, - map: null - } -} +/** + * Helpers. + */ +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var y = d * 365.25; +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ -function resolveSources(map, mapUrl, read, options, callback) { - if (typeof options === "function") { - callback = options - options = {} - } - var pending = map.sources ? map.sources.length : 0 - var result = { - sourcesResolved: [], - sourcesContent: [] +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; - if (pending === 0) { - callbackAsync(callback, null, result) - return - } +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ - var done = function() { - pending-- - if (pending === 0) { - callback(null, result) - } +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; } - - resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) { - result.sourcesResolved[index] = fullUrl - if (typeof sourceContent === "string") { - result.sourcesContent[index] = sourceContent - callbackAsync(done, null) - } else { - var readUrl = decodeUriComponent(fullUrl) - read(readUrl, function(error, source) { - result.sourcesContent[index] = error ? error : String(source) - done() - }) - } - }) } -function resolveSourcesSync(map, mapUrl, read, options) { - var result = { - sourcesResolved: [], - sourcesContent: [] - } +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ - if (!map.sources || map.sources.length === 0) { - return result +function fmtShort(ms) { + if (ms >= d) { + return Math.round(ms / d) + 'd'; + } + if (ms >= h) { + return Math.round(ms / h) + 'h'; } + if (ms >= m) { + return Math.round(ms / m) + 'm'; + } + if (ms >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} - resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) { - result.sourcesResolved[index] = fullUrl - if (read !== null) { - if (typeof sourceContent === "string") { - result.sourcesContent[index] = sourceContent - } else { - var readUrl = decodeUriComponent(fullUrl) - try { - result.sourcesContent[index] = String(read(readUrl)) - } catch (error) { - result.sourcesContent[index] = error - } - } - } - }) +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ - return result +function fmtLong(ms) { + return plural(ms, d, 'day') || + plural(ms, h, 'hour') || + plural(ms, m, 'minute') || + plural(ms, s, 'second') || + ms + ' ms'; } -var endingSlash = /\/?$/ +/** + * Pluralization helper. + */ -function resolveSourcesHelper(map, mapUrl, options, fn) { - options = options || {} - mapUrl = urix(mapUrl) - var fullUrl - var sourceContent - var sourceRoot - for (var index = 0, len = map.sources.length; index < len; index++) { - sourceRoot = null - if (typeof options.sourceRoot === "string") { - sourceRoot = options.sourceRoot - } else if (typeof map.sourceRoot === "string" && options.sourceRoot !== false) { - sourceRoot = map.sourceRoot - } - // If the sourceRoot is the empty string, it is equivalent to not setting - // the property at all. - if (sourceRoot === null || sourceRoot === '') { - fullUrl = resolveUrl(mapUrl, map.sources[index]) - } else { - // Make sure that the sourceRoot ends with a slash, so that `/scripts/subdir` becomes - // `/scripts/subdir/`, not `/scripts/`. Pointing to a file as source root - // does not make sense. - fullUrl = resolveUrl(mapUrl, sourceRoot.replace(endingSlash, "/"), map.sources[index]) - } - sourceContent = (map.sourcesContent || [])[index] - fn(fullUrl, sourceContent, index) +function plural(ms, n, name) { + if (ms < n) { + return; + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + ' ' + name; } + return Math.ceil(ms / n) + ' ' + name + 's'; } +/***/ }), +/* 499 */ +/***/ (function(module, exports, __webpack_require__) { -function resolve(code, codeUrl, read, options, callback) { - if (typeof options === "function") { - callback = options - options = {} - } - if (code === null) { - var mapUrl = codeUrl - var data = { - sourceMappingURL: null, - url: mapUrl, - sourcesRelativeTo: mapUrl, - map: null - } - var readUrl = decodeUriComponent(mapUrl) - read(readUrl, function(error, result) { - if (error) { - error.sourceMapData = data - return callback(error) - } - data.map = String(result) - try { - data.map = parseMapToJSON(data.map, data) - } catch (error) { - return callback(error) - } - _resolveSources(data) - }) - } else { - resolveSourceMap(code, codeUrl, read, function(error, mapData) { - if (error) { - return callback(error) - } - if (!mapData) { - return callback(null, null) - } - _resolveSources(mapData) - }) - } - - function _resolveSources(mapData) { - resolveSources(mapData.map, mapData.sourcesRelativeTo, read, options, function(error, result) { - if (error) { - return callback(error) - } - mapData.sourcesResolved = result.sourcesResolved - mapData.sourcesContent = result.sourcesContent - callback(null, mapData) - }) - } -} +/** + * Module dependencies. + */ -function resolveSync(code, codeUrl, read, options) { - var mapData - if (code === null) { - var mapUrl = codeUrl - mapData = { - sourceMappingURL: null, - url: mapUrl, - sourcesRelativeTo: mapUrl, - map: null - } - mapData.map = readSync(read, mapUrl, mapData) - mapData.map = parseMapToJSON(mapData.map, mapData) - } else { - mapData = resolveSourceMapSync(code, codeUrl, read) - if (!mapData) { - return null - } - } - var result = resolveSourcesSync(mapData.map, mapData.sourcesRelativeTo, read, options) - mapData.sourcesResolved = result.sourcesResolved - mapData.sourcesContent = result.sourcesContent - return mapData -} +var tty = __webpack_require__(500); +var util = __webpack_require__(29); +/** + * This is the Node.js implementation of `debug()`. + * + * Expose `debug()` as the module. + */ +exports = module.exports = __webpack_require__(497); +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; -module.exports = { - resolveSourceMap: resolveSourceMap, - resolveSourceMapSync: resolveSourceMapSync, - resolveSources: resolveSources, - resolveSourcesSync: resolveSourcesSync, - resolve: resolve, - resolveSync: resolveSync, - parseMapToJSON: parseMapToJSON -} +/** + * Colors. + */ +exports.colors = [6, 2, 3, 4, 5, 1]; -/***/ }), -/* 401 */ -/***/ (function(module, exports, __webpack_require__) { +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;// Copyright 2014 Simon Lydell -// X11 (“MIT”) Licensed. (See LICENSE.) +exports.inspectOpts = Object.keys(process.env).filter(function (key) { + return /^debug_/i.test(key); +}).reduce(function (obj, key) { + // camel-case + var prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() }); -void (function(root, factory) { - if (true) { - !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : - __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) - } else {} -}(this, function() { + // coerce string value into JS value + var val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) val = true; + else if (/^(no|off|false|disabled)$/i.test(val)) val = false; + else if (val === 'null') val = null; + else val = Number(val); - var innerRegex = /[#@] sourceMappingURL=([^\s'"]*)/ + obj[prop] = val; + return obj; +}, {}); - var regex = RegExp( - "(?:" + - "/\\*" + - "(?:\\s*\r?\n(?://)?)?" + - "(?:" + innerRegex.source + ")" + - "\\s*" + - "\\*/" + - "|" + - "//(?:" + innerRegex.source + ")" + - ")" + - "\\s*" - ) +/** + * The file descriptor to write the `debug()` calls to. + * Set the `DEBUG_FD` env variable to override with another value. i.e.: + * + * $ DEBUG_FD=3 node script.js 3>debug.log + */ - return { +var fd = parseInt(process.env.DEBUG_FD, 10) || 2; - regex: regex, - _innerRegex: innerRegex, +if (1 !== fd && 2 !== fd) { + util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')() +} - getFrom: function(code) { - var match = code.match(regex) - return (match ? match[1] || match[2] || "" : null) - }, +var stream = 1 === fd ? process.stdout : + 2 === fd ? process.stderr : + createWritableStdioStream(fd); - existsIn: function(code) { - return regex.test(code) - }, +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ - removeFrom: function(code) { - return code.replace(regex, "") - }, +function useColors() { + return 'colors' in exports.inspectOpts + ? Boolean(exports.inspectOpts.colors) + : tty.isatty(fd); +} - insertBefore: function(code, string) { - var match = code.match(regex) - if (match) { - return code.slice(0, match.index) + string + code.slice(match.index) - } else { - return code + string - } - } - } +/** + * Map %o to `util.inspect()`, all on a single line. + */ -})); +exports.formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n').map(function(str) { + return str.trim() + }).join(' '); +}; +/** + * Map %o to `util.inspect()`, allowing multiple lines if needed. + */ -/***/ }), -/* 402 */ -/***/ (function(module, exports, __webpack_require__) { +exports.formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; -// Copyright 2014 Simon Lydell -// X11 (“MIT”) Licensed. (See LICENSE.) +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ -var url = __webpack_require__(102) +function formatArgs(args) { + var name = this.namespace; + var useColors = this.useColors; -function resolveUrl(/* ...urls */) { - return Array.prototype.reduce.call(arguments, function(resolved, nextUrl) { - return url.resolve(resolved, nextUrl) - }) + if (useColors) { + var c = this.color; + var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m'; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m'); + } else { + args[0] = new Date().toUTCString() + + ' ' + name + ' ' + args[0]; + } } -module.exports = resolveUrl +/** + * Invokes `util.format()` with the specified arguments and writes to `stream`. + */ +function log() { + return stream.write(util.format.apply(util, arguments) + '\n'); +} -/***/ }), -/* 403 */ -/***/ (function(module, exports, __webpack_require__) { +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ -// Copyright 2017 Simon Lydell -// X11 (“MIT”) Licensed. (See LICENSE.) +function save(namespaces) { + if (null == namespaces) { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } else { + process.env.DEBUG = namespaces; + } +} -var decodeUriComponent = __webpack_require__(404) +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ -function customDecodeUriComponent(string) { - // `decodeUriComponent` turns `+` into ` `, but that's not wanted. - return decodeUriComponent(string.replace(/\+/g, "%2B")) +function load() { + return process.env.DEBUG; } -module.exports = customDecodeUriComponent +/** + * Copied from `node/src/node.js`. + * + * XXX: It's lame that node doesn't expose this API out-of-the-box. It also + * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. + */ +function createWritableStdioStream (fd) { + var stream; + var tty_wrap = process.binding('tty_wrap'); -/***/ }), -/* 404 */ -/***/ (function(module, exports, __webpack_require__) { + // Note stream._type is used for test-module-load-list.js -"use strict"; + switch (tty_wrap.guessHandleType(fd)) { + case 'TTY': + stream = new tty.WriteStream(fd); + stream._type = 'tty'; -var token = '%[a-f0-9]{2}'; -var singleMatcher = new RegExp(token, 'gi'); -var multiMatcher = new RegExp('(' + token + ')+', 'gi'); + // Hack to have stream not keep the event loop alive. + // See https://github.com/joyent/node/issues/1726 + if (stream._handle && stream._handle.unref) { + stream._handle.unref(); + } + break; -function decodeComponents(components, split) { - try { - // Try to decode the entire string first - return decodeURIComponent(components.join('')); - } catch (err) { - // Do nothing - } + case 'FILE': + var fs = __webpack_require__(23); + stream = new fs.SyncWriteStream(fd, { autoClose: false }); + stream._type = 'fs'; + break; - if (components.length === 1) { - return components; - } + case 'PIPE': + case 'TCP': + var net = __webpack_require__(501); + stream = new net.Socket({ + fd: fd, + readable: false, + writable: true + }); - split = split || 1; + // FIXME Should probably have an option in net.Socket to create a + // stream from an existing fd which is writable only. But for now + // we'll just add this hack and set the `readable` member to false. + // Test: ./node test/fixtures/echo.js < /etc/passwd + stream.readable = false; + stream.read = null; + stream._type = 'pipe'; - // Split the array in 2 parts - var left = components.slice(0, split); - var right = components.slice(split); + // FIXME Hack to have stream not keep the event loop alive. + // See https://github.com/joyent/node/issues/1726 + if (stream._handle && stream._handle.unref) { + stream._handle.unref(); + } + break; - return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right)); -} + default: + // Probably an error on in uv_guess_handle() + throw new Error('Implement me. Unknown stream file type!'); + } -function decode(input) { - try { - return decodeURIComponent(input); - } catch (err) { - var tokens = input.match(singleMatcher); + // For supporting legacy API we put the FD here. + stream.fd = fd; - for (var i = 1; i < tokens.length; i++) { - input = decodeComponents(tokens, i).join(''); + stream._isStdio = true; - tokens = input.match(singleMatcher); - } + return stream; +} - return input; - } +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init (debug) { + debug.inspectOpts = {}; + + var keys = Object.keys(exports.inspectOpts); + for (var i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } } -function customDecodeURIComponent(input) { - // Keep track of all the replacements and prefill the map with the `BOM` - var replaceMap = { - '%FE%FF': '\uFFFD\uFFFD', - '%FF%FE': '\uFFFD\uFFFD' - }; +/** + * Enable namespaces listed in `process.env.DEBUG` initially. + */ - var match = multiMatcher.exec(input); - while (match) { - try { - // Decode as big chunks as possible - replaceMap[match[0]] = decodeURIComponent(match[0]); - } catch (err) { - var result = decode(match[0]); +exports.enable(load()); - if (result !== match[0]) { - replaceMap[match[0]] = result; - } - } - match = multiMatcher.exec(input); - } +/***/ }), +/* 500 */ +/***/ (function(module, exports) { - // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else - replaceMap['%C2'] = '\uFFFD'; +module.exports = require("tty"); - var entries = Object.keys(replaceMap); +/***/ }), +/* 501 */ +/***/ (function(module, exports) { - for (var i = 0; i < entries.length; i++) { - // Replace all decoded components - var key = entries[i]; - input = input.replace(new RegExp(key, 'g'), replaceMap[key]); - } +module.exports = require("net"); - return input; -} +/***/ }), +/* 502 */ +/***/ (function(module, exports, __webpack_require__) { -module.exports = function (encodedURI) { - if (typeof encodedURI !== 'string') { - throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`'); - } +"use strict"; - try { - encodedURI = encodedURI.replace(/\+/g, ' '); - // Try the built in decoder first - return decodeURIComponent(encodedURI); - } catch (err) { - // Fallback to a more advanced decoder - return customDecodeURIComponent(encodedURI); - } -}; +/** + * Module dependencies + */ +exports.extend = __webpack_require__(399); +exports.SourceMap = __webpack_require__(503); +exports.sourceMapResolve = __webpack_require__(514); -/***/ }), -/* 405 */ -/***/ (function(module, exports, __webpack_require__) { +/** + * Convert backslash in the given string to forward slashes + */ -// Copyright 2014 Simon Lydell -// X11 (“MIT”) Licensed. (See LICENSE.) - -var path = __webpack_require__(5) - -"use strict" - -function urix(aPath) { - if (path.sep === "\\") { - return aPath - .replace(/\\/g, "/") - .replace(/^[a-z]:\/?/i, "/") - } - return aPath -} - -module.exports = urix +exports.unixify = function(fp) { + return fp.split(/\\+/).join('/'); +}; +/** + * Return true if `val` is a non-empty string + * + * @param {String} `str` + * @return {Boolean} + */ -/***/ }), -/* 406 */ -/***/ (function(module, exports, __webpack_require__) { +exports.isString = function(str) { + return str && typeof str === 'string'; +}; -"use strict"; +/** + * Cast `val` to an array + * @return {Array} + */ +exports.arrayify = function(val) { + if (typeof val === 'string') return [val]; + return val ? (Array.isArray(val) ? val : [val]) : []; +}; -function atob(str) { - return Buffer.from(str, 'base64').toString('binary'); -} +/** + * Get the last `n` element from the given `array` + * @param {Array} `array` + * @return {*} + */ -module.exports = atob.atob = atob; +exports.last = function(arr, n) { + return arr[arr.length - (n || 1)]; +}; /***/ }), -/* 407 */ +/* 503 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ +exports.SourceMapGenerator = __webpack_require__(504).SourceMapGenerator; +exports.SourceMapConsumer = __webpack_require__(510).SourceMapConsumer; +exports.SourceNode = __webpack_require__(513).SourceNode; -var fs = __webpack_require__(13); -var path = __webpack_require__(5); -var define = __webpack_require__(67); -var utils = __webpack_require__(79); +/***/ }), +/* 504 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Expose `mixin()`. - * This code is based on `source-maps-support.js` in reworkcss/css - * https://github.com/reworkcss/css/blob/master/lib/stringify/source-map-support.js - * Copyright (c) 2012 TJ Holowaychuk +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause */ -module.exports = mixin; +var base64VLQ = __webpack_require__(505); +var util = __webpack_require__(507); +var ArraySet = __webpack_require__(508).ArraySet; +var MappingList = __webpack_require__(509).MappingList; /** - * Mixin source map support into `compiler`. + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: * - * @param {Object} `compiler` - * @api public + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. */ - -function mixin(compiler) { - define(compiler, '_comment', compiler.comment); - compiler.map = new utils.SourceMap.SourceMapGenerator(); - compiler.position = { line: 1, column: 1 }; - compiler.content = {}; - compiler.files = {}; - - for (var key in exports) { - define(compiler, key, exports[key]); +function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; } +SourceMapGenerator.prototype._version = 3; + /** - * Update position. + * Creates a new SourceMapGenerator based on a SourceMapConsumer * - * @param {String} str + * @param aSourceMapConsumer The SourceMap. */ +SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator({ + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + }); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; -exports.updatePosition = function(str) { - var lines = str.match(/\n/g); - if (lines) this.position.line += lines.length; - var i = str.lastIndexOf('\n'); - this.position.column = ~i ? str.length - i : this.position.column + str.length; -}; + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } -/** - * Emit `str` with `position`. - * - * @param {String} str - * @param {Object} [pos] - * @return {String} - */ + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; -exports.emit = function(str, node) { - var position = node.position || {}; - var source = position.source; - if (source) { - if (position.filepath) { - source = utils.unixify(position.filepath); - } + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } - this.map.addMapping({ - source: source, - generated: { - line: this.position.line, - column: Math.max(this.position.column - 1, 0) - }, - original: { - line: position.start.line, - column: position.start.column - 1 + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); } }); - - if (position.content) { - this.addContent(source, position); - } - if (position.filepath) { - this.addFile(source, position); - } - - this.updatePosition(str); - this.output += str; - } - return str; -}; + return generator; + }; /** - * Adds a file to the source map output if it has not already been added - * @param {String} `file` - * @param {Object} `pos` + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. */ +SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); -exports.addFile = function(file, position) { - if (typeof position.content !== 'string') return; - if (Object.prototype.hasOwnProperty.call(this.files, file)) return; - this.files[file] = position.content; -}; + if (!this._skipValidation) { + this._validateMapping(generated, original, source, name); + } -/** - * Adds a content source to the source map output if it has not already been added - * @param {String} `source` - * @param {Object} `position` - */ + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } -exports.addContent = function(source, position) { - if (typeof position.content !== 'string') return; - if (Object.prototype.hasOwnProperty.call(this.content, source)) return; - this.map.setSourceContent(source, position.content); -}; + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; /** - * Applies any original source maps to the output and embeds the source file - * contents in the source map. + * Set the source content for a source file. */ +SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } -exports.applySourceMaps = function() { - Object.keys(this.files).forEach(function(file) { - var content = this.files[file]; - this.map.setSourceContent(file, content); - - if (this.options.inputSourcemaps === true) { - var originalMap = utils.sourceMapResolve.resolveSync(content, file, fs.readFileSync); - if (originalMap) { - var map = new utils.SourceMap.SourceMapConsumer(originalMap.map); - var relativeTo = originalMap.sourcesRelativeTo; - this.map.applySourceMap(map, file, utils.unixify(path.dirname(relativeTo))); + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; } } - }, this); -}; + }; /** - * Process comments, drops sourceMap comments. - * @param {Object} node + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. */ +SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); -exports.comment = function(node) { - if (/^# sourceMappingURL=/.test(node.comment)) { - return this.emit('', node.position); - } - return this._comment(node); -}; - + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source) + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } -/***/ }), -/* 408 */ -/***/ (function(module, exports, __webpack_require__) { + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } -"use strict"; + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + }, this); + this._sources = newSources; + this._names = newNames; -var use = __webpack_require__(143); -var util = __webpack_require__(14); -var Cache = __webpack_require__(148); -var define = __webpack_require__(67); -var debug = __webpack_require__(106)('snapdragon:parser'); -var Position = __webpack_require__(409); -var utils = __webpack_require__(79); + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; /** - * Create a new `Parser` with the given `input` and `options`. - * @param {String} `input` - * @param {Object} `options` - * @api public + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. */ +SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + throw new Error( + 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + ); + } -function Parser(options) { - debug('initializing', __filename); - this.options = utils.extend({source: 'string'}, options); - this.init(this.options); - use(this); -} + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + throw new Error('Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + })); + } + }; /** - * Prototype methods + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. */ +SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; -Parser.prototype = { - constructor: Parser, - - init: function(options) { - this.orig = ''; - this.input = ''; - this.parsed = ''; + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = '' - this.column = 1; - this.line = 1; + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } - this.regex = new Cache(); - this.errors = this.errors || []; - this.parsers = this.parsers || {}; - this.types = this.types || []; - this.sets = this.sets || {}; - this.fns = this.fns || []; - this.currentType = 'root'; + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; - var pos = this.position(); - this.bos = pos({type: 'bos', val: ''}); + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; - this.ast = { - type: 'root', - errors: this.errors, - nodes: [this.bos] - }; + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; - define(this.bos, 'parent', this.ast); - this.nodes = [this.ast]; + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; - this.count = 0; - this.setCount = 0; - this.stack = []; - }, + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } - /** - * Throw a formatted error with the cursor column and `msg`. - * @param {String} `msg` Message to use in the Error. - */ + result += next; + } - error: function(msg, node) { - var pos = node.position || {start: {column: 0, line: 0}}; - var line = pos.start.line; - var column = pos.start.column; - var source = this.options.source; + return result; + }; - var message = source + ' : ' + msg; - var err = new Error(message); - err.source = source; - err.reason = msg; - err.pos = pos; +SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; - if (this.options.silent) { - this.errors.push(err); - } else { - throw err; +/** + * Externalize the source map. + */ +SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); } - }, - /** - * Define a non-enumberable property on the `Parser` instance. - * - * ```js - * parser.define('foo', 'bar'); - * ``` - * @name .define - * @param {String} `key` propery name - * @param {any} `val` property value - * @return {Object} Returns the Parser instance for chaining. - * @api public - */ + return map; + }; - define: function(key, val) { - define(this, key, val); - return this; - }, +/** + * Render the source map being generated to a string. + */ +SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; - /** - * Mark position and patch `node.position`. - */ +exports.SourceMapGenerator = SourceMapGenerator; - position: function() { - var start = { line: this.line, column: this.column }; - var self = this; - return function(node) { - define(node, 'position', new Position(start, self)); - return node; - }; - }, +/***/ }), +/* 505 */ +/***/ (function(module, exports, __webpack_require__) { - /** - * Set parser `name` with the given `fn` - * @param {String} `name` - * @param {Function} `fn` - * @api public - */ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ - set: function(type, fn) { - if (this.types.indexOf(type) === -1) { - this.types.push(type); - } - this.parsers[type] = fn.bind(this); - return this; - }, +var base64 = __webpack_require__(506); - /** - * Get parser `name` - * @param {String} `name` - * @api public - */ +// 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, +// the next four bits are the actual value, and the 6th bit is the +// continuation bit. The continuation bit tells us whether there are more +// digits in this value following this digit. +// +// Continuation +// | Sign +// | | +// V V +// 101011 - get: function(name) { - return this.parsers[name]; - }, +var VLQ_BASE_SHIFT = 5; - /** - * Push a `token` onto the `type` stack. - * - * @param {String} `type` - * @return {Object} `token` - * @api public - */ +// binary: 100000 +var VLQ_BASE = 1 << VLQ_BASE_SHIFT; - push: function(type, token) { - this.sets[type] = this.sets[type] || []; - this.count++; - this.stack.push(token); - return this.sets[type].push(token); - }, +// binary: 011111 +var VLQ_BASE_MASK = VLQ_BASE - 1; - /** - * Pop a token off of the `type` stack - * @param {String} `type` - * @returns {Object} Returns a token - * @api public - */ +// binary: 100000 +var VLQ_CONTINUATION_BIT = VLQ_BASE; - pop: function(type) { - this.sets[type] = this.sets[type] || []; - this.count--; - this.stack.pop(); - return this.sets[type].pop(); - }, +/** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ +function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; +} + +/** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ +function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; +} - /** - * Return true if inside a `stack` node. Types are `braces`, `parens` or `brackets`. - * - * @param {String} `type` - * @return {Boolean} - * @api public - */ +/** + * Returns the base 64 VLQ encoded value. + */ +exports.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; - isInside: function(type) { - this.sets[type] = this.sets[type] || []; - return this.sets[type].length > 0; - }, + var vlq = toVLQSigned(aValue); - /** - * Return true if `node` is the given `type`. - * - * ```js - * parser.isType(node, 'brace'); - * ``` - * @param {Object} `node` - * @param {String} `type` - * @return {Boolean} - * @api public - */ + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); - isType: function(node, type) { - return node && node.type === type; - }, + return encoded; +}; - /** - * Get the previous AST node - * @return {Object} - */ +/** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ +exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; - prev: function(n) { - return this.stack.length > 0 - ? utils.last(this.stack, n) - : utils.last(this.nodes, n); - }, + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } - /** - * Update line and column based on `str`. - */ + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } - consume: function(len) { - this.input = this.input.substr(len); - }, + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); - /** - * Update column based on `str`. - */ + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; +}; - updatePosition: function(str, len) { - var lines = str.match(/\n/g); - if (lines) this.line += lines.length; - var i = str.lastIndexOf('\n'); - this.column = ~i ? len - i : this.column + len; - this.parsed += str; - this.consume(len); - }, - /** - * Match `regex`, return captures, and update the cursor position by `match[0]` length. - * @param {RegExp} `regex` - * @return {Object} - */ +/***/ }), +/* 506 */ +/***/ (function(module, exports) { - match: function(regex) { - var m = regex.exec(this.input); - if (m) { - this.updatePosition(m[0], m[0].length); - return m; - } - }, +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ - /** - * Capture `type` with the given regex. - * @param {String} `type` - * @param {RegExp} `regex` - * @return {Function} - */ +var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); - capture: function(type, regex) { - if (typeof regex === 'function') { - return this.set.apply(this, arguments); - } +/** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ +exports.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); +}; - this.regex.set(type, regex); - this.set(type, function() { - var parsed = this.parsed; - var pos = this.position(); - var m = this.match(regex); - if (!m || !m[0]) return; +/** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ +exports.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' - var prev = this.prev(); - var node = pos({ - type: type, - val: m[0], - parsed: parsed, - rest: this.input - }); + var littleA = 97; // 'a' + var littleZ = 122; // 'z' - if (m[1]) { - node.inner = m[1]; - } + var zero = 48; // '0' + var nine = 57; // '9' - define(node, 'inside', this.stack.length > 0); - define(node, 'parent', prev); - prev.nodes.push(node); - }.bind(this)); - return this; - }, + var plus = 43; // '+' + var slash = 47; // '/' - /** - * Create a parser with open and close for parens, - * brackets or braces - */ + var littleOffset = 26; + var numberOffset = 52; - capturePair: function(type, openRegex, closeRegex, fn) { - this.sets[type] = this.sets[type] || []; + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } - /** - * Open - */ + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } - this.set(type + '.open', function() { - var parsed = this.parsed; - var pos = this.position(); - var m = this.match(openRegex); - if (!m || !m[0]) return; + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } - var val = m[0]; - this.setCount++; - this.specialChars = true; - var open = pos({ - type: type + '.open', - val: val, - rest: this.input - }); + // 62: + + if (charCode == plus) { + return 62; + } - if (typeof m[1] !== 'undefined') { - open.inner = m[1]; - } + // 63: / + if (charCode == slash) { + return 63; + } - var prev = this.prev(); - var node = pos({ - type: type, - nodes: [open] - }); + // Invalid base64 digit. + return -1; +}; - define(node, 'rest', this.input); - define(node, 'parsed', parsed); - define(node, 'prefix', m[1]); - define(node, 'parent', prev); - define(open, 'parent', node); - if (typeof fn === 'function') { - fn.call(this, open, node); - } +/***/ }), +/* 507 */ +/***/ (function(module, exports) { - this.push(type, node); - prev.nodes.push(node); - }); +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ - /** - * Close - */ +/** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ +function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } +} +exports.getArg = getArg; - this.set(type + '.close', function() { - var pos = this.position(); - var m = this.match(closeRegex); - if (!m || !m[0]) return; +var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/; +var dataUrlRegexp = /^data:.+\,.+$/; - var parent = this.pop(type); - var node = pos({ - type: type + '.close', - rest: this.input, - suffix: m[1], - val: m[0] - }); +function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; +} +exports.urlParse = urlParse; - if (!this.isType(parent, type)) { - if (this.options.strict) { - throw new Error('missing opening "' + type + '"'); - } +function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; +} +exports.urlGenerate = urlGenerate; - this.setCount--; - node.escaped = true; - return node; - } +/** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ +function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); - if (node.suffix === '\\') { - parent.escaped = true; - node.escaped = true; + var parts = path.split(/\/+/); + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; } + } + } + path = parts.join('/'); - parent.nodes.push(node); - define(node, 'parent', parent); - }); + if (path === '') { + path = isAbsolute ? '/' : '.'; + } - return this; - }, + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; +} +exports.normalize = normalize; - /** - * Capture end-of-string - */ +/** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ +function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } - eos: function() { - var pos = this.position(); - if (this.input) return; - var prev = this.prev(); + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } - while (prev.type !== 'root' && !prev.visited) { - if (this.options.strict === true) { - throw new SyntaxError('invalid syntax:' + util.inspect(prev, null, 2)); - } + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } - if (!hasDelims(prev)) { - prev.parent.escaped = true; - prev.escaped = true; - } + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } - visit(prev, function(node) { - if (!hasDelims(node.parent)) { - node.parent.escaped = true; - node.escaped = true; - } - }); + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); - prev = prev.parent; - } + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; +} +exports.join = join; - var tok = pos({ - type: 'eos', - val: this.append || '' - }); +exports.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp); +}; - define(tok, 'parent', this.ast); - return tok; - }, +/** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ +function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } - /** - * Run parsers to advance the cursor position - */ + aRoot = aRoot.replace(/\/$/, ''); - next: function() { - var parsed = this.parsed; - var len = this.types.length; - var idx = -1; - var tok; + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } - while (++idx < len) { - if ((tok = this.parsers[this.types[idx]].call(this))) { - define(tok, 'rest', this.input); - define(tok, 'parsed', parsed); - this.last = tok; - return tok; - } + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; } - }, - /** - * Parse the given string. - * @return {Array} - */ + ++level; + } - parse: function(input) { - if (typeof input !== 'string') { - throw new TypeError('expected a string'); - } + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); +} +exports.relative = relative; - this.init(this.options); - this.orig = input; - this.input = input; - var self = this; +var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); +}()); - function parse() { - // check input before calling `.next()` - input = self.input; +function identity (s) { + return s; +} - // get the next AST ndoe - var node = self.next(); - if (node) { - var prev = self.prev(); - if (prev) { - define(node, 'parent', prev); - if (prev.nodes) { - prev.nodes.push(node); - } - } +/** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ +function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } - if (self.sets.hasOwnProperty(prev.type)) { - self.currentType = prev.type; - } - } + return aStr; +} +exports.toSetString = supportsNullProto ? identity : toSetString; - // if we got here but input is not changed, throw an error - if (self.input && input === self.input) { - throw new Error('no parsers registered for: "' + self.input.slice(0, 5) + '"'); - } - } +function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } - while (this.input) parse(); - if (this.stack.length && this.options.strict) { - var node = this.stack.pop(); - throw this.error('missing opening ' + node.type + ': "' + this.orig + '"'); - } + return aStr; +} +exports.fromSetString = supportsNullProto ? identity : fromSetString; - var eos = this.eos(); - var tok = this.prev(); - if (tok.type !== 'eos') { - this.ast.nodes.push(eos); - } +function isProtoString(s) { + if (!s) { + return false; + } - return this.ast; + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; } -}; -/** - * Visit `node` with the given `fn` - */ + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } -function visit(node, fn) { - if (!node.visited) { - define(node, 'visited', true); - return node.nodes ? mapVisit(node.nodes, fn) : fn(node); + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } } - return node; + + return true; } /** - * Map visit over array of `nodes`. + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. */ +function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = mappingA.source - mappingB.source; + if (cmp !== 0) { + return cmp; + } -function mapVisit(nodes, fn) { - var len = nodes.length; - var idx = -1; - while (++idx < len) { - visit(nodes[idx], fn); + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; } -} -function hasOpen(node) { - return node.nodes && node.nodes[0].type === (node.type + '.open'); -} + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } -function hasClose(node) { - return node.nodes && utils.last(node.nodes).type === (node.type + '.close'); -} + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } -function hasDelims(node) { - return hasOpen(node) && hasClose(node); + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return mappingA.name - mappingB.name; } +exports.compareByOriginalPositions = compareByOriginalPositions; /** - * Expose `Parser` + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. */ +function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } -module.exports = Parser; + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + cmp = mappingA.source - mappingB.source; + if (cmp !== 0) { + return cmp; + } -/***/ }), -/* 409 */ -/***/ (function(module, exports, __webpack_require__) { + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } -"use strict"; + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return mappingA.name - mappingB.name; +} +exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + +function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + if (aStr1 > aStr2) { + return 1; + } -var define = __webpack_require__(67); + return -1; +} /** - * Store position for a node + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. */ +function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } -module.exports = function Position(start, parser) { - this.start = start; - this.end = { line: parser.line, column: parser.column }; - define(this, 'content', parser.orig); - define(this, 'source', parser.options.source); -}; + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } -/***/ }), -/* 410 */ -/***/ (function(module, exports, __webpack_require__) { + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } -"use strict"; + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; -var nanomatch = __webpack_require__(149); -var extglob = __webpack_require__(152); -module.exports = function(snapdragon) { - var compilers = snapdragon.compiler.compilers; - var opts = snapdragon.options; +/***/ }), +/* 508 */ +/***/ (function(module, exports, __webpack_require__) { - // register nanomatch compilers - snapdragon.use(nanomatch.compilers); +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ - // get references to some specific nanomatch compilers before they - // are overridden by the extglob and/or custom compilers - var escape = compilers.escape; - var qmark = compilers.qmark; - var slash = compilers.slash; - var star = compilers.star; - var text = compilers.text; - var plus = compilers.plus; - var dot = compilers.dot; +var util = __webpack_require__(507); +var has = Object.prototype.hasOwnProperty; +var hasNativeMap = typeof Map !== "undefined"; - // register extglob compilers or escape exglobs if disabled - if (opts.extglob === false || opts.noext === true) { - snapdragon.compiler.use(escapeExtglobs); - } else { - snapdragon.use(extglob.compilers); +/** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ +function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); +} + +/** + * Static method for creating ArraySet instances from an existing array. + */ +ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); } + return set; +}; - snapdragon.use(function() { - this.options.star = this.options.star || function(/*node*/) { - return '[^/]*?'; - }; - }); +/** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ +ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; +}; - // custom micromatch compilers - snapdragon.compiler +/** + * Add the given string to this set. + * + * @param String aStr + */ +ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } +}; - // reset referenced compiler - .set('dot', dot) - .set('escape', escape) - .set('plus', plus) - .set('slash', slash) - .set('qmark', qmark) - .set('star', star) - .set('text', text); +/** + * Is the given string a member of this set? + * + * @param String aStr + */ +ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } }; -function escapeExtglobs(compiler) { - compiler.set('paren', function(node) { - var val = ''; - visit(node, function(tok) { - if (tok.val) val += '\\' + tok.val; - }); - return this.emit(val, node); - }); +/** + * What is the index of the given string in the array? + * + * @param String aStr + */ +ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } - /** - * Visit `node` with the given `fn` - */ + throw new Error('"' + aStr + '" is not in the set.'); +}; - function visit(node, fn) { - return node.nodes ? mapVisit(node.nodes, fn) : fn(node); +/** + * What is the element at the given index? + * + * @param Number aIdx + */ +ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; } + throw new Error('No element indexed by ' + aIdx); +}; - /** - * Map visit over array of `nodes`. - */ +/** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ +ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); +}; - function mapVisit(nodes, fn) { - var len = nodes.length; - var idx = -1; - while (++idx < len) { - visit(nodes[idx], fn); - } - } -} +exports.ArraySet = ArraySet; /***/ }), -/* 411 */ +/* 509 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ +var util = __webpack_require__(507); /** - * Nanomatch compilers + * Determine whether mappingB is after mappingA with respect to generated + * position. */ +function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; +} -module.exports = function(nanomatch, options) { - var star = '[^/]*?'; - - var ast = nanomatch.ast = nanomatch.parser.ast; - ast.state = nanomatch.parser.state; - nanomatch.compiler.state = ast.state; - nanomatch.compiler +/** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ +function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; +} - /** - * Negation / escaping - */ +/** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ +MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; - .set('not', function(node) { - var prev = this.prev(); - if (this.options.nonegate === true || prev.type !== 'bos') { - return this.emit('\\' + node.val, node); - } - return this.emit(node.val, node); - }) - .set('escape', function(node) { - if (this.options.unescape && /^[\w_.-]/.test(node.val)) { - return this.emit(node.val, node); - } - return this.emit('\\' + node.val, node); - }) - .set('quoted', function(node) { - return this.emit(node.val, node); - }) +/** + * Add the given source mapping. + * + * @param Object aMapping + */ +MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } +}; - /** - * Regex - */ +/** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ +MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; +}; - .set('dollar', function(node) { - if (node.parent.type === 'bracket') { - return this.emit(node.val, node); - } - return this.emit('\\' + node.val, node); - }) +exports.MappingList = MappingList; - /** - * Dot: "." - */ - .set('dot', function(node) { - if (node.dotfiles === true) this.dotfiles = true; - return this.emit('\\' + node.val, node); - }) +/***/ }), +/* 510 */ +/***/ (function(module, exports, __webpack_require__) { - /** - * Slashes: "/" and "\" - */ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ - .set('backslash', function(node) { - return this.emit(node.val, node); - }) - .set('slash', function(node, nodes, i) { - var val = '\\' + node.val; - var parent = node.parent; - var prev = this.prev(); +var util = __webpack_require__(507); +var binarySearch = __webpack_require__(511); +var ArraySet = __webpack_require__(508).ArraySet; +var base64VLQ = __webpack_require__(505); +var quickSort = __webpack_require__(512).quickSort; - // set "node.hasSlash" to true on all ancestor parens nodes - while (parent.type === 'paren' && !parent.hasSlash) { - parent.hasSlash = true; - parent = parent.parent; - } +function SourceMapConsumer(aSourceMap) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); + } - if (prev.addQmark) { - val += '?'; - } + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap) + : new BasicSourceMapConsumer(sourceMap); +} - // word boundary - if (node.rest.slice(0, 2) === '\\b') { - return this.emit(val, node); - } +SourceMapConsumer.fromSourceMap = function(aSourceMap) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap); +} - // globstars - if (node.parsed === '**' || node.parsed === './**') { - this.output = '(?:' + this.output; - return this.emit(val + ')?', node); - } +/** + * The version of the source mapping spec that we are consuming. + */ +SourceMapConsumer.prototype._version = 3; - // negation - if (node.parsed === '!**' && this.options.nonegate !== true) { - return this.emit(val + '?\\b', node); - } - return this.emit(val, node); - }) +// `__generatedMappings` and `__originalMappings` are arrays that hold the +// parsed mapping coordinates from the source map's "mappings" attribute. They +// are lazily instantiated, accessed via the `_generatedMappings` and +// `_originalMappings` getters respectively, and we only parse the mappings +// and create these arrays once queried for a source location. We jump through +// these hoops because there can be many thousands of mappings, and parsing +// them is expensive, so we only want to do it if we must. +// +// Each object in the arrays is of the form: +// +// { +// generatedLine: The line number in the generated code, +// generatedColumn: The column number in the generated code, +// source: The path to the original source file that generated this +// chunk of code, +// originalLine: The line number in the original source that +// corresponds to this chunk of generated code, +// originalColumn: The column number in the original source that +// corresponds to this chunk of generated code, +// name: The name of the original symbol which generated this chunk of +// code. +// } +// +// All properties except for `generatedLine` and `generatedColumn` can be +// `null`. +// +// `_generatedMappings` is ordered by the generated positions. +// +// `_originalMappings` is ordered by the original positions. - /** - * Square brackets - */ +SourceMapConsumer.prototype.__generatedMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } - .set('bracket', function(node) { - var close = node.close; - var open = !node.escaped ? '[' : '\\['; - var negated = node.negated; - var inner = node.inner; - var val = node.val; + return this.__generatedMappings; + } +}); - if (node.escaped === true) { - inner = inner.replace(/\\?(\W)/g, '\\$1'); - negated = ''; - } +SourceMapConsumer.prototype.__originalMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } - if (inner === ']-') { - inner = '\\]\\-'; - } + return this.__originalMappings; + } +}); - if (negated && inner.indexOf('.') === -1) { - inner += '.'; - } - if (negated && inner.indexOf('/') === -1) { - inner += '/'; - } +SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; - val = open + negated + inner + close; - return this.emit(val, node); - }) +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; - /** - * Square: "[.]" (only matches a single character in brackets) - */ +SourceMapConsumer.GENERATED_ORDER = 1; +SourceMapConsumer.ORIGINAL_ORDER = 2; - .set('square', function(node) { - var val = !/^\w/.test(node.val) ? '\\' + node.val : node.val; - return this.emit(val, node); - }) +SourceMapConsumer.GREATEST_LOWER_BOUND = 1; +SourceMapConsumer.LEAST_UPPER_BOUND = 2; - /** - * Question mark: "?" - */ +/** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ +SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; - .set('qmark', function(node) { - var prev = this.prev(); - var val = '[^.\\\\/]'; - if (this.options.dot || (prev.type !== 'bos' && prev.type !== 'slash')) { - val = '[^\\\\/]'; - } + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } - if (node.parsed.slice(-1) === '(') { - var ch = node.rest.charAt(0); - if (ch === '!' || ch === '=' || ch === ':') { - return this.emit(node.val, node); - } + var sourceRoot = this.sourceRoot; + mappings.map(function (mapping) { + var source = mapping.source === null ? null : this._sources.at(mapping.source); + if (source != null && sourceRoot != null) { + source = util.join(sourceRoot, source); } + return { + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : this._names.at(mapping.name) + }; + }, this).forEach(aCallback, context); + }; - if (node.val.length > 1) { - val += '{' + node.val.length + '}'; - } - return this.emit(val, node); - }) +/** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. + * - column: Optional. the column number in the original source. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. + * - column: The column number in the generated source, or null. + */ +SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); - /** - * Plus - */ + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; - .set('plus', function(node) { - var prev = node.parsed.slice(-1); - if (prev === ']' || prev === ')') { - return this.emit(node.val, node); - } - if (!this.output || (/[?*+]/.test(ch) && node.parent.type !== 'bracket')) { - return this.emit('\\+', node); - } - var ch = this.output.slice(-1); - if (/\w/.test(ch) && !node.inside) { - return this.emit('+\\+?', node); - } - return this.emit('+', node); - }) + if (this.sourceRoot != null) { + needle.source = util.relative(this.sourceRoot, needle.source); + } + if (!this._sources.has(needle.source)) { + return []; + } + needle.source = this._sources.indexOf(needle.source); - /** - * globstar: '**' - */ + var mappings = []; - .set('globstar', function(node, nodes, i) { - if (!this.output) { - this.state.leadingGlobstar = true; - } + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; - var next = this.next(); - var prev = this.prev(); - var next2 = this.next(2); - var prev2 = this.prev(2); - var type = prev.type; - var val = node.val; + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; - if (prev.type === 'slash' && next.type === 'slash') { - if (prev2.type === 'text') { - this.output += '?'; + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); - if (next2.type !== 'text') { - this.output += '\\b'; - } + mapping = this._originalMappings[++index]; } - } - - var parsed = node.parsed; - if (parsed.charAt(0) === '!') { - parsed = parsed.slice(1); - } - - var isInside = node.isInside.paren || node.isInside.brace; - if (parsed && type !== 'slash' && type !== 'bos' && !isInside) { - val = star; } else { - val = this.options.dot !== true - ? '(?:(?!(?:\\/|^)\\.).)*?' - : '(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/))(?!\\.{2}).)*?'; - } + var originalColumn = mapping.originalColumn; - if ((type === 'slash' || type === 'bos') && this.options.dot !== true) { - val = '(?!\\.)' + val; - } + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); - if (prev.type === 'slash' && next.type === 'slash' && prev2.type !== 'text') { - if (next2.type === 'text' || next2.type === 'star') { - node.addQmark = true; + mapping = this._originalMappings[++index]; } } + } - if (this.options.capture) { - val = '(' + val + ')'; - } - - return this.emit(val, node); - }) - - /** - * Star: "*" - */ - - .set('star', function(node, nodes, i) { - var prior = nodes[i - 2] || {}; - var prev = this.prev(); - var next = this.next(); - var type = prev.type; - - function isStart(n) { - return n.type === 'bos' || n.type === 'slash'; - } - - if (this.output === '' && this.options.contains !== true) { - this.output = '(?!\\/)'; - } + return mappings; + }; - if (type === 'bracket' && this.options.bash === false) { - var str = next && next.type === 'bracket' ? star : '*?'; - if (!prev.nodes || prev.nodes[1].type !== 'posix') { - return this.emit(str, node); - } - } +exports.SourceMapConsumer = SourceMapConsumer; - var prefix = !this.dotfiles && type !== 'text' && type !== 'escape' - ? (this.options.dot ? '(?!(?:^|\\/)\\.{1,2}(?:$|\\/))' : '(?!\\.)') - : ''; +/** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The only parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ +function BasicSourceMapConsumer(aSourceMap) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); + } - if (isStart(prev) || (isStart(prior) && type === 'not')) { - if (prefix !== '(?!\\.)') { - prefix += '(?!(\\.{2}|\\.\\/))(?=.)'; - } else { - prefix += '(?=.)'; - } - } else if (prefix === '(?!\\.)') { - prefix = ''; - } + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); - if (prev.type === 'not' && prior.type === 'bos' && this.options.dot === true) { - this.output = '(?!\\.)' + this.output; - } + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } - var output = prefix + star; - if (this.options.capture) { - output = '(' + output + ')'; - } + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); - return this.emit(output, node); - }) + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); - /** - * Text - */ + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this.file = file; +} - .set('text', function(node) { - return this.emit(node.val, node); - }) +BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; - /** - * End-of-string - */ +/** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @returns BasicSourceMapConsumer + */ +BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap) { + var smc = Object.create(BasicSourceMapConsumer.prototype); - .set('eos', function(node) { - var prev = this.prev(); - var val = node.val; + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; - this.output = '(?:(?:\\.(?:\\/|\\\\))(?=.))?' + this.output; - if (this.state.metachar && prev.type !== 'qmark' && prev.type !== 'slash') { - val += (this.options.contains ? '(?:\\/|\\\\)?' : '(?:(?:\\/|\\\\)|$)'); - } + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. - return this.emit(val, node); - }); + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; - /** - * Allow custom compilers to be passed on options - */ + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; - if (options && typeof options.compilers === 'function') { - options.compilers(nanomatch.compiler); - } -}; + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + destOriginalMappings.push(destMapping); + } -/***/ }), -/* 412 */ -/***/ (function(module, exports, __webpack_require__) { + destGeneratedMappings.push(destMapping); + } -"use strict"; + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + return smc; + }; -var regexNot = __webpack_require__(64); -var toRegex = __webpack_require__(43); -var isOdd = __webpack_require__(413); +/** + * The version of the source mapping spec that we are consuming. + */ +BasicSourceMapConsumer.prototype._version = 3; /** - * Characters to use in negation regex (we want to "not" match - * characters that are matched by other parsers) + * The list of original sources. */ +Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._sources.toArray().map(function (s) { + return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s; + }, this); + } +}); -var cached; -var NOT_REGEX = '[!*+?$^"\'.\\\\/\\[]+'; -var not = createTextRegex(NOT_REGEX); +/** + * Provide the JIT with a nice shape / hidden class. + */ +function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; +} /** - * Nanomatch parsers + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). */ +BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; -module.exports = function(nanomatch, options) { - var parser = nanomatch.parser; - var opts = parser.options; + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; - parser.state = { - slashes: 0, - paths: [] - }; + // Because each offset is encoded relative to the previous one, + // many segments often have the same encoding. We can exploit this + // fact by caching the parsed variable length fields of each segment, + // allowing us to avoid a second parse if we encounter the same + // segment again. + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); - parser.ast.state = parser.state; - parser + segment = cachedSegments[str]; + if (segment) { + index += str.length; + } else { + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } - /** - * Beginning-of-string - */ + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } - .capture('prefix', function() { - if (this.parsed) return; - var pos = this.position(); - var m = this.match(/^\.[\\/]/); - if (!m) return; - this.state.strictOpen = !!this.options.strictOpen; - this.state.addPrefix = true; - }) + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } - /** - * Escape: "\\." - */ + cachedSegments[str] = segment; + } - .capture('escape', function() { - if (this.isInside('bracket')) return; - var pos = this.position(); - var m = this.match(/^(?:\\(.)|([$^]))/); - if (!m) return; + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; - return pos({ - type: 'escape', - val: m[2] || m[1] - }); - }) + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; - /** - * Quoted strings - */ + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; - .capture('quoted', function() { - var pos = this.position(); - var m = this.match(/^["']/); - if (!m) return; + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; - var quote = m[0]; - if (this.input.indexOf(quote) === -1) { - return pos({ - type: 'escape', - val: quote - }); + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + originalMappings.push(mapping); + } } + } - var tok = advanceTo(this.input, quote); - this.consume(tok.len); + quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated); + this.__generatedMappings = generatedMappings; - return pos({ - type: 'quoted', - val: tok.esc - }); - }) + quickSort(originalMappings, util.compareByOriginalPositions); + this.__originalMappings = originalMappings; + }; - /** - * Negations: "!" - */ +/** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ +BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. - .capture('not', function() { - var parsed = this.parsed; - var pos = this.position(); - var m = this.match(this.notRegex || /^\!+/); - if (!m) return; - var val = m[0]; + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } - var isNegated = isOdd(val.length); - if (parsed === '' && !isNegated) { - val = ''; - } + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; - // if nothing has been parsed, we know `!` is at the start, - // so we need to wrap the result in a negation regex - if (parsed === '' && isNegated && this.options.nonegate !== true) { - this.bos.val = '(?!^(?:'; - this.append = ')$).*'; - val = ''; +/** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ +BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } } - return pos({ - type: 'not', - val: val - }); - }) - /** - * Dot: "." - */ + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; - .capture('dot', function() { - var parsed = this.parsed; - var pos = this.position(); - var m = this.match(/^\.+/); - if (!m) return; +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. + * - column: The column number in the generated source. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. + * - column: The column number in the original source, or null. + * - name: The original identifier, or null. + */ +BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; - var val = m[0]; - this.state.dot = val === '.' && (parsed === '' || parsed.slice(-1) === '/'); + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); - return pos({ - type: 'dot', - dotfiles: this.state.dot, - val: val - }); - }) + if (index >= 0) { + var mapping = this._generatedMappings[index]; - /** - * Plus: "+" - */ + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + if (this.sourceRoot != null) { + source = util.join(this.sourceRoot, source); + } + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } - .capture('plus', /^\+(?!\()/) + return { + source: null, + line: null, + column: null, + name: null + }; + }; - /** - * Question mark: "?" - */ +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; - .capture('qmark', function() { - var parsed = this.parsed; - var pos = this.position(); - var m = this.match(/^\?+(?!\()/); - if (!m) return; +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } - this.state.metachar = true; - this.state.qmark = true; + if (this.sourceRoot != null) { + aSource = util.relative(this.sourceRoot, aSource); + } - return pos({ - type: 'qmark', - parsed: parsed, - val: m[0] - }); - }) + if (this._sources.has(aSource)) { + return this.sourcesContent[this._sources.indexOf(aSource)]; + } - /** - * Globstar: "**" - */ + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = aSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } - .capture('globstar', function() { - var parsed = this.parsed; - var pos = this.position(); - var m = this.match(/^\*{2}(?![*(])(?=[,\/)]|$)/); - if (!m) return; + if ((!url.path || url.path == "/") + && this._sources.has("/" + aSource)) { + return this.sourcesContent[this._sources.indexOf("/" + aSource)]; + } + } - var type = opts.noglobstar !== true ? 'globstar' : 'star'; - var node = pos({type: type, parsed: parsed}); + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. + * - column: The column number in the original source. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. + * - column: The column number in the generated source, or null. + */ +BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + if (this.sourceRoot != null) { + source = util.relative(this.sourceRoot, source); + } + if (!this._sources.has(source)) { + return { + line: null, + column: null, + lastColumn: null + }; + } + source = this._sources.indexOf(source); + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); - while (this.input.slice(0, 4) === '/**/') { - this.input = this.input.slice(3); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; } + } - node.isInside = { - brace: this.isInside('brace'), - paren: this.isInside('paren') - }; + return { + line: null, + column: null, + lastColumn: null + }; + }; - if (type === 'globstar') { - this.state.globstar = true; - node.val = '**'; +exports.BasicSourceMapConsumer = BasicSourceMapConsumer; - } else { - this.state.star = true; - node.val = '*'; - } +/** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The only parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ +function IndexedSourceMapConsumer(aSourceMap) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); + } - this.state.metachar = true; - return node; - }) + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); - /** - * Star: "*" - */ + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } - .capture('star', function() { - var pos = this.position(); - var starRe = /^(?:\*(?![*(])|[*]{3,}(?!\()|[*]{2}(?![(\/]|$)|\*(?=\*\())/; - var m = this.match(starRe); - if (!m) return; + this._sources = new ArraySet(); + this._names = new ArraySet(); - this.state.metachar = true; - this.state.star = true; - return pos({ - type: 'star', - val: m[0] - }); - }) + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); - /** - * Slash: "/" - */ + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; - .capture('slash', function() { - var pos = this.position(); - var m = this.match(/^\//); - if (!m) return; + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map')) + } + }); +} - this.state.slashes++; - return pos({ - type: 'slash', - val: m[0] - }); - }) +IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; - /** - * Backslash: "\\" - */ +/** + * The version of the source mapping spec that we are consuming. + */ +IndexedSourceMapConsumer.prototype._version = 3; - .capture('backslash', function() { - var pos = this.position(); - var m = this.match(/^\\(?![*+?(){}[\]'"])/); - if (!m) return; +/** + * The list of original sources. + */ +Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } +}); - var val = m[0]; +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. + * - column: The column number in the generated source. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. + * - column: The column number in the original source, or null. + * - name: The original identifier, or null. + */ +IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; - if (this.isInside('bracket')) { - val = '\\'; - } else if (val.length > 1) { - val = '\\\\'; - } + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } - return pos({ - type: 'backslash', - val: val + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); }); - }) + var section = this._sections[sectionIndex]; - /** - * Square: "[.]" - */ + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } - .capture('square', function() { - if (this.isInside('bracket')) return; - var pos = this.position(); - var m = this.match(/^\[([^!^\\])\]/); - if (!m) return; + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; - return pos({ - type: 'square', - val: m[1] - }); - }) +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; - /** - * Brackets: "[...]" (basic, this can be overridden by other parsers) - */ +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; - .capture('bracket', function() { - var pos = this.position(); - var m = this.match(/^(?:\[([!^]?)([^\]]+|\]\-)(\]|[^*+?]+)|\[)/); - if (!m) return; + var content = section.consumer.sourceContentFor(aSource, true); + if (content) { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; - var val = m[0]; - var negated = m[1] ? '^' : ''; - var inner = (m[2] || '').replace(/\\\\+/, '\\\\'); - var close = m[3] || ''; +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. + * - column: The column number in the original source. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. + * - column: The column number in the generated source, or null. + */ +IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; - if (m[2] && inner.length < m[2].length) { - val = val.replace(/\\\\+/, '\\\\'); + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; } + } - var esc = this.input.slice(0, 2); - if (inner === '' && esc === '\\]') { - inner += esc; - this.consume(2); + return { + line: null, + column: null + }; + }; - var str = this.input; - var idx = -1; - var ch; +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; - while ((ch = str[++idx])) { - this.consume(1); - if (ch === ']') { - close = ch; - break; - } - inner += ch; + var source = section.consumer._sources.at(mapping.source); + if (section.consumer.sourceRoot !== null) { + source = util.join(section.consumer.sourceRoot, source); } - } + this._sources.add(source); + source = this._sources.indexOf(source); - return pos({ - type: 'bracket', - val: val, - escaped: close !== ']', - negated: negated, - inner: inner, - close: close - }); - }) + var name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); - /** - * Text - */ + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; - .capture('text', function() { - if (this.isInside('bracket')) return; - var pos = this.position(); - var m = this.match(not); - if (!m || !m[0]) return; + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } - return pos({ - type: 'text', - val: m[0] - }); - }); + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; - /** - * Allow custom parsers to be passed on options - */ +exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; - if (options && typeof options.parsers === 'function') { - options.parsers(nanomatch.parser); - } -}; -/** - * Advance to the next non-escaped character +/***/ }), +/* 511 */ +/***/ (function(module, exports) { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause */ -function advanceTo(input, endChar) { - var ch = input.charAt(0); - var tok = { len: 1, val: '', esc: '' }; - var idx = 0; +exports.GREATEST_LOWER_BOUND = 1; +exports.LEAST_UPPER_BOUND = 2; - function advance() { - if (ch !== '\\') { - tok.esc += '\\' + ch; - tok.val += ch; +/** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ +function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); } - ch = input.charAt(++idx); - tok.len++; - - if (ch === '\\') { - advance(); - advance(); + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; } } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } - while (ch && ch !== endChar) { - advance(); - } - return tok; -} - -/** - * Create text regex - */ - -function createTextRegex(pattern) { - if (cached) return cached; - var opts = {contains: true, strictClose: false}; - var not = regexNot.create(pattern, opts); - var re = toRegex('^(?:[*]\\(|' + not + ')', opts); - return (cached = re); + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } } /** - * Expose negation string - */ - -module.exports.not = NOT_REGEX; - - -/***/ }), -/* 413 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * is-odd + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. */ - - - -var isNumber = __webpack_require__(77); - -module.exports = function isOdd(i) { - if (!isNumber(i)) { - throw new TypeError('is-odd expects a number.'); - } - if (Number(i) !== Math.floor(i)) { - throw new RangeError('is-odd expects an integer.'); +exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; } - return !!(~~i & 1); -}; + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } -/***/ }), -/* 414 */ -/***/ (function(module, exports, __webpack_require__) { + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } -module.exports = new (__webpack_require__(107))(); + return index; +}; /***/ }), -/* 415 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var utils = module.exports; -var path = __webpack_require__(5); - -/** - * Module dependencies - */ - -var Snapdragon = __webpack_require__(66); -utils.define = __webpack_require__(44); -utils.diff = __webpack_require__(150); -utils.extend = __webpack_require__(20); -utils.pick = __webpack_require__(151); -utils.typeOf = __webpack_require__(416); -utils.unique = __webpack_require__(65); +/* 512 */ +/***/ (function(module, exports) { -/** - * Returns true if the given value is effectively an empty string +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause */ -utils.isEmptyString = function(val) { - return String(val) === '' || String(val) === './'; -}; +// It turns out that some (most?) JavaScript engines don't self-host +// `Array.prototype.sort`. This makes sense because C++ will likely remain +// faster than JS when doing raw CPU-intensive sorting. However, when using a +// custom comparator function, calling back and forth between the VM's C++ and +// JIT'd JS is rather slow *and* loses JIT type information, resulting in +// worse generated code for the comparator function than would be optimal. In +// fact, when sorting with a comparator, these costs outweigh the benefits of +// sorting in C++. By using our own JS-implemented Quick Sort (below), we get +// a ~3500ms mean speed-up in `bench/bench.html`. /** - * Returns true if the platform is windows, or `path.sep` is `\\`. - * This is defined as a function to allow `path.sep` to be set in unit tests, - * or by the user, if there is a reason to do so. - * @return {Boolean} + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. */ - -utils.isWindows = function() { - return path.sep === '\\' || process.platform === 'win32'; -}; +function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; +} /** - * Return the last element from an array + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. */ - -utils.last = function(arr, n) { - return arr[arr.length - (n || 1)]; -}; +function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); +} /** - * Get the `Snapdragon` instance to use + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array */ +function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. -utils.instantiate = function(ast, options) { - var snapdragon; - // if an instance was created by `.parse`, use that instance - if (utils.typeOf(ast) === 'object' && ast.snapdragon) { - snapdragon = ast.snapdragon; - // if the user supplies an instance on options, use that instance - } else if (utils.typeOf(options) === 'object' && options.snapdragon) { - snapdragon = options.snapdragon; - // create a new instance - } else { - snapdragon = new Snapdragon(options); - } + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. - utils.define(snapdragon, 'parse', function(str, options) { - var parsed = Snapdragon.prototype.parse.apply(this, arguments); - parsed.input = str; + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; - // escape unmatched brace/bracket/parens - var last = this.parser.stack.pop(); - if (last && this.options.strictErrors !== true) { - var open = last.nodes[0]; - var inner = last.nodes[1]; - if (last.type === 'bracket') { - if (inner.val.charAt(0) === '[') { - inner.val = '\\' + inner.val; - } + swap(ary, pivotIndex, r); + var pivot = ary[r]; - } else { - open.val = '\\' + open.val; - var sibling = open.parent.nodes[1]; - if (sibling.type === 'star') { - sibling.loose = true; - } + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot) <= 0) { + i += 1; + swap(ary, i, j); } } - // add non-enumerable parser reference - utils.define(parsed, 'parser', this.parser); - return parsed; - }); - - return snapdragon; -}; + swap(ary, i + 1, j); + var q = i + 1; -/** - * Create the key to use for memoization. The key is generated - * by iterating over the options and concatenating key-value pairs - * to the pattern string. - */ + // (2) Recurse on each half. -utils.createKey = function(pattern, options) { - if (typeof options === 'undefined') { - return pattern; - } - var key = pattern; - for (var prop in options) { - if (options.hasOwnProperty(prop)) { - key += ';' + prop + '=' + String(options[prop]); - } + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); } - return key; -}; - -/** - * Cast `val` to an array - * @return {Array} - */ - -utils.arrayify = function(val) { - if (typeof val === 'string') return [val]; - return val ? (Array.isArray(val) ? val : [val]) : []; -}; - -/** - * Return true if `val` is a non-empty string - */ - -utils.isString = function(val) { - return typeof val === 'string'; -}; +} /** - * Return true if `val` is a non-empty string + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. */ - -utils.isRegex = function(val) { - return utils.typeOf(val) === 'regexp'; +exports.quickSort = function (ary, comparator) { + doQuickSort(ary, comparator, 0, ary.length - 1); }; -/** - * Return true if `val` is a non-empty string - */ -utils.isObject = function(val) { - return utils.typeOf(val) === 'object'; -}; +/***/ }), +/* 513 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Escape regex characters in the given string +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause */ -utils.escapeRegex = function(str) { - return str.replace(/[-[\]{}()^$|*+?.\\\/\s]/g, '\\$&'); -}; - -/** - * Combines duplicate characters in the provided `input` string. - * @param {String} `input` - * @returns {String} - */ +var SourceMapGenerator = __webpack_require__(504).SourceMapGenerator; +var util = __webpack_require__(507); -utils.combineDupes = function(input, patterns) { - patterns = utils.arrayify(patterns).join('|').split('|'); - patterns = patterns.map(function(s) { - return s.replace(/\\?([+*\\/])/g, '\\$1'); - }); - var substr = patterns.join('|'); - var regex = new RegExp('(' + substr + ')(?=\\1)', 'g'); - return input.replace(regex, ''); -}; +// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other +// operating systems these days (capturing the result). +var REGEX_NEWLINE = /(\r?\n)/; -/** - * Returns true if the given `str` has special characters - */ +// Newline character code for charCodeAt() comparisons +var NEWLINE_CODE = 10; -utils.hasSpecialChars = function(str) { - return /(?:(?:(^|\/)[!.])|[*?+()|\[\]{}]|[+@]\()/.test(str); -}; +// Private symbol for identifying `SourceNode`s when multiple versions of +// the source-map library are loaded. This MUST NOT CHANGE across +// versions! +var isSourceNode = "$$$isSourceNode$$$"; /** - * Normalize slashes in the given filepath. + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. * - * @param {String} `filepath` - * @return {String} + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. */ - -utils.toPosixPath = function(str) { - return str.replace(/\\+/g, '/'); -}; +function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); +} /** - * Strip backslashes before special characters in a string. + * Creates a SourceNode from generated code and a SourceMapConsumer. * - * @param {String} `str` - * @return {String} + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. */ +SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); -utils.unescape = function(str) { - return utils.toPosixPath(str.replace(/\\(?=[*+?!.])/g, '')); -}; - -/** - * Strip the drive letter from a windows filepath - * @param {String} `fp` - * @return {String} - */ + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; -utils.stripDrive = function(fp) { - return utils.isWindows() ? fp.replace(/^[a-z]:[\\\/]+?/i, '/') : fp; -}; + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; -/** - * Strip the prefix from a filepath - * @param {String} `fp` - * @return {String} - */ + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; -utils.stripPrefix = function(str) { - if (str.charAt(0) === '.' && (str.charAt(1) === '/' || str.charAt(1) === '\\')) { - return str.slice(2); - } - return str; -}; + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; -/** - * Returns true if `str` is a common character that doesn't need - * to be processed to be used for matching. - * @param {String} `str` - * @return {Boolean} - */ + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex]; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex]; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } -utils.isSimpleChar = function(str) { - return str === '' || str === ' ' || str === '.'; -}; + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); -/** - * Returns true if the given str is an escaped or - * unescaped path character - */ + return node; -utils.isSlash = function(str) { - return str === '/' || str === '\\/' || str === '\\' || str === '\\\\'; -}; + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; /** - * Returns a function that returns true if the given - * pattern matches or contains a `filepath` + * Add a chunk of generated JS to this source node. * - * @param {String} `pattern` - * @return {Function} + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. */ - -utils.matchPath = function(pattern, options) { - return (options && options.contains) - ? utils.containsPattern(pattern, options) - : utils.equalsPattern(pattern, options); +SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; }; /** - * Returns true if the given (original) filepath or unixified path are equal - * to the given pattern. + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. */ - -utils._equals = function(filepath, unixPath, pattern) { - return pattern === filepath || pattern === unixPath; +SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; }; /** - * Returns true if the given (original) filepath or unixified path contain - * the given pattern. + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. */ - -utils._contains = function(filepath, unixPath, pattern) { - return filepath.indexOf(pattern) !== -1 || unixPath.indexOf(pattern) !== -1; +SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } }; /** - * Returns a function that returns true if the given - * pattern is the same as a given `filepath` + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. * - * @param {String} `pattern` - * @return {Function} + * @param aSep The separator. */ - -utils.equalsPattern = function(pattern, options) { - var unixify = utils.unixify(options); - options = options || {}; - - return function fn(filepath) { - var equal = utils._equals(filepath, unixify(filepath), pattern); - if (equal === true || options.nocase !== true) { - return equal; +SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); } - var lower = filepath.toLowerCase(); - return utils._equals(lower, unixify(lower), pattern); - }; + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; }; /** - * Returns a function that returns true if the given - * pattern contains a `filepath` + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. * - * @param {String} `pattern` - * @return {Function} + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. */ - -utils.containsPattern = function(pattern, options) { - var unixify = utils.unixify(options); - options = options || {}; - - return function(filepath) { - var contains = utils._contains(filepath, unixify(filepath), pattern); - if (contains === true || options.nocase !== true) { - return contains; - } - var lower = filepath.toLowerCase(); - return utils._contains(lower, unixify(lower), pattern); - }; +SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; }; /** - * Returns a function that returns true if the given - * regex matches the `filename` of a file path. + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. * - * @param {RegExp} `re` Matching regex - * @return {Function} + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file */ - -utils.matchBasename = function(re) { - return function(filepath) { - return re.test(filepath) || re.test(path.basename(filepath)); +SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; }; -}; /** - * Returns the given value unchanced. - * @return {any} + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. */ +SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } -utils.identity = function(val) { - return val; -}; + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; /** - * Determines the filepath to return based on the provided options. - * @return {any} + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. */ - -utils.value = function(str, unixify, options) { - if (options && options.unixify === false) { - return str; - } - if (options && typeof options.unixify === 'function') { - return options.unixify(str); - } - return unixify(str); +SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; }; /** - * Returns a function that normalizes slashes in a string to forward - * slashes, strips `./` from beginning of paths, and optionally unescapes - * special characters. - * @return {Function} + * Returns the string representation of this source node along with a source + * map. */ - -utils.unixify = function(options) { - var opts = options || {}; - return function(filepath) { - if (opts.stripPrefix !== false) { - filepath = utils.stripPrefix(filepath); - } - if (opts.unescape === true) { - filepath = utils.unescape(filepath); +SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; } - if (opts.unixify === true || utils.isWindows()) { - filepath = utils.toPosixPath(filepath); + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } } - return filepath; - }; + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; }; +exports.SourceNode = SourceNode; + /***/ }), -/* 416 */ -/***/ (function(module, exports) { +/* 514 */ +/***/ (function(module, exports, __webpack_require__) { -var toString = Object.prototype.toString; +// Copyright 2014, 2015, 2016, 2017 Simon Lydell +// X11 (“MIT”) Licensed. (See LICENSE.) -/** - * Get the native `typeof` a value. - * - * @param {*} `val` - * @return {*} Native javascript type - */ +var sourceMappingURL = __webpack_require__(515) +var resolveUrl = __webpack_require__(516) +var decodeUriComponent = __webpack_require__(517) +var urix = __webpack_require__(519) +var atob = __webpack_require__(520) -module.exports = function kindOf(val) { - var type = typeof val; - // primitivies - if (type === 'undefined') { - return 'undefined'; - } - if (val === null) { - return 'null'; - } - if (val === true || val === false || val instanceof Boolean) { - return 'boolean'; - } - if (type === 'string' || val instanceof String) { - return 'string'; - } - if (type === 'number' || val instanceof Number) { - return 'number'; - } - // functions - if (type === 'function' || val instanceof Function) { - if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') { - return 'generatorfunction'; - } - return 'function'; - } +function callbackAsync(callback, error, result) { + setImmediate(function() { callback(error, result) }) +} - // array - if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { - return 'array'; +function parseMapToJSON(string, data) { + try { + return JSON.parse(string.replace(/^\)\]\}'/, "")) + } catch (error) { + error.sourceMapData = data + throw error } +} - // check for instances of RegExp and Date before calling `toString` - if (val instanceof RegExp) { - return 'regexp'; - } - if (val instanceof Date) { - return 'date'; +function readSync(read, url, data) { + var readUrl = decodeUriComponent(url) + try { + return String(read(readUrl)) + } catch (error) { + error.sourceMapData = data + throw error } +} - // other objects - type = toString.call(val); - if (type === '[object RegExp]') { - return 'regexp'; - } - if (type === '[object Date]') { - return 'date'; - } - if (type === '[object Arguments]') { - return 'arguments'; - } - if (type === '[object Error]') { - return 'error'; + +function resolveSourceMap(code, codeUrl, read, callback) { + var mapData + try { + mapData = resolveSourceMapHelper(code, codeUrl) + } catch (error) { + return callbackAsync(callback, error) } - if (type === '[object Promise]') { - return 'promise'; + if (!mapData || mapData.map) { + return callbackAsync(callback, null, mapData) } + var readUrl = decodeUriComponent(mapData.url) + read(readUrl, function(error, result) { + if (error) { + error.sourceMapData = mapData + return callback(error) + } + mapData.map = String(result) + try { + mapData.map = parseMapToJSON(mapData.map, mapData) + } catch (error) { + return callback(error) + } + callback(null, mapData) + }) +} - // buffer - if (isBuffer(val)) { - return 'buffer'; +function resolveSourceMapSync(code, codeUrl, read) { + var mapData = resolveSourceMapHelper(code, codeUrl) + if (!mapData || mapData.map) { + return mapData } + mapData.map = readSync(read, mapData.url, mapData) + mapData.map = parseMapToJSON(mapData.map, mapData) + return mapData +} - // es6: Map, WeakMap, Set, WeakSet - if (type === '[object Set]') { - return 'set'; - } - if (type === '[object WeakSet]') { - return 'weakset'; - } - if (type === '[object Map]') { - return 'map'; - } - if (type === '[object WeakMap]') { - return 'weakmap'; - } - if (type === '[object Symbol]') { - return 'symbol'; - } - - if (type === '[object Map Iterator]') { - return 'mapiterator'; - } - if (type === '[object Set Iterator]') { - return 'setiterator'; - } - if (type === '[object String Iterator]') { - return 'stringiterator'; - } - if (type === '[object Array Iterator]') { - return 'arrayiterator'; - } - - // typed arrays - if (type === '[object Int8Array]') { - return 'int8array'; - } - if (type === '[object Uint8Array]') { - return 'uint8array'; - } - if (type === '[object Uint8ClampedArray]') { - return 'uint8clampedarray'; - } - if (type === '[object Int16Array]') { - return 'int16array'; - } - if (type === '[object Uint16Array]') { - return 'uint16array'; +var dataUriRegex = /^data:([^,;]*)(;[^,;]*)*(?:,(.*))?$/ +var jsonMimeTypeRegex = /^(?:application|text)\/json$/ + +function resolveSourceMapHelper(code, codeUrl) { + codeUrl = urix(codeUrl) + + var url = sourceMappingURL.getFrom(code) + if (!url) { + return null } - if (type === '[object Int32Array]') { - return 'int32array'; + + var dataUri = url.match(dataUriRegex) + if (dataUri) { + var mimeType = dataUri[1] + var lastParameter = dataUri[2] || "" + var encoded = dataUri[3] || "" + var data = { + sourceMappingURL: url, + url: null, + sourcesRelativeTo: codeUrl, + map: encoded + } + if (!jsonMimeTypeRegex.test(mimeType)) { + var error = new Error("Unuseful data uri mime type: " + (mimeType || "text/plain")) + error.sourceMapData = data + throw error + } + data.map = parseMapToJSON( + lastParameter === ";base64" ? atob(encoded) : decodeURIComponent(encoded), + data + ) + return data } - if (type === '[object Uint32Array]') { - return 'uint32array'; + + var mapUrl = resolveUrl(codeUrl, url) + return { + sourceMappingURL: url, + url: mapUrl, + sourcesRelativeTo: mapUrl, + map: null } - if (type === '[object Float32Array]') { - return 'float32array'; +} + + + +function resolveSources(map, mapUrl, read, options, callback) { + if (typeof options === "function") { + callback = options + options = {} } - if (type === '[object Float64Array]') { - return 'float64array'; + var pending = map.sources ? map.sources.length : 0 + var result = { + sourcesResolved: [], + sourcesContent: [] } - // must be a plain object - return 'object'; -}; + if (pending === 0) { + callbackAsync(callback, null, result) + return + } -/** - * If you need to support Safari 5-7 (8-10 yr-old browser), - * take a look at https://github.com/feross/is-buffer - */ + var done = function() { + pending-- + if (pending === 0) { + callback(null, result) + } + } -function isBuffer(val) { - return val.constructor - && typeof val.constructor.isBuffer === 'function' - && val.constructor.isBuffer(val); + resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) { + result.sourcesResolved[index] = fullUrl + if (typeof sourceContent === "string") { + result.sourcesContent[index] = sourceContent + callbackAsync(done, null) + } else { + var readUrl = decodeUriComponent(fullUrl) + read(readUrl, function(error, source) { + result.sourcesContent[index] = error ? error : String(source) + done() + }) + } + }) } +function resolveSourcesSync(map, mapUrl, read, options) { + var result = { + sourcesResolved: [], + sourcesContent: [] + } -/***/ }), -/* 417 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; + if (!map.sources || map.sources.length === 0) { + return result + } + resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) { + result.sourcesResolved[index] = fullUrl + if (read !== null) { + if (typeof sourceContent === "string") { + result.sourcesContent[index] = sourceContent + } else { + var readUrl = decodeUriComponent(fullUrl) + try { + result.sourcesContent[index] = String(read(readUrl)) + } catch (error) { + result.sourcesContent[index] = error + } + } + } + }) -var posix = __webpack_require__(418); + return result +} -module.exports = function(brackets) { - brackets.compiler +var endingSlash = /\/?$/ - /** - * Escaped characters - */ +function resolveSourcesHelper(map, mapUrl, options, fn) { + options = options || {} + mapUrl = urix(mapUrl) + var fullUrl + var sourceContent + var sourceRoot + for (var index = 0, len = map.sources.length; index < len; index++) { + sourceRoot = null + if (typeof options.sourceRoot === "string") { + sourceRoot = options.sourceRoot + } else if (typeof map.sourceRoot === "string" && options.sourceRoot !== false) { + sourceRoot = map.sourceRoot + } + // If the sourceRoot is the empty string, it is equivalent to not setting + // the property at all. + if (sourceRoot === null || sourceRoot === '') { + fullUrl = resolveUrl(mapUrl, map.sources[index]) + } else { + // Make sure that the sourceRoot ends with a slash, so that `/scripts/subdir` becomes + // `/scripts/subdir/`, not `/scripts/`. Pointing to a file as source root + // does not make sense. + fullUrl = resolveUrl(mapUrl, sourceRoot.replace(endingSlash, "/"), map.sources[index]) + } + sourceContent = (map.sourcesContent || [])[index] + fn(fullUrl, sourceContent, index) + } +} - .set('escape', function(node) { - return this.emit('\\' + node.val.replace(/^\\/, ''), node); - }) - /** - * Text - */ - .set('text', function(node) { - return this.emit(node.val.replace(/([{}])/g, '\\$1'), node); +function resolve(code, codeUrl, read, options, callback) { + if (typeof options === "function") { + callback = options + options = {} + } + if (code === null) { + var mapUrl = codeUrl + var data = { + sourceMappingURL: null, + url: mapUrl, + sourcesRelativeTo: mapUrl, + map: null + } + var readUrl = decodeUriComponent(mapUrl) + read(readUrl, function(error, result) { + if (error) { + error.sourceMapData = data + return callback(error) + } + data.map = String(result) + try { + data.map = parseMapToJSON(data.map, data) + } catch (error) { + return callback(error) + } + _resolveSources(data) }) - - /** - * POSIX character classes - */ - - .set('posix', function(node) { - if (node.val === '[::]') { - return this.emit('\\[::\\]', node); + } else { + resolveSourceMap(code, codeUrl, read, function(error, mapData) { + if (error) { + return callback(error) } - - var val = posix[node.inner]; - if (typeof val === 'undefined') { - val = '[' + node.inner + ']'; + if (!mapData) { + return callback(null, null) } - return this.emit(val, node); + _resolveSources(mapData) }) + } - /** - * Non-posix brackets - */ - - .set('bracket', function(node) { - return this.mapVisit(node.nodes); - }) - .set('bracket.open', function(node) { - return this.emit(node.val, node); + function _resolveSources(mapData) { + resolveSources(mapData.map, mapData.sourcesRelativeTo, read, options, function(error, result) { + if (error) { + return callback(error) + } + mapData.sourcesResolved = result.sourcesResolved + mapData.sourcesContent = result.sourcesContent + callback(null, mapData) }) - .set('bracket.inner', function(node) { - var inner = node.val; + } +} - if (inner === '[' || inner === ']') { - return this.emit('\\' + node.val, node); - } - if (inner === '^]') { - return this.emit('^\\]', node); - } - if (inner === '^') { - return this.emit('^', node); - } +function resolveSync(code, codeUrl, read, options) { + var mapData + if (code === null) { + var mapUrl = codeUrl + mapData = { + sourceMappingURL: null, + url: mapUrl, + sourcesRelativeTo: mapUrl, + map: null + } + mapData.map = readSync(read, mapUrl, mapData) + mapData.map = parseMapToJSON(mapData.map, mapData) + } else { + mapData = resolveSourceMapSync(code, codeUrl, read) + if (!mapData) { + return null + } + } + var result = resolveSourcesSync(mapData.map, mapData.sourcesRelativeTo, read, options) + mapData.sourcesResolved = result.sourcesResolved + mapData.sourcesContent = result.sourcesContent + return mapData +} - if (/-/.test(inner) && !/(\d-\d|\w-\w)/.test(inner)) { - inner = inner.split('-').join('\\-'); - } - var isNegated = inner.charAt(0) === '^'; - // add slashes to negated brackets, per spec - if (isNegated && inner.indexOf('/') === -1) { - inner += '/'; - } - if (isNegated && inner.indexOf('.') === -1) { - inner += '.'; - } - // don't unescape `0` (octal literal) - inner = inner.replace(/\\([1-9])/g, '$1'); - return this.emit(inner, node); - }) - .set('bracket.close', function(node) { - var val = node.val.replace(/^\\/, ''); - if (node.parent.escaped === true) { - return this.emit('\\' + val, node); - } - return this.emit(val, node); - }); -}; +module.exports = { + resolveSourceMap: resolveSourceMap, + resolveSourceMapSync: resolveSourceMapSync, + resolveSources: resolveSources, + resolveSourcesSync: resolveSourcesSync, + resolve: resolve, + resolveSync: resolveSync, + parseMapToJSON: parseMapToJSON +} /***/ }), -/* 418 */ +/* 515 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; +var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;// Copyright 2014 Simon Lydell +// X11 (“MIT”) Licensed. (See LICENSE.) +void (function(root, factory) { + if (true) { + !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? + (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : + __WEBPACK_AMD_DEFINE_FACTORY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) + } else {} +}(this, function() { -/** - * POSIX character classes - */ + var innerRegex = /[#@] sourceMappingURL=([^\s'"]*)/ -module.exports = { - alnum: 'a-zA-Z0-9', - alpha: 'a-zA-Z', - ascii: '\\x00-\\x7F', - blank: ' \\t', - cntrl: '\\x00-\\x1F\\x7F', - digit: '0-9', - graph: '\\x21-\\x7E', - lower: 'a-z', - print: '\\x20-\\x7E ', - punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~', - space: ' \\t\\r\\n\\v\\f', - upper: 'A-Z', - word: 'A-Za-z0-9_', - xdigit: 'A-Fa-f0-9' -}; + var regex = RegExp( + "(?:" + + "/\\*" + + "(?:\\s*\r?\n(?://)?)?" + + "(?:" + innerRegex.source + ")" + + "\\s*" + + "\\*/" + + "|" + + "//(?:" + innerRegex.source + ")" + + ")" + + "\\s*" + ) + return { -/***/ }), -/* 419 */ -/***/ (function(module, exports, __webpack_require__) { + regex: regex, + _innerRegex: innerRegex, -"use strict"; + getFrom: function(code) { + var match = code.match(regex) + return (match ? match[1] || match[2] || "" : null) + }, + existsIn: function(code) { + return regex.test(code) + }, -var utils = __webpack_require__(420); -var define = __webpack_require__(421); + removeFrom: function(code) { + return code.replace(regex, "") + }, -/** - * Text regex - */ + insertBefore: function(code, string) { + var match = code.match(regex) + if (match) { + return code.slice(0, match.index) + string + code.slice(match.index) + } else { + return code + string + } + } + } -var TEXT_REGEX = '(\\[(?=.*\\])|\\])+'; -var not = utils.createRegex(TEXT_REGEX); +})); -/** - * Brackets parsers - */ -function parsers(brackets) { - brackets.state = brackets.state || {}; - brackets.parser.sets.bracket = brackets.parser.sets.bracket || []; - brackets.parser +/***/ }), +/* 516 */ +/***/ (function(module, exports, __webpack_require__) { - .capture('escape', function() { - if (this.isInside('bracket')) return; - var pos = this.position(); - var m = this.match(/^\\(.)/); - if (!m) return; +// Copyright 2014 Simon Lydell +// X11 (“MIT”) Licensed. (See LICENSE.) - return pos({ - type: 'escape', - val: m[0] - }); - }) +var url = __webpack_require__(74) - /** - * Text parser - */ +function resolveUrl(/* ...urls */) { + return Array.prototype.reduce.call(arguments, function(resolved, nextUrl) { + return url.resolve(resolved, nextUrl) + }) +} - .capture('text', function() { - if (this.isInside('bracket')) return; - var pos = this.position(); - var m = this.match(not); - if (!m || !m[0]) return; +module.exports = resolveUrl - return pos({ - type: 'text', - val: m[0] - }); - }) - /** - * POSIX character classes: "[[:alpha:][:digits:]]" - */ +/***/ }), +/* 517 */ +/***/ (function(module, exports, __webpack_require__) { - .capture('posix', function() { - var pos = this.position(); - var m = this.match(/^\[:(.*?):\](?=.*\])/); - if (!m) return; +// Copyright 2017 Simon Lydell +// X11 (“MIT”) Licensed. (See LICENSE.) - var inside = this.isInside('bracket'); - if (inside) { - brackets.posix++; - } +var decodeUriComponent = __webpack_require__(518) - return pos({ - type: 'posix', - insideBracket: inside, - inner: m[1], - val: m[0] - }); - }) +function customDecodeUriComponent(string) { + // `decodeUriComponent` turns `+` into ` `, but that's not wanted. + return decodeUriComponent(string.replace(/\+/g, "%2B")) +} - /** - * Bracket (noop) - */ +module.exports = customDecodeUriComponent - .capture('bracket', function() {}) - /** - * Open: '[' - */ +/***/ }), +/* 518 */ +/***/ (function(module, exports, __webpack_require__) { - .capture('bracket.open', function() { - var parsed = this.parsed; - var pos = this.position(); - var m = this.match(/^\[(?=.*\])/); - if (!m) return; +"use strict"; - var prev = this.prev(); - var last = utils.last(prev.nodes); +var token = '%[a-f0-9]{2}'; +var singleMatcher = new RegExp(token, 'gi'); +var multiMatcher = new RegExp('(' + token + ')+', 'gi'); - if (parsed.slice(-1) === '\\' && !this.isInside('bracket')) { - last.val = last.val.slice(0, last.val.length - 1); - return pos({ - type: 'escape', - val: m[0] - }); - } +function decodeComponents(components, split) { + try { + // Try to decode the entire string first + return decodeURIComponent(components.join('')); + } catch (err) { + // Do nothing + } - var open = pos({ - type: 'bracket.open', - val: m[0] - }); + if (components.length === 1) { + return components; + } - if (last.type === 'bracket.open' || this.isInside('bracket')) { - open.val = '\\' + open.val; - open.type = 'bracket.inner'; - open.escaped = true; - return open; - } + split = split || 1; - var node = pos({ - type: 'bracket', - nodes: [open] - }); + // Split the array in 2 parts + var left = components.slice(0, split); + var right = components.slice(split); - define(node, 'parent', prev); - define(open, 'parent', node); - this.push('bracket', node); - prev.nodes.push(node); - }) + return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right)); +} - /** - * Bracket text - */ +function decode(input) { + try { + return decodeURIComponent(input); + } catch (err) { + var tokens = input.match(singleMatcher); - .capture('bracket.inner', function() { - if (!this.isInside('bracket')) return; - var pos = this.position(); - var m = this.match(not); - if (!m || !m[0]) return; + for (var i = 1; i < tokens.length; i++) { + input = decodeComponents(tokens, i).join(''); - var next = this.input.charAt(0); - var val = m[0]; + tokens = input.match(singleMatcher); + } - var node = pos({ - type: 'bracket.inner', - val: val - }); + return input; + } +} - if (val === '\\\\') { - return node; - } +function customDecodeURIComponent(input) { + // Keep track of all the replacements and prefill the map with the `BOM` + var replaceMap = { + '%FE%FF': '\uFFFD\uFFFD', + '%FF%FE': '\uFFFD\uFFFD' + }; - var first = val.charAt(0); - var last = val.slice(-1); + var match = multiMatcher.exec(input); + while (match) { + try { + // Decode as big chunks as possible + replaceMap[match[0]] = decodeURIComponent(match[0]); + } catch (err) { + var result = decode(match[0]); - if (first === '!') { - val = '^' + val.slice(1); - } + if (result !== match[0]) { + replaceMap[match[0]] = result; + } + } - if (last === '\\' || (val === '^' && next === ']')) { - val += this.input[0]; - this.consume(1); - } + match = multiMatcher.exec(input); + } - node.val = val; - return node; - }) + // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else + replaceMap['%C2'] = '\uFFFD'; - /** - * Close: ']' - */ + var entries = Object.keys(replaceMap); - .capture('bracket.close', function() { - var parsed = this.parsed; - var pos = this.position(); - var m = this.match(/^\]/); - if (!m) return; + for (var i = 0; i < entries.length; i++) { + // Replace all decoded components + var key = entries[i]; + input = input.replace(new RegExp(key, 'g'), replaceMap[key]); + } - var prev = this.prev(); - var last = utils.last(prev.nodes); + return input; +} + +module.exports = function (encodedURI) { + if (typeof encodedURI !== 'string') { + throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`'); + } + + try { + encodedURI = encodedURI.replace(/\+/g, ' '); - if (parsed.slice(-1) === '\\' && !this.isInside('bracket')) { - last.val = last.val.slice(0, last.val.length - 1); + // Try the built in decoder first + return decodeURIComponent(encodedURI); + } catch (err) { + // Fallback to a more advanced decoder + return customDecodeURIComponent(encodedURI); + } +}; - return pos({ - type: 'escape', - val: m[0] - }); - } - var node = pos({ - type: 'bracket.close', - rest: this.input, - val: m[0] - }); +/***/ }), +/* 519 */ +/***/ (function(module, exports, __webpack_require__) { - if (last.type === 'bracket.open') { - node.type = 'bracket.inner'; - node.escaped = true; - return node; - } +// Copyright 2014 Simon Lydell +// X11 (“MIT”) Licensed. (See LICENSE.) + +var path = __webpack_require__(16) + +"use strict" + +function urix(aPath) { + if (path.sep === "\\") { + return aPath + .replace(/\\/g, "/") + .replace(/^[a-z]:\/?/i, "/") + } + return aPath +} + +module.exports = urix - var bracket = this.pop('bracket'); - if (!this.isType(bracket, 'bracket')) { - if (this.options.strict) { - throw new Error('missing opening "["'); - } - node.type = 'bracket.inner'; - node.escaped = true; - return node; - } - bracket.nodes.push(node); - define(node, 'parent', bracket); - }); -} +/***/ }), +/* 520 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Brackets parsers - */ +"use strict"; -module.exports = parsers; -/** - * Expose text regex - */ +function atob(str) { + return Buffer.from(str, 'base64').toString('binary'); +} -module.exports.TEXT_REGEX = TEXT_REGEX; +module.exports = atob.atob = atob; /***/ }), -/* 420 */ +/* 521 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var toRegex = __webpack_require__(43); -var regexNot = __webpack_require__(64); -var cached; +var fs = __webpack_require__(23); +var path = __webpack_require__(16); +var define = __webpack_require__(478); +var utils = __webpack_require__(502); /** - * Get the last element from `array` - * @param {Array} `array` - * @return {*} + * Expose `mixin()`. + * This code is based on `source-maps-support.js` in reworkcss/css + * https://github.com/reworkcss/css/blob/master/lib/stringify/source-map-support.js + * Copyright (c) 2012 TJ Holowaychuk */ -exports.last = function(arr) { - return arr[arr.length - 1]; -}; +module.exports = mixin; /** - * Create and cache regex to use for text nodes + * Mixin source map support into `compiler`. + * + * @param {Object} `compiler` + * @api public */ -exports.createRegex = function(pattern, include) { - if (cached) return cached; - var opts = {contains: true, strictClose: false}; - var not = regexNot.create(pattern, opts); - var re; +function mixin(compiler) { + define(compiler, '_comment', compiler.comment); + compiler.map = new utils.SourceMap.SourceMapGenerator(); + compiler.position = { line: 1, column: 1 }; + compiler.content = {}; + compiler.files = {}; - if (typeof include === 'string') { - re = toRegex('^(?:' + include + '|' + not + ')', opts); - } else { - re = toRegex(not, opts); + for (var key in exports) { + define(compiler, key, exports[key]); } +} - return (cached = re); -}; - - -/***/ }), -/* 421 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * define-property +/** + * Update position. * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. + * @param {String} str */ - - -var isDescriptor = __webpack_require__(422); - -module.exports = function defineProperty(obj, prop, val) { - if (typeof obj !== 'object' && typeof obj !== 'function') { - throw new TypeError('expected an object or function.'); - } - - if (typeof prop !== 'string') { - throw new TypeError('expected `prop` to be a string.'); - } - - if (isDescriptor(val) && ('set' in val || 'get' in val)) { - return Object.defineProperty(obj, prop, val); - } - - return Object.defineProperty(obj, prop, { - configurable: true, - enumerable: false, - writable: true, - value: val - }); +exports.updatePosition = function(str) { + var lines = str.match(/\n/g); + if (lines) this.position.line += lines.length; + var i = str.lastIndexOf('\n'); + this.position.column = ~i ? str.length - i : this.position.column + str.length; }; - -/***/ }), -/* 422 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/*! - * is-descriptor +/** + * Emit `str` with `position`. * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. + * @param {String} str + * @param {Object} [pos] + * @return {String} */ +exports.emit = function(str, node) { + var position = node.position || {}; + var source = position.source; + if (source) { + if (position.filepath) { + source = utils.unixify(position.filepath); + } + this.map.addMapping({ + source: source, + generated: { + line: this.position.line, + column: Math.max(this.position.column - 1, 0) + }, + original: { + line: position.start.line, + column: position.start.column - 1 + } + }); -var typeOf = __webpack_require__(423); -var isAccessor = __webpack_require__(424); -var isData = __webpack_require__(426); + if (position.content) { + this.addContent(source, position); + } + if (position.filepath) { + this.addFile(source, position); + } -module.exports = function isDescriptor(obj, key) { - if (typeOf(obj) !== 'object') { - return false; - } - if ('get' in obj) { - return isAccessor(obj, key); + this.updatePosition(str); + this.output += str; } - return isData(obj, key); + return str; }; +/** + * Adds a file to the source map output if it has not already been added + * @param {String} `file` + * @param {Object} `pos` + */ -/***/ }), -/* 423 */ -/***/ (function(module, exports) { - -var toString = Object.prototype.toString; +exports.addFile = function(file, position) { + if (typeof position.content !== 'string') return; + if (Object.prototype.hasOwnProperty.call(this.files, file)) return; + this.files[file] = position.content; +}; /** - * Get the native `typeof` a value. - * - * @param {*} `val` - * @return {*} Native javascript type + * Adds a content source to the source map output if it has not already been added + * @param {String} `source` + * @param {Object} `position` */ -module.exports = function kindOf(val) { - var type = typeof val; +exports.addContent = function(source, position) { + if (typeof position.content !== 'string') return; + if (Object.prototype.hasOwnProperty.call(this.content, source)) return; + this.map.setSourceContent(source, position.content); +}; - // primitivies - if (type === 'undefined') { - return 'undefined'; - } - if (val === null) { - return 'null'; - } - if (val === true || val === false || val instanceof Boolean) { - return 'boolean'; - } - if (type === 'string' || val instanceof String) { - return 'string'; - } - if (type === 'number' || val instanceof Number) { - return 'number'; - } +/** + * Applies any original source maps to the output and embeds the source file + * contents in the source map. + */ - // functions - if (type === 'function' || val instanceof Function) { - if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') { - return 'generatorfunction'; +exports.applySourceMaps = function() { + Object.keys(this.files).forEach(function(file) { + var content = this.files[file]; + this.map.setSourceContent(file, content); + + if (this.options.inputSourcemaps === true) { + var originalMap = utils.sourceMapResolve.resolveSync(content, file, fs.readFileSync); + if (originalMap) { + var map = new utils.SourceMap.SourceMapConsumer(originalMap.map); + var relativeTo = originalMap.sourcesRelativeTo; + this.map.applySourceMap(map, file, utils.unixify(path.dirname(relativeTo))); + } } - return 'function'; - } + }, this); +}; - // array - if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { - return 'array'; - } +/** + * Process comments, drops sourceMap comments. + * @param {Object} node + */ - // check for instances of RegExp and Date before calling `toString` - if (val instanceof RegExp) { - return 'regexp'; - } - if (val instanceof Date) { - return 'date'; +exports.comment = function(node) { + if (/^# sourceMappingURL=/.test(node.comment)) { + return this.emit('', node.position); } + return this._comment(node); +}; - // other objects - type = toString.call(val); - if (type === '[object RegExp]') { - return 'regexp'; - } - if (type === '[object Date]') { - return 'date'; - } - if (type === '[object Arguments]') { - return 'arguments'; - } - if (type === '[object Error]') { - return 'error'; - } - if (type === '[object Promise]') { - return 'promise'; - } +/***/ }), +/* 522 */ +/***/ (function(module, exports, __webpack_require__) { - // buffer - if (isBuffer(val)) { - return 'buffer'; - } +"use strict"; - // es6: Map, WeakMap, Set, WeakSet - if (type === '[object Set]') { - return 'set'; - } - if (type === '[object WeakSet]') { - return 'weakset'; - } - if (type === '[object Map]') { - return 'map'; - } - if (type === '[object WeakMap]') { - return 'weakmap'; - } - if (type === '[object Symbol]') { - return 'symbol'; - } - - if (type === '[object Map Iterator]') { - return 'mapiterator'; - } - if (type === '[object Set Iterator]') { - return 'setiterator'; - } - if (type === '[object String Iterator]') { - return 'stringiterator'; - } - if (type === '[object Array Iterator]') { - return 'arrayiterator'; - } - - // typed arrays - if (type === '[object Int8Array]') { - return 'int8array'; - } - if (type === '[object Uint8Array]') { - return 'uint8array'; - } - if (type === '[object Uint8ClampedArray]') { - return 'uint8clampedarray'; - } - if (type === '[object Int16Array]') { - return 'int16array'; - } - if (type === '[object Uint16Array]') { - return 'uint16array'; - } - if (type === '[object Int32Array]') { - return 'int32array'; - } - if (type === '[object Uint32Array]') { - return 'uint32array'; - } - if (type === '[object Float32Array]') { - return 'float32array'; - } - if (type === '[object Float64Array]') { - return 'float64array'; - } - // must be a plain object - return 'object'; -}; +var use = __webpack_require__(486); +var util = __webpack_require__(29); +var Cache = __webpack_require__(523); +var define = __webpack_require__(478); +var debug = __webpack_require__(495)('snapdragon:parser'); +var Position = __webpack_require__(524); +var utils = __webpack_require__(502); /** - * If you need to support Safari 5-7 (8-10 yr-old browser), - * take a look at https://github.com/feross/is-buffer + * Create a new `Parser` with the given `input` and `options`. + * @param {String} `input` + * @param {Object} `options` + * @api public */ -function isBuffer(val) { - return val.constructor - && typeof val.constructor.isBuffer === 'function' - && val.constructor.isBuffer(val); +function Parser(options) { + debug('initializing', __filename); + this.options = utils.extend({source: 'string'}, options); + this.init(this.options); + use(this); } +/** + * Prototype methods + */ -/***/ }), -/* 424 */ -/***/ (function(module, exports, __webpack_require__) { +Parser.prototype = { + constructor: Parser, -"use strict"; -/*! - * is-accessor-descriptor - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. - */ + init: function(options) { + this.orig = ''; + this.input = ''; + this.parsed = ''; + this.column = 1; + this.line = 1; + this.regex = new Cache(); + this.errors = this.errors || []; + this.parsers = this.parsers || {}; + this.types = this.types || []; + this.sets = this.sets || {}; + this.fns = this.fns || []; + this.currentType = 'root'; -var typeOf = __webpack_require__(425); + var pos = this.position(); + this.bos = pos({type: 'bos', val: ''}); -// accessor descriptor properties -var accessor = { - get: 'function', - set: 'function', - configurable: 'boolean', - enumerable: 'boolean' -}; + this.ast = { + type: 'root', + errors: this.errors, + nodes: [this.bos] + }; -function isAccessorDescriptor(obj, prop) { - if (typeof prop === 'string') { - var val = Object.getOwnPropertyDescriptor(obj, prop); - return typeof val !== 'undefined'; - } + define(this.bos, 'parent', this.ast); + this.nodes = [this.ast]; - if (typeOf(obj) !== 'object') { - return false; - } + this.count = 0; + this.setCount = 0; + this.stack = []; + }, - if (has(obj, 'value') || has(obj, 'writable')) { - return false; - } + /** + * Throw a formatted error with the cursor column and `msg`. + * @param {String} `msg` Message to use in the Error. + */ - if (!has(obj, 'get') || typeof obj.get !== 'function') { - return false; - } + error: function(msg, node) { + var pos = node.position || {start: {column: 0, line: 0}}; + var line = pos.start.line; + var column = pos.start.column; + var source = this.options.source; - // tldr: it's valid to have "set" be undefined - // "set" might be undefined if `Object.getOwnPropertyDescriptor` - // was used to get the value, and only `get` was defined by the user - if (has(obj, 'set') && typeof obj[key] !== 'function' && typeof obj[key] !== 'undefined') { - return false; - } + var message = source + ' : ' + msg; + var err = new Error(message); + err.source = source; + err.reason = msg; + err.pos = pos; - for (var key in obj) { - if (!accessor.hasOwnProperty(key)) { - continue; + if (this.options.silent) { + this.errors.push(err); + } else { + throw err; } + }, + + /** + * Define a non-enumberable property on the `Parser` instance. + * + * ```js + * parser.define('foo', 'bar'); + * ``` + * @name .define + * @param {String} `key` propery name + * @param {any} `val` property value + * @return {Object} Returns the Parser instance for chaining. + * @api public + */ + + define: function(key, val) { + define(this, key, val); + return this; + }, + + /** + * Mark position and patch `node.position`. + */ + + position: function() { + var start = { line: this.line, column: this.column }; + var self = this; + + return function(node) { + define(node, 'position', new Position(start, self)); + return node; + }; + }, + + /** + * Set parser `name` with the given `fn` + * @param {String} `name` + * @param {Function} `fn` + * @api public + */ - if (typeOf(obj[key]) === accessor[key]) { - continue; + set: function(type, fn) { + if (this.types.indexOf(type) === -1) { + this.types.push(type); } + this.parsers[type] = fn.bind(this); + return this; + }, - if (typeof obj[key] !== 'undefined') { - return false; - } - } - return true; -} + /** + * Get parser `name` + * @param {String} `name` + * @api public + */ -function has(obj, key) { - return {}.hasOwnProperty.call(obj, key); -} + get: function(name) { + return this.parsers[name]; + }, -/** - * Expose `isAccessorDescriptor` - */ + /** + * Push a `token` onto the `type` stack. + * + * @param {String} `type` + * @return {Object} `token` + * @api public + */ -module.exports = isAccessorDescriptor; + push: function(type, token) { + this.sets[type] = this.sets[type] || []; + this.count++; + this.stack.push(token); + return this.sets[type].push(token); + }, + /** + * Pop a token off of the `type` stack + * @param {String} `type` + * @returns {Object} Returns a token + * @api public + */ -/***/ }), -/* 425 */ -/***/ (function(module, exports, __webpack_require__) { + pop: function(type) { + this.sets[type] = this.sets[type] || []; + this.count--; + this.stack.pop(); + return this.sets[type].pop(); + }, -var isBuffer = __webpack_require__(22); -var toString = Object.prototype.toString; + /** + * Return true if inside a `stack` node. Types are `braces`, `parens` or `brackets`. + * + * @param {String} `type` + * @return {Boolean} + * @api public + */ -/** - * Get the native `typeof` a value. - * - * @param {*} `val` - * @return {*} Native javascript type - */ + isInside: function(type) { + this.sets[type] = this.sets[type] || []; + return this.sets[type].length > 0; + }, -module.exports = function kindOf(val) { - // primitivies - if (typeof val === 'undefined') { - return 'undefined'; - } - if (val === null) { - return 'null'; - } - if (val === true || val === false || val instanceof Boolean) { - return 'boolean'; - } - if (typeof val === 'string' || val instanceof String) { - return 'string'; - } - if (typeof val === 'number' || val instanceof Number) { - return 'number'; - } + /** + * Return true if `node` is the given `type`. + * + * ```js + * parser.isType(node, 'brace'); + * ``` + * @param {Object} `node` + * @param {String} `type` + * @return {Boolean} + * @api public + */ - // functions - if (typeof val === 'function' || val instanceof Function) { - return 'function'; - } + isType: function(node, type) { + return node && node.type === type; + }, - // array - if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { - return 'array'; - } + /** + * Get the previous AST node + * @return {Object} + */ - // check for instances of RegExp and Date before calling `toString` - if (val instanceof RegExp) { - return 'regexp'; - } - if (val instanceof Date) { - return 'date'; - } + prev: function(n) { + return this.stack.length > 0 + ? utils.last(this.stack, n) + : utils.last(this.nodes, n); + }, - // other objects - var type = toString.call(val); + /** + * Update line and column based on `str`. + */ - if (type === '[object RegExp]') { - return 'regexp'; - } - if (type === '[object Date]') { - return 'date'; - } - if (type === '[object Arguments]') { - return 'arguments'; - } - if (type === '[object Error]') { - return 'error'; - } + consume: function(len) { + this.input = this.input.substr(len); + }, - // buffer - if (isBuffer(val)) { - return 'buffer'; - } + /** + * Update column based on `str`. + */ - // es6: Map, WeakMap, Set, WeakSet - if (type === '[object Set]') { - return 'set'; - } - if (type === '[object WeakSet]') { - return 'weakset'; - } - if (type === '[object Map]') { - return 'map'; - } - if (type === '[object WeakMap]') { - return 'weakmap'; - } - if (type === '[object Symbol]') { - return 'symbol'; - } + updatePosition: function(str, len) { + var lines = str.match(/\n/g); + if (lines) this.line += lines.length; + var i = str.lastIndexOf('\n'); + this.column = ~i ? len - i : this.column + len; + this.parsed += str; + this.consume(len); + }, - // typed arrays - if (type === '[object Int8Array]') { - return 'int8array'; - } - if (type === '[object Uint8Array]') { - return 'uint8array'; - } - if (type === '[object Uint8ClampedArray]') { - return 'uint8clampedarray'; - } - if (type === '[object Int16Array]') { - return 'int16array'; - } - if (type === '[object Uint16Array]') { - return 'uint16array'; - } - if (type === '[object Int32Array]') { - return 'int32array'; - } - if (type === '[object Uint32Array]') { - return 'uint32array'; - } - if (type === '[object Float32Array]') { - return 'float32array'; - } - if (type === '[object Float64Array]') { - return 'float64array'; - } + /** + * Match `regex`, return captures, and update the cursor position by `match[0]` length. + * @param {RegExp} `regex` + * @return {Object} + */ - // must be a plain object - return 'object'; -}; + match: function(regex) { + var m = regex.exec(this.input); + if (m) { + this.updatePosition(m[0], m[0].length); + return m; + } + }, + /** + * Capture `type` with the given regex. + * @param {String} `type` + * @param {RegExp} `regex` + * @return {Function} + */ -/***/ }), -/* 426 */ -/***/ (function(module, exports, __webpack_require__) { + capture: function(type, regex) { + if (typeof regex === 'function') { + return this.set.apply(this, arguments); + } -"use strict"; -/*! - * is-data-descriptor - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. - */ + this.regex.set(type, regex); + this.set(type, function() { + var parsed = this.parsed; + var pos = this.position(); + var m = this.match(regex); + if (!m || !m[0]) return; + var prev = this.prev(); + var node = pos({ + type: type, + val: m[0], + parsed: parsed, + rest: this.input + }); + if (m[1]) { + node.inner = m[1]; + } -var typeOf = __webpack_require__(427); + define(node, 'inside', this.stack.length > 0); + define(node, 'parent', prev); + prev.nodes.push(node); + }.bind(this)); + return this; + }, -// data descriptor properties -var data = { - configurable: 'boolean', - enumerable: 'boolean', - writable: 'boolean' -}; + /** + * Create a parser with open and close for parens, + * brackets or braces + */ -function isDataDescriptor(obj, prop) { - if (typeOf(obj) !== 'object') { - return false; - } + capturePair: function(type, openRegex, closeRegex, fn) { + this.sets[type] = this.sets[type] || []; - if (typeof prop === 'string') { - var val = Object.getOwnPropertyDescriptor(obj, prop); - return typeof val !== 'undefined'; - } + /** + * Open + */ - if (!('value' in obj) && !('writable' in obj)) { - return false; - } + this.set(type + '.open', function() { + var parsed = this.parsed; + var pos = this.position(); + var m = this.match(openRegex); + if (!m || !m[0]) return; - for (var key in obj) { - if (key === 'value') continue; + var val = m[0]; + this.setCount++; + this.specialChars = true; + var open = pos({ + type: type + '.open', + val: val, + rest: this.input + }); - if (!data.hasOwnProperty(key)) { - continue; - } + if (typeof m[1] !== 'undefined') { + open.inner = m[1]; + } - if (typeOf(obj[key]) === data[key]) { - continue; - } + var prev = this.prev(); + var node = pos({ + type: type, + nodes: [open] + }); - if (typeof obj[key] !== 'undefined') { - return false; - } - } - return true; -} + define(node, 'rest', this.input); + define(node, 'parsed', parsed); + define(node, 'prefix', m[1]); + define(node, 'parent', prev); + define(open, 'parent', node); -/** - * Expose `isDataDescriptor` - */ + if (typeof fn === 'function') { + fn.call(this, open, node); + } -module.exports = isDataDescriptor; + this.push(type, node); + prev.nodes.push(node); + }); + /** + * Close + */ -/***/ }), -/* 427 */ -/***/ (function(module, exports, __webpack_require__) { + this.set(type + '.close', function() { + var pos = this.position(); + var m = this.match(closeRegex); + if (!m || !m[0]) return; -var isBuffer = __webpack_require__(22); -var toString = Object.prototype.toString; + var parent = this.pop(type); + var node = pos({ + type: type + '.close', + rest: this.input, + suffix: m[1], + val: m[0] + }); -/** - * Get the native `typeof` a value. - * - * @param {*} `val` - * @return {*} Native javascript type - */ + if (!this.isType(parent, type)) { + if (this.options.strict) { + throw new Error('missing opening "' + type + '"'); + } -module.exports = function kindOf(val) { - // primitivies - if (typeof val === 'undefined') { - return 'undefined'; - } - if (val === null) { - return 'null'; - } - if (val === true || val === false || val instanceof Boolean) { - return 'boolean'; - } - if (typeof val === 'string' || val instanceof String) { - return 'string'; - } - if (typeof val === 'number' || val instanceof Number) { - return 'number'; - } + this.setCount--; + node.escaped = true; + return node; + } - // functions - if (typeof val === 'function' || val instanceof Function) { - return 'function'; - } + if (node.suffix === '\\') { + parent.escaped = true; + node.escaped = true; + } - // array - if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { - return 'array'; - } + parent.nodes.push(node); + define(node, 'parent', parent); + }); - // check for instances of RegExp and Date before calling `toString` - if (val instanceof RegExp) { - return 'regexp'; - } - if (val instanceof Date) { - return 'date'; - } + return this; + }, - // other objects - var type = toString.call(val); + /** + * Capture end-of-string + */ - if (type === '[object RegExp]') { - return 'regexp'; - } - if (type === '[object Date]') { - return 'date'; - } - if (type === '[object Arguments]') { - return 'arguments'; - } - if (type === '[object Error]') { - return 'error'; - } + eos: function() { + var pos = this.position(); + if (this.input) return; + var prev = this.prev(); - // buffer - if (isBuffer(val)) { - return 'buffer'; - } + while (prev.type !== 'root' && !prev.visited) { + if (this.options.strict === true) { + throw new SyntaxError('invalid syntax:' + util.inspect(prev, null, 2)); + } - // es6: Map, WeakMap, Set, WeakSet - if (type === '[object Set]') { - return 'set'; - } - if (type === '[object WeakSet]') { - return 'weakset'; - } - if (type === '[object Map]') { - return 'map'; - } - if (type === '[object WeakMap]') { - return 'weakmap'; - } - if (type === '[object Symbol]') { - return 'symbol'; - } + if (!hasDelims(prev)) { + prev.parent.escaped = true; + prev.escaped = true; + } - // typed arrays - if (type === '[object Int8Array]') { - return 'int8array'; - } - if (type === '[object Uint8Array]') { - return 'uint8array'; - } - if (type === '[object Uint8ClampedArray]') { - return 'uint8clampedarray'; - } - if (type === '[object Int16Array]') { - return 'int16array'; - } - if (type === '[object Uint16Array]') { - return 'uint16array'; - } - if (type === '[object Int32Array]') { - return 'int32array'; - } - if (type === '[object Uint32Array]') { - return 'uint32array'; - } - if (type === '[object Float32Array]') { - return 'float32array'; - } - if (type === '[object Float64Array]') { - return 'float64array'; - } + visit(prev, function(node) { + if (!hasDelims(node.parent)) { + node.parent.escaped = true; + node.escaped = true; + } + }); - // must be a plain object - return 'object'; -}; + prev = prev.parent; + } + var tok = pos({ + type: 'eos', + val: this.append || '' + }); -/***/ }), -/* 428 */ -/***/ (function(module, exports, __webpack_require__) { + define(tok, 'parent', this.ast); + return tok; + }, -"use strict"; + /** + * Run parsers to advance the cursor position + */ + next: function() { + var parsed = this.parsed; + var len = this.types.length; + var idx = -1; + var tok; -/** - * Module dependencies - */ + while (++idx < len) { + if ((tok = this.parsers[this.types[idx]].call(this))) { + define(tok, 'rest', this.input); + define(tok, 'parsed', parsed); + this.last = tok; + return tok; + } + } + }, -var Snapdragon = __webpack_require__(66); -var define = __webpack_require__(44); -var extend = __webpack_require__(20); + /** + * Parse the given string. + * @return {Array} + */ -/** - * Local dependencies - */ + parse: function(input) { + if (typeof input !== 'string') { + throw new TypeError('expected a string'); + } -var compilers = __webpack_require__(153); -var parsers = __webpack_require__(155); + this.init(this.options); + this.orig = input; + this.input = input; + var self = this; -/** - * Customize Snapdragon parser and renderer - */ + function parse() { + // check input before calling `.next()` + input = self.input; -function Extglob(options) { - this.options = extend({source: 'extglob'}, options); - this.snapdragon = this.options.snapdragon || new Snapdragon(this.options); - this.snapdragon.patterns = this.snapdragon.patterns || {}; - this.compiler = this.snapdragon.compiler; - this.parser = this.snapdragon.parser; + // get the next AST ndoe + var node = self.next(); + if (node) { + var prev = self.prev(); + if (prev) { + define(node, 'parent', prev); + if (prev.nodes) { + prev.nodes.push(node); + } + } - compilers(this.snapdragon); - parsers(this.snapdragon); + if (self.sets.hasOwnProperty(prev.type)) { + self.currentType = prev.type; + } + } - /** - * Override Snapdragon `.parse` method - */ + // if we got here but input is not changed, throw an error + if (self.input && input === self.input) { + throw new Error('no parsers registered for: "' + self.input.slice(0, 5) + '"'); + } + } - define(this.snapdragon, 'parse', function(str, options) { - var parsed = Snapdragon.prototype.parse.apply(this, arguments); - parsed.input = str; + while (this.input) parse(); + if (this.stack.length && this.options.strict) { + var node = this.stack.pop(); + throw this.error('missing opening ' + node.type + ': "' + this.orig + '"'); + } - // escape unmatched brace/bracket/parens - var last = this.parser.stack.pop(); - if (last && this.options.strict !== true) { - var node = last.nodes[0]; - node.val = '\\' + node.val; - var sibling = node.parent.nodes[1]; - if (sibling.type === 'star') { - sibling.loose = true; - } + var eos = this.eos(); + var tok = this.prev(); + if (tok.type !== 'eos') { + this.ast.nodes.push(eos); } - // add non-enumerable parser reference - define(parsed, 'parser', this.parser); - return parsed; - }); + return this.ast; + } +}; - /** - * Decorate `.parse` method - */ +/** + * Visit `node` with the given `fn` + */ - define(this, 'parse', function(ast, options) { - return this.snapdragon.parse.apply(this.snapdragon, arguments); - }); +function visit(node, fn) { + if (!node.visited) { + define(node, 'visited', true); + return node.nodes ? mapVisit(node.nodes, fn) : fn(node); + } + return node; +} - /** - * Decorate `.compile` method - */ +/** + * Map visit over array of `nodes`. + */ - define(this, 'compile', function(ast, options) { - return this.snapdragon.compile.apply(this.snapdragon, arguments); - }); +function mapVisit(nodes, fn) { + var len = nodes.length; + var idx = -1; + while (++idx < len) { + visit(nodes[idx], fn); + } +} + +function hasOpen(node) { + return node.nodes && node.nodes[0].type === (node.type + '.open'); +} + +function hasClose(node) { + return node.nodes && utils.last(node.nodes).type === (node.type + '.close'); +} +function hasDelims(node) { + return hasOpen(node) && hasClose(node); } /** - * Expose `Extglob` + * Expose `Parser` */ -module.exports = Extglob; +module.exports = Parser; /***/ }), -/* 429 */ +/* 523 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +/*! + * map-cache + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. + */ -var extglob = __webpack_require__(152); -var nanomatch = __webpack_require__(149); -var regexNot = __webpack_require__(64); -var toRegex = __webpack_require__(43); -var not; + +var hasOwn = Object.prototype.hasOwnProperty; /** - * Characters to use in negation regex (we want to "not" match - * characters that are matched by other parsers) + * Expose `MapCache` */ -var TEXT = '([!@*?+]?\\(|\\)|\\[:?(?=.*?:?\\])|:?\\]|[*+?!^$.\\\\/])+'; -var createNotRegex = function(opts) { - return not || (not = textRegex(TEXT)); -}; +module.exports = MapCache; /** - * Parsers + * Creates a cache object to store key/value pairs. + * + * ```js + * var cache = new MapCache(); + * ``` + * + * @api public */ -module.exports = function(snapdragon) { - var parsers = snapdragon.parser.parsers; - - // register nanomatch parsers - snapdragon.use(nanomatch.parsers); - - // get references to some specific nanomatch parsers before they - // are overridden by the extglob and/or parsers - var escape = parsers.escape; - var slash = parsers.slash; - var qmark = parsers.qmark; - var plus = parsers.plus; - var star = parsers.star; - var dot = parsers.dot; +function MapCache(data) { + this.__data__ = data || {}; +} - // register extglob parsers - snapdragon.use(extglob.parsers); +/** + * Adds `value` to `key` on the cache. + * + * ```js + * cache.set('foo', 'bar'); + * ``` + * + * @param {String} `key` The key of the value to cache. + * @param {*} `value` The value to cache. + * @returns {Object} Returns the `Cache` object for chaining. + * @api public + */ - // custom micromatch parsers - snapdragon.parser - .use(function() { - // override "notRegex" created in nanomatch parser - this.notRegex = /^\!+(?!\()/; - }) - // reset the referenced parsers - .capture('escape', escape) - .capture('slash', slash) - .capture('qmark', qmark) - .capture('star', star) - .capture('plus', plus) - .capture('dot', dot) +MapCache.prototype.set = function mapSet(key, value) { + if (key !== '__proto__') { + this.__data__[key] = value; + } + return this; +}; - /** - * Override `text` parser - */ +/** + * Gets the cached value for `key`. + * + * ```js + * cache.get('foo'); + * //=> 'bar' + * ``` + * + * @param {String} `key` The key of the value to get. + * @returns {*} Returns the cached value. + * @api public + */ - .capture('text', function() { - if (this.isInside('bracket')) return; - var pos = this.position(); - var m = this.match(createNotRegex(this.options)); - if (!m || !m[0]) return; +MapCache.prototype.get = function mapGet(key) { + return key === '__proto__' ? undefined : this.__data__[key]; +}; - // escape regex boundary characters and simple brackets - var val = m[0].replace(/([[\]^$])/g, '\\$1'); +/** + * Checks if a cached value for `key` exists. + * + * ```js + * cache.has('foo'); + * //=> true + * ``` + * + * @param {String} `key` The key of the entry to check. + * @returns {Boolean} Returns `true` if an entry for `key` exists, else `false`. + * @api public + */ - return pos({ - type: 'text', - val: val - }); - }); +MapCache.prototype.has = function mapHas(key) { + return key !== '__proto__' && hasOwn.call(this.__data__, key); }; /** - * Create text regex + * Removes `key` and its value from the cache. + * + * ```js + * cache.del('foo'); + * ``` + * @title .del + * @param {String} `key` The key of the value to remove. + * @returns {Boolean} Returns `true` if the entry was removed successfully, else `false`. + * @api public */ -function textRegex(pattern) { - var notStr = regexNot.create(pattern, {contains: true, strictClose: false}); - var prefix = '(?:[\\^]|\\\\|'; - return toRegex(prefix + notStr + ')', {strictClose: false}); -} +MapCache.prototype.del = function mapDelete(key) { + return this.has(key) && delete this.__data__[key]; +}; /***/ }), -/* 430 */ +/* 524 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = new (__webpack_require__(107))(); +"use strict"; + + +var define = __webpack_require__(478); + +/** + * Store position for a node + */ + +module.exports = function Position(start, parser) { + this.start = start; + this.end = { line: parser.line, column: parser.column }; + define(this, 'content', parser.orig); + define(this, 'source', parser.options.source); +}; /***/ }), -/* 431 */ +/* 525 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var utils = module.exports; -var path = __webpack_require__(5); - -/** - * Module dependencies - */ - -var Snapdragon = __webpack_require__(66); -utils.define = __webpack_require__(44); -utils.diff = __webpack_require__(150); -utils.extend = __webpack_require__(20); -utils.pick = __webpack_require__(151); -utils.typeOf = __webpack_require__(432); -utils.unique = __webpack_require__(65); +var nanomatch = __webpack_require__(526); +var extglob = __webpack_require__(536); -/** - * Returns true if the platform is windows, or `path.sep` is `\\`. - * This is defined as a function to allow `path.sep` to be set in unit tests, - * or by the user, if there is a reason to do so. - * @return {Boolean} - */ +module.exports = function(snapdragon) { + var compilers = snapdragon.compiler.compilers; + var opts = snapdragon.options; -utils.isWindows = function() { - return path.sep === '\\' || process.platform === 'win32'; -}; + // register nanomatch compilers + snapdragon.use(nanomatch.compilers); -/** - * Get the `Snapdragon` instance to use - */ + // get references to some specific nanomatch compilers before they + // are overridden by the extglob and/or custom compilers + var escape = compilers.escape; + var qmark = compilers.qmark; + var slash = compilers.slash; + var star = compilers.star; + var text = compilers.text; + var plus = compilers.plus; + var dot = compilers.dot; -utils.instantiate = function(ast, options) { - var snapdragon; - // if an instance was created by `.parse`, use that instance - if (utils.typeOf(ast) === 'object' && ast.snapdragon) { - snapdragon = ast.snapdragon; - // if the user supplies an instance on options, use that instance - } else if (utils.typeOf(options) === 'object' && options.snapdragon) { - snapdragon = options.snapdragon; - // create a new instance + // register extglob compilers or escape exglobs if disabled + if (opts.extglob === false || opts.noext === true) { + snapdragon.compiler.use(escapeExtglobs); } else { - snapdragon = new Snapdragon(options); + snapdragon.use(extglob.compilers); } - utils.define(snapdragon, 'parse', function(str, options) { - var parsed = Snapdragon.prototype.parse.apply(this, arguments); - parsed.input = str; + snapdragon.use(function() { + this.options.star = this.options.star || function(/*node*/) { + return '[^/]*?'; + }; + }); - // escape unmatched brace/bracket/parens - var last = this.parser.stack.pop(); - if (last && this.options.strictErrors !== true) { - var open = last.nodes[0]; - var inner = last.nodes[1]; - if (last.type === 'bracket') { - if (inner.val.charAt(0) === '[') { - inner.val = '\\' + inner.val; - } + // custom micromatch compilers + snapdragon.compiler - } else { - open.val = '\\' + open.val; - var sibling = open.parent.nodes[1]; - if (sibling.type === 'star') { - sibling.loose = true; - } - } - } + // reset referenced compiler + .set('dot', dot) + .set('escape', escape) + .set('plus', plus) + .set('slash', slash) + .set('qmark', qmark) + .set('star', star) + .set('text', text); +}; - // add non-enumerable parser reference - utils.define(parsed, 'parser', this.parser); - return parsed; +function escapeExtglobs(compiler) { + compiler.set('paren', function(node) { + var val = ''; + visit(node, function(tok) { + if (tok.val) val += '\\' + tok.val; + }); + return this.emit(val, node); }); - return snapdragon; -}; - -/** - * Create the key to use for memoization. The key is generated - * by iterating over the options and concatenating key-value pairs - * to the pattern string. - */ + /** + * Visit `node` with the given `fn` + */ -utils.createKey = function(pattern, options) { - if (utils.typeOf(options) !== 'object') { - return pattern; + function visit(node, fn) { + return node.nodes ? mapVisit(node.nodes, fn) : fn(node); } - var val = pattern; - var keys = Object.keys(options); - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - val += ';' + key + '=' + String(options[key]); + + /** + * Map visit over array of `nodes`. + */ + + function mapVisit(nodes, fn) { + var len = nodes.length; + var idx = -1; + while (++idx < len) { + visit(nodes[idx], fn); + } } - return val; -}; +} -/** - * Cast `val` to an array - * @return {Array} - */ -utils.arrayify = function(val) { - if (typeof val === 'string') return [val]; - return val ? (Array.isArray(val) ? val : [val]) : []; -}; +/***/ }), +/* 526 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + /** - * Return true if `val` is a non-empty string + * Module dependencies */ -utils.isString = function(val) { - return typeof val === 'string'; -}; +var util = __webpack_require__(29); +var toRegex = __webpack_require__(390); +var extend = __webpack_require__(399); /** - * Return true if `val` is a non-empty string + * Local dependencies */ -utils.isObject = function(val) { - return utils.typeOf(val) === 'object'; -}; +var compilers = __webpack_require__(527); +var parsers = __webpack_require__(528); +var cache = __webpack_require__(530); +var utils = __webpack_require__(532); +var MAX_LENGTH = 1024 * 64; /** - * Returns true if the given `str` has special characters + * The main function takes a list of strings and one or more + * glob patterns to use for matching. + * + * ```js + * var nm = require('nanomatch'); + * nm(list, patterns[, options]); + * + * console.log(nm(['a.js', 'a.txt'], ['*.js'])); + * //=> [ 'a.js' ] + * ``` + * @param {Array} `list` A list of strings to match + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array} Returns an array of matches + * @summary false + * @api public */ -utils.hasSpecialChars = function(str) { - return /(?:(?:(^|\/)[!.])|[*?+()|\[\]{}]|[+@]\()/.test(str); -}; +function nanomatch(list, patterns, options) { + patterns = utils.arrayify(patterns); + list = utils.arrayify(list); + + var len = patterns.length; + if (list.length === 0 || len === 0) { + return []; + } + + if (len === 1) { + return nanomatch.match(list, patterns[0], options); + } + + var negated = false; + var omit = []; + var keep = []; + var idx = -1; + + while (++idx < len) { + var pattern = patterns[idx]; + + if (typeof pattern === 'string' && pattern.charCodeAt(0) === 33 /* ! */) { + omit.push.apply(omit, nanomatch.match(list, pattern.slice(1), options)); + negated = true; + } else { + keep.push.apply(keep, nanomatch.match(list, pattern, options)); + } + } + + // minimatch.match parity + if (negated && keep.length === 0) { + if (options && options.unixify === false) { + keep = list.slice(); + } else { + var unixify = utils.unixify(options); + for (var i = 0; i < list.length; i++) { + keep.push(unixify(list[i])); + } + } + } -/** - * Escape regex characters in the given string - */ + var matches = utils.diff(keep, omit); + if (!options || options.nodupes !== false) { + return utils.unique(matches); + } -utils.escapeRegex = function(str) { - return str.replace(/[-[\]{}()^$|*+?.\\\/\s]/g, '\\$&'); -}; + return matches; +} /** - * Normalize slashes in the given filepath. + * Similar to the main function, but `pattern` must be a string. * - * @param {String} `filepath` - * @return {String} + * ```js + * var nm = require('nanomatch'); + * nm.match(list, pattern[, options]); + * + * console.log(nm.match(['a.a', 'a.aa', 'a.b', 'a.c'], '*.a')); + * //=> ['a.a', 'a.aa'] + * ``` + * @param {Array} `list` Array of strings to match + * @param {String} `pattern` Glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array} Returns an array of matches + * @api public */ -utils.toPosixPath = function(str) { - return str.replace(/\\+/g, '/'); -}; +nanomatch.match = function(list, pattern, options) { + if (Array.isArray(pattern)) { + throw new TypeError('expected pattern to be a string'); + } -/** - * Strip backslashes before special characters in a string. - * - * @param {String} `str` - * @return {String} - */ + var unixify = utils.unixify(options); + var isMatch = memoize('match', pattern, options, nanomatch.matcher); + var matches = []; -utils.unescape = function(str) { - return utils.toPosixPath(str.replace(/\\(?=[*+?!.])/g, '')); -}; + list = utils.arrayify(list); + var len = list.length; + var idx = -1; -/** - * Strip the prefix from a filepath - * @param {String} `fp` - * @return {String} - */ + while (++idx < len) { + var ele = list[idx]; + if (ele === pattern || isMatch(ele)) { + matches.push(utils.value(ele, unixify, options)); + } + } -utils.stripPrefix = function(str) { - if (str.charAt(0) !== '.') { - return str; + // if no options were passed, uniquify results and return + if (typeof options === 'undefined') { + return utils.unique(matches); } - var ch = str.charAt(1); - if (utils.isSlash(ch)) { - return str.slice(2); + + if (matches.length === 0) { + if (options.failglob === true) { + throw new Error('no matches found for "' + pattern + '"'); + } + if (options.nonull === true || options.nullglob === true) { + return [options.unescape ? utils.unescape(pattern) : pattern]; + } } - return str; -}; -/** - * Returns true if the given str is an escaped or - * unescaped path character - */ + // if `opts.ignore` was defined, diff ignored list + if (options.ignore) { + matches = nanomatch.not(matches, options.ignore, options); + } -utils.isSlash = function(str) { - return str === '/' || str === '\\/' || str === '\\' || str === '\\\\'; + return options.nodupes !== false ? utils.unique(matches) : matches; }; /** - * Returns a function that returns true if the given - * pattern matches or contains a `filepath` + * Returns true if the specified `string` matches the given glob `pattern`. * - * @param {String} `pattern` - * @return {Function} + * ```js + * var nm = require('nanomatch'); + * nm.isMatch(string, pattern[, options]); + * + * console.log(nm.isMatch('a.a', '*.a')); + * //=> true + * console.log(nm.isMatch('a.b', '*.a')); + * //=> false + * ``` + * @param {String} `string` String to match + * @param {String} `pattern` Glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if the string matches the glob pattern. + * @api public */ -utils.matchPath = function(pattern, options) { - return (options && options.contains) - ? utils.containsPattern(pattern, options) - : utils.equalsPattern(pattern, options); -}; - -/** - * Returns true if the given (original) filepath or unixified path are equal - * to the given pattern. - */ +nanomatch.isMatch = function(str, pattern, options) { + if (typeof str !== 'string') { + throw new TypeError('expected a string: "' + util.inspect(str) + '"'); + } -utils._equals = function(filepath, unixPath, pattern) { - return pattern === filepath || pattern === unixPath; -}; + if (utils.isEmptyString(str) || utils.isEmptyString(pattern)) { + return false; + } -/** - * Returns true if the given (original) filepath or unixified path contain - * the given pattern. - */ + var equals = utils.equalsPattern(options); + if (equals(str)) { + return true; + } -utils._contains = function(filepath, unixPath, pattern) { - return filepath.indexOf(pattern) !== -1 || unixPath.indexOf(pattern) !== -1; + var isMatch = memoize('isMatch', pattern, options, nanomatch.matcher); + return isMatch(str); }; /** - * Returns a function that returns true if the given - * pattern is the same as a given `filepath` + * Returns true if some of the elements in the given `list` match any of the + * given glob `patterns`. * - * @param {String} `pattern` - * @return {Function} + * ```js + * var nm = require('nanomatch'); + * nm.some(list, patterns[, options]); + * + * console.log(nm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); + * // true + * console.log(nm.some(['foo.js'], ['*.js', '!foo.js'])); + * // false + * ``` + * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any patterns match `str` + * @api public */ -utils.equalsPattern = function(pattern, options) { - var unixify = utils.unixify(options); - options = options || {}; +nanomatch.some = function(list, patterns, options) { + if (typeof list === 'string') { + list = [list]; + } - return function fn(filepath) { - var equal = utils._equals(filepath, unixify(filepath), pattern); - if (equal === true || options.nocase !== true) { - return equal; + for (var i = 0; i < list.length; i++) { + if (nanomatch(list[i], patterns, options).length === 1) { + return true; } - var lower = filepath.toLowerCase(); - return utils._equals(lower, unixify(lower), pattern); - }; + } + + return false; }; /** - * Returns a function that returns true if the given - * pattern contains a `filepath` + * Returns true if every element in the given `list` matches + * at least one of the given glob `patterns`. * - * @param {String} `pattern` - * @return {Function} + * ```js + * var nm = require('nanomatch'); + * nm.every(list, patterns[, options]); + * + * console.log(nm.every('foo.js', ['foo.js'])); + * // true + * console.log(nm.every(['foo.js', 'bar.js'], ['*.js'])); + * // true + * console.log(nm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); + * // false + * console.log(nm.every(['foo.js'], ['*.js', '!foo.js'])); + * // false + * ``` + * @param {String|Array} `list` The string or array of strings to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any patterns match `str` + * @api public */ -utils.containsPattern = function(pattern, options) { - var unixify = utils.unixify(options); - options = options || {}; +nanomatch.every = function(list, patterns, options) { + if (typeof list === 'string') { + list = [list]; + } - return function(filepath) { - var contains = utils._contains(filepath, unixify(filepath), pattern); - if (contains === true || options.nocase !== true) { - return contains; + for (var i = 0; i < list.length; i++) { + if (nanomatch(list[i], patterns, options).length !== 1) { + return false; } - var lower = filepath.toLowerCase(); - return utils._contains(lower, unixify(lower), pattern); - }; + } + + return true; }; /** - * Returns a function that returns true if the given - * regex matches the `filename` of a file path. + * Returns true if **any** of the given glob `patterns` + * match the specified `string`. * - * @param {RegExp} `re` Matching regex - * @return {Function} + * ```js + * var nm = require('nanomatch'); + * nm.any(string, patterns[, options]); + * + * console.log(nm.any('a.a', ['b.*', '*.a'])); + * //=> true + * console.log(nm.any('a.a', 'b.*')); + * //=> false + * ``` + * @param {String|Array} `str` The string to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any patterns match `str` + * @api public */ -utils.matchBasename = function(re) { - return function(filepath) { - return re.test(filepath) || re.test(path.basename(filepath)); - }; -}; +nanomatch.any = function(str, patterns, options) { + if (typeof str !== 'string') { + throw new TypeError('expected a string: "' + util.inspect(str) + '"'); + } -/** - * Determines the filepath to return based on the provided options. - * @return {any} - */ + if (utils.isEmptyString(str) || utils.isEmptyString(patterns)) { + return false; + } -utils.value = function(str, unixify, options) { - if (options && options.unixify === false) { - return str; + if (typeof patterns === 'string') { + patterns = [patterns]; } - return unixify(str); + + for (var i = 0; i < patterns.length; i++) { + if (nanomatch.isMatch(str, patterns[i], options)) { + return true; + } + } + return false; }; /** - * Returns a function that normalizes slashes in a string to forward - * slashes, strips `./` from beginning of paths, and optionally unescapes - * special characters. - * @return {Function} + * Returns true if **all** of the given `patterns` + * match the specified string. + * + * ```js + * var nm = require('nanomatch'); + * nm.all(string, patterns[, options]); + * + * console.log(nm.all('foo.js', ['foo.js'])); + * // true + * + * console.log(nm.all('foo.js', ['*.js', '!foo.js'])); + * // false + * + * console.log(nm.all('foo.js', ['*.js', 'foo.js'])); + * // true + * + * console.log(nm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js'])); + * // true + * ``` + * @param {String|Array} `str` The string to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any patterns match `str` + * @api public */ -utils.unixify = function(options) { - options = options || {}; - return function(filepath) { - if (utils.isWindows() || options.unixify === true) { - filepath = utils.toPosixPath(filepath); - } - if (options.stripPrefix !== false) { - filepath = utils.stripPrefix(filepath); - } - if (options.unescape === true) { - filepath = utils.unescape(filepath); +nanomatch.all = function(str, patterns, options) { + if (typeof str !== 'string') { + throw new TypeError('expected a string: "' + util.inspect(str) + '"'); + } + + if (typeof patterns === 'string') { + patterns = [patterns]; + } + + for (var i = 0; i < patterns.length; i++) { + if (!nanomatch.isMatch(str, patterns[i], options)) { + return false; } - return filepath; - }; + } + return true; }; +/** + * Returns a list of strings that _**do not match any**_ of the given `patterns`. + * + * ```js + * var nm = require('nanomatch'); + * nm.not(list, patterns[, options]); + * + * console.log(nm.not(['a.a', 'b.b', 'c.c'], '*.a')); + * //=> ['b.b', 'c.c'] + * ``` + * @param {Array} `list` Array of strings to match. + * @param {String|Array} `patterns` One or more glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array} Returns an array of strings that **do not match** the given patterns. + * @api public + */ -/***/ }), -/* 432 */ -/***/ (function(module, exports) { - -var toString = Object.prototype.toString; +nanomatch.not = function(list, patterns, options) { + var opts = extend({}, options); + var ignore = opts.ignore; + delete opts.ignore; -module.exports = function kindOf(val) { - if (val === void 0) return 'undefined'; - if (val === null) return 'null'; + list = utils.arrayify(list); - var type = typeof val; - if (type === 'boolean') return 'boolean'; - if (type === 'string') return 'string'; - if (type === 'number') return 'number'; - if (type === 'symbol') return 'symbol'; - if (type === 'function') { - return isGeneratorFn(val) ? 'generatorfunction' : 'function'; + var matches = utils.diff(list, nanomatch(list, patterns, opts)); + if (ignore) { + matches = utils.diff(matches, nanomatch(list, ignore)); } - if (isArray(val)) return 'array'; - if (isBuffer(val)) return 'buffer'; - if (isArguments(val)) return 'arguments'; - if (isDate(val)) return 'date'; - if (isError(val)) return 'error'; - if (isRegexp(val)) return 'regexp'; - - switch (ctorName(val)) { - case 'Symbol': return 'symbol'; - case 'Promise': return 'promise'; - - // Set, Map, WeakSet, WeakMap - case 'WeakMap': return 'weakmap'; - case 'WeakSet': return 'weakset'; - case 'Map': return 'map'; - case 'Set': return 'set'; - - // 8-bit typed arrays - case 'Int8Array': return 'int8array'; - case 'Uint8Array': return 'uint8array'; - case 'Uint8ClampedArray': return 'uint8clampedarray'; + return opts.nodupes !== false ? utils.unique(matches) : matches; +}; - // 16-bit typed arrays - case 'Int16Array': return 'int16array'; - case 'Uint16Array': return 'uint16array'; +/** + * Returns true if the given `string` contains the given pattern. Similar + * to [.isMatch](#isMatch) but the pattern can match any part of the string. + * + * ```js + * var nm = require('nanomatch'); + * nm.contains(string, pattern[, options]); + * + * console.log(nm.contains('aa/bb/cc', '*b')); + * //=> true + * console.log(nm.contains('aa/bb/cc', '*d')); + * //=> false + * ``` + * @param {String} `str` The string to match. + * @param {String|Array} `patterns` Glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if the patter matches any part of `str`. + * @api public + */ - // 32-bit typed arrays - case 'Int32Array': return 'int32array'; - case 'Uint32Array': return 'uint32array'; - case 'Float32Array': return 'float32array'; - case 'Float64Array': return 'float64array'; +nanomatch.contains = function(str, patterns, options) { + if (typeof str !== 'string') { + throw new TypeError('expected a string: "' + util.inspect(str) + '"'); } - if (isGeneratorObj(val)) { - return 'generator'; - } + if (typeof patterns === 'string') { + if (utils.isEmptyString(str) || utils.isEmptyString(patterns)) { + return false; + } - // Non-plain objects - type = toString.call(val); - switch (type) { - case '[object Object]': return 'object'; - // iterators - case '[object Map Iterator]': return 'mapiterator'; - case '[object Set Iterator]': return 'setiterator'; - case '[object String Iterator]': return 'stringiterator'; - case '[object Array Iterator]': return 'arrayiterator'; + var equals = utils.equalsPattern(patterns, options); + if (equals(str)) { + return true; + } + var contains = utils.containsPattern(patterns, options); + if (contains(str)) { + return true; + } } - // other - return type.slice(8, -1).toLowerCase().replace(/\s/g, ''); + var opts = extend({}, options, {contains: true}); + return nanomatch.any(str, patterns, opts); }; -function ctorName(val) { - return val.constructor ? val.constructor.name : null; -} - -function isArray(val) { - if (Array.isArray) return Array.isArray(val); - return val instanceof Array; -} - -function isError(val) { - return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number'); -} - -function isDate(val) { - if (val instanceof Date) return true; - return typeof val.toDateString === 'function' - && typeof val.getDate === 'function' - && typeof val.setDate === 'function'; -} - -function isRegexp(val) { - if (val instanceof RegExp) return true; - return typeof val.flags === 'string' - && typeof val.ignoreCase === 'boolean' - && typeof val.multiline === 'boolean' - && typeof val.global === 'boolean'; -} +/** + * Returns true if the given pattern and options should enable + * the `matchBase` option. + * @return {Boolean} + * @api private + */ -function isGeneratorFn(name, val) { - return ctorName(name) === 'GeneratorFunction'; -} +nanomatch.matchBase = function(pattern, options) { + if (pattern && pattern.indexOf('/') !== -1 || !options) return false; + return options.basename === true || options.matchBase === true; +}; -function isGeneratorObj(val) { - return typeof val.throw === 'function' - && typeof val.return === 'function' - && typeof val.next === 'function'; -} +/** + * Filter the keys of the given object with the given `glob` pattern + * and `options`. Does not attempt to match nested keys. If you need this feature, + * use [glob-object][] instead. + * + * ```js + * var nm = require('nanomatch'); + * nm.matchKeys(object, patterns[, options]); + * + * var obj = { aa: 'a', ab: 'b', ac: 'c' }; + * console.log(nm.matchKeys(obj, '*b')); + * //=> { ab: 'b' } + * ``` + * @param {Object} `object` The object with keys to filter. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Object} Returns an object with only keys that match the given patterns. + * @api public + */ -function isArguments(val) { - try { - if (typeof val.length === 'number' && typeof val.callee === 'function') { - return true; - } - } catch (err) { - if (err.message.indexOf('callee') !== -1) { - return true; - } +nanomatch.matchKeys = function(obj, patterns, options) { + if (!utils.isObject(obj)) { + throw new TypeError('expected the first argument to be an object'); } - return false; -} + var keys = nanomatch(Object.keys(obj), patterns, options); + return utils.pick(obj, keys); +}; /** - * If you need to support Safari 5-7 (8-10 yr-old browser), - * take a look at https://github.com/feross/is-buffer + * Returns a memoized matcher function from the given glob `pattern` and `options`. + * The returned function takes a string to match as its only argument and returns + * true if the string is a match. + * + * ```js + * var nm = require('nanomatch'); + * nm.matcher(pattern[, options]); + * + * var isMatch = nm.matcher('*.!(*a)'); + * console.log(isMatch('a.a')); + * //=> false + * console.log(isMatch('a.b')); + * //=> true + * ``` + * @param {String} `pattern` Glob pattern + * @param {Object} `options` See available [options](#options) for changing how matches are performed. + * @return {Function} Returns a matcher function. + * @api public */ -function isBuffer(val) { - if (val.constructor && typeof val.constructor.isBuffer === 'function') { - return val.constructor.isBuffer(val); +nanomatch.matcher = function matcher(pattern, options) { + if (utils.isEmptyString(pattern)) { + return function() { + return false; + }; } - return false; -} + if (Array.isArray(pattern)) { + return compose(pattern, options, matcher); + } -/***/ }), -/* 433 */ -/***/ (function(module, exports, __webpack_require__) { + // if pattern is a regex + if (pattern instanceof RegExp) { + return test(pattern); + } -"use strict"; + // if pattern is invalid + if (!utils.isString(pattern)) { + throw new TypeError('expected pattern to be an array, string or regex'); + } -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var readdir = __webpack_require__(108); -var reader_1 = __webpack_require__(111); -var ReaderAsync = /** @class */ (function (_super) { - __extends(ReaderAsync, _super); - function ReaderAsync() { - return _super !== null && _super.apply(this, arguments) || this; + // if pattern is a non-glob string + if (!utils.hasSpecialChars(pattern)) { + if (options && options.nocase === true) { + pattern = pattern.toLowerCase(); } - /** - * Returns founded paths. - */ - ReaderAsync.prototype.api = function (root, options) { - return readdir.readdirStreamStat(root, options); - }; - /** - * Use sync API to read entries for Task. - */ - ReaderAsync.prototype.read = function (task) { - var _this = this; - var root = this.getRootDirectory(task); - var options = this.getReaderOptions(task); - var entries = []; - return new Promise(function (resolve, reject) { - var stream = _this.api(root, options); - stream.on('error', function (err) { - _this.isEnoentCodeError(err) ? resolve([]) : reject(err); - stream.pause(); - }); - stream.on('data', function (entry) { return entries.push(_this.transform(entry)); }); - stream.on('end', function () { return resolve(entries); }); - }); - }; - return ReaderAsync; -}(reader_1.default)); -exports.default = ReaderAsync; - + return utils.matchPath(pattern, options); + } -/***/ }), -/* 434 */ -/***/ (function(module, exports, __webpack_require__) { + // if pattern is a glob string + var re = nanomatch.makeRe(pattern, options); -"use strict"; + // if `options.matchBase` or `options.basename` is defined + if (nanomatch.matchBase(pattern, options)) { + return utils.matchBasename(re, options); + } + function test(regex) { + var equals = utils.equalsPattern(options); + var unixify = utils.unixify(options); -module.exports = readdirSync; + return function(str) { + if (equals(str)) { + return true; + } -const DirectoryReader = __webpack_require__(109); + if (regex.test(unixify(str))) { + return true; + } + return false; + }; + } -let syncFacade = { - fs: __webpack_require__(438), - forEach: __webpack_require__(439), - sync: true + var fn = test(re); + Object.defineProperty(fn, 'result', { + configurable: true, + enumerable: false, + value: re.result + }); + return fn; }; /** - * Returns the buffered output from a synchronous {@link DirectoryReader}. + * Returns an array of matches captured by `pattern` in `string, or + * `null` if the pattern did not match. * - * @param {string} dir - * @param {object} [options] - * @param {object} internalOptions + * ```js + * var nm = require('nanomatch'); + * nm.capture(pattern, string[, options]); + * + * console.log(nm.capture('test/*.js', 'test/foo.js')); + * //=> ['foo'] + * console.log(nm.capture('test/*.js', 'foo/bar.css')); + * //=> null + * ``` + * @param {String} `pattern` Glob pattern to use for matching. + * @param {String} `string` String to match + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns an array of captures if the string matches the glob pattern, otherwise `null`. + * @api public */ -function readdirSync (dir, options, internalOptions) { - internalOptions.facade = syncFacade; - let reader = new DirectoryReader(dir, options, internalOptions); - let stream = reader.stream; +nanomatch.capture = function(pattern, str, options) { + var re = nanomatch.makeRe(pattern, extend({capture: true}, options)); + var unixify = utils.unixify(options); - let results = []; - let data = stream.read(); - while (data !== null) { - results.push(data); - data = stream.read(); - } + function match() { + return function(string) { + var match = re.exec(unixify(string)); + if (!match) { + return null; + } - return results; -} + return match.slice(1); + }; + } + var capture = memoize('capture', pattern, options, match); + return capture(str); +}; -/***/ }), -/* 435 */ -/***/ (function(module, exports, __webpack_require__) { +/** + * Create a regular expression from the given glob `pattern`. + * + * ```js + * var nm = require('nanomatch'); + * nm.makeRe(pattern[, options]); + * + * console.log(nm.makeRe('*.js')); + * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/ + * ``` + * @param {String} `pattern` A glob pattern to convert to regex. + * @param {Object} `options` See available [options](#options) for changing how matches are performed. + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ -"use strict"; +nanomatch.makeRe = function(pattern, options) { + if (pattern instanceof RegExp) { + return pattern; + } + if (typeof pattern !== 'string') { + throw new TypeError('expected pattern to be a string'); + } -const path = __webpack_require__(5); -const globToRegExp = __webpack_require__(436); + if (pattern.length > MAX_LENGTH) { + throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters'); + } -module.exports = normalizeOptions; + function makeRe() { + var opts = utils.extend({wrap: false}, options); + var res = nanomatch.create(pattern, opts); + var regex = toRegex(res.output, opts); + Object.defineProperty(regex, 'result', { + configurable: true, + enumerable: false, + value: res + }); + return regex; + } -let isWindows = /^win/.test(process.platform); + return memoize('makeRe', pattern, options, makeRe); +}; /** - * @typedef {Object} FSFacade - * @property {fs.readdir} readdir - * @property {fs.stat} stat - * @property {fs.lstat} lstat + * Parses the given glob `pattern` and returns an object with the compiled `output` + * and optional source `map`. + * + * ```js + * var nm = require('nanomatch'); + * nm.create(pattern[, options]); + * + * console.log(nm.create('abc/*.js')); + * // { options: { source: 'string', sourcemap: true }, + * // state: {}, + * // compilers: + * // { ... }, + * // output: '(\\.[\\\\\\/])?abc\\/(?!\\.)(?=.)[^\\/]*?\\.js', + * // ast: + * // { type: 'root', + * // errors: [], + * // nodes: + * // [ ... ], + * // dot: false, + * // input: 'abc/*.js' }, + * // parsingErrors: [], + * // map: + * // { version: 3, + * // sources: [ 'string' ], + * // names: [], + * // mappings: 'AAAA,GAAG,EAAC,kBAAC,EAAC,EAAE', + * // sourcesContent: [ 'abc/*.js' ] }, + * // position: { line: 1, column: 28 }, + * // content: {}, + * // files: {}, + * // idx: 6 } + * ``` + * @param {String} `pattern` Glob pattern to parse and compile. + * @param {Object} `options` Any [options](#options) to change how parsing and compiling is performed. + * @return {Object} Returns an object with the parsed AST, compiled string and optional source map. + * @api public */ +nanomatch.create = function(pattern, options) { + if (typeof pattern !== 'string') { + throw new TypeError('expected a string'); + } + function create() { + return nanomatch.compile(nanomatch.parse(pattern, options), options); + } + return memoize('create', pattern, options, create); +}; + /** - * Validates and normalizes the options argument - * - * @param {object} [options] - User-specified options, if any - * @param {object} internalOptions - Internal options that aren't part of the public API - * - * @param {number|boolean|function} [options.deep] - * The number of directories to recursively traverse. Any falsy value or negative number will - * default to zero, so only the top-level contents will be returned. Set to `true` or `Infinity` - * to traverse all subdirectories. Or provide a function that accepts a {@link fs.Stats} object - * and returns a truthy value if the directory's contents should be crawled. - * - * @param {function|string|RegExp} [options.filter] - * A function that accepts a {@link fs.Stats} object and returns a truthy value if the data should - * be returned. Or a RegExp or glob string pattern, to filter by file name. - * - * @param {string} [options.sep] - * The path separator to use. By default, the OS-specific separator will be used, but this can be - * set to a specific value to ensure consistency across platforms. - * - * @param {string} [options.basePath] - * The base path to prepend to each result. If empty, then all results will be relative to `dir`. - * - * @param {FSFacade} [options.fs] - * Synchronous or asynchronous facades for Node.js File System module - * - * @param {object} [internalOptions.facade] - * Synchronous or asynchronous facades for various methods, including for the Node.js File System module - * - * @param {boolean} [internalOptions.emit] - * Indicates whether the reader should emit "file", "directory", and "symlink" events + * Parse the given `str` with the given `options`. * - * @param {boolean} [internalOptions.stats] - * Indicates whether the reader should emit {@link fs.Stats} objects instead of path strings + * ```js + * var nm = require('nanomatch'); + * nm.parse(pattern[, options]); * - * @returns {object} + * var ast = nm.parse('a/{b,c}/d'); + * console.log(ast); + * // { type: 'root', + * // errors: [], + * // input: 'a/{b,c}/d', + * // nodes: + * // [ { type: 'bos', val: '' }, + * // { type: 'text', val: 'a/' }, + * // { type: 'brace', + * // nodes: + * // [ { type: 'brace.open', val: '{' }, + * // { type: 'text', val: 'b,c' }, + * // { type: 'brace.close', val: '}' } ] }, + * // { type: 'text', val: '/d' }, + * // { type: 'eos', val: '' } ] } + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {Object} Returns an AST + * @api public */ -function normalizeOptions (options, internalOptions) { - if (options === null || options === undefined) { - options = {}; - } - else if (typeof options !== 'object') { - throw new TypeError('options must be an object'); - } - let recurseDepth, recurseFn, recurseRegExp, recurseGlob, deep = options.deep; - if (deep === null || deep === undefined) { - recurseDepth = 0; - } - else if (typeof deep === 'boolean') { - recurseDepth = deep ? Infinity : 0; - } - else if (typeof deep === 'number') { - if (deep < 0 || isNaN(deep)) { - throw new Error('options.deep must be a positive number'); - } - else if (Math.floor(deep) !== deep) { - throw new Error('options.deep must be an integer'); - } - else { - recurseDepth = deep; - } - } - else if (typeof deep === 'function') { - recurseDepth = Infinity; - recurseFn = deep; - } - else if (deep instanceof RegExp) { - recurseDepth = Infinity; - recurseRegExp = deep; - } - else if (typeof deep === 'string' && deep.length > 0) { - recurseDepth = Infinity; - recurseGlob = globToRegExp(deep, { extended: true, globstar: true }); - } - else { - throw new TypeError('options.deep must be a boolean, number, function, regular expression, or glob pattern'); +nanomatch.parse = function(pattern, options) { + if (typeof pattern !== 'string') { + throw new TypeError('expected a string'); } - let filterFn, filterRegExp, filterGlob, filter = options.filter; - if (filter !== null && filter !== undefined) { - if (typeof filter === 'function') { - filterFn = filter; - } - else if (filter instanceof RegExp) { - filterRegExp = filter; - } - else if (typeof filter === 'string' && filter.length > 0) { - filterGlob = globToRegExp(filter, { extended: true, globstar: true }); - } - else { - throw new TypeError('options.filter must be a function, regular expression, or glob pattern'); - } - } + function parse() { + var snapdragon = utils.instantiate(null, options); + parsers(snapdragon, options); - let sep = options.sep; - if (sep === null || sep === undefined) { - sep = path.sep; - } - else if (typeof sep !== 'string') { - throw new TypeError('options.sep must be a string'); + var ast = snapdragon.parse(pattern, options); + utils.define(ast, 'snapdragon', snapdragon); + ast.input = pattern; + return ast; } - let basePath = options.basePath; - if (basePath === null || basePath === undefined) { - basePath = ''; - } - else if (typeof basePath === 'string') { - // Append a path separator to the basePath, if necessary - if (basePath && basePath.substr(-1) !== sep) { - basePath += sep; - } + return memoize('parse', pattern, options, parse); +}; + +/** + * Compile the given `ast` or string with the given `options`. + * + * ```js + * var nm = require('nanomatch'); + * nm.compile(ast[, options]); + * + * var ast = nm.parse('a/{b,c}/d'); + * console.log(nm.compile(ast)); + * // { options: { source: 'string' }, + * // state: {}, + * // compilers: + * // { eos: [Function], + * // noop: [Function], + * // bos: [Function], + * // brace: [Function], + * // 'brace.open': [Function], + * // text: [Function], + * // 'brace.close': [Function] }, + * // output: [ 'a/(b|c)/d' ], + * // ast: + * // { ... }, + * // parsingErrors: [] } + * ``` + * @param {Object|String} `ast` + * @param {Object} `options` + * @return {Object} Returns an object that has an `output` property with the compiled string. + * @api public + */ + +nanomatch.compile = function(ast, options) { + if (typeof ast === 'string') { + ast = nanomatch.parse(ast, options); } - else { - throw new TypeError('options.basePath must be a string'); + + function compile() { + var snapdragon = utils.instantiate(ast, options); + compilers(snapdragon, options); + return snapdragon.compile(ast, options); } - // Convert the basePath to POSIX (forward slashes) - // so that glob pattern matching works consistently, even on Windows - let posixBasePath = basePath; - if (posixBasePath && sep !== '/') { - posixBasePath = posixBasePath.replace(new RegExp('\\' + sep, 'g'), '/'); + return memoize('compile', ast.input, options, compile); +}; + +/** + * Clear the regex cache. + * + * ```js + * nm.clearCache(); + * ``` + * @api public + */ + +nanomatch.clearCache = function() { + nanomatch.cache.__data__ = {}; +}; + +/** + * Compose a matcher function with the given patterns. + * This allows matcher functions to be compiled once and + * called multiple times. + */ + +function compose(patterns, options, matcher) { + var matchers; + + return memoize('compose', String(patterns), options, function() { + return function(file) { + // delay composition until it's invoked the first time, + // after that it won't be called again + if (!matchers) { + matchers = []; + for (var i = 0; i < patterns.length; i++) { + matchers.push(matcher(patterns[i], options)); + } + } + + var len = matchers.length; + while (len--) { + if (matchers[len](file) === true) { + return true; + } + } + return false; + }; + }); +} + +/** + * Memoize a generated regex or function. A unique key is generated + * from the `type` (usually method name), the `pattern`, and + * user-defined options. + */ - /* istanbul ignore if */ - if (isWindows) { - // Convert Windows root paths (C:\) and UNCs (\\) to POSIX root paths - posixBasePath = posixBasePath.replace(/^([a-zA-Z]\:\/|\/\/)/, '/'); - } - } +function memoize(type, pattern, options, fn) { + var key = utils.createKey(type + '=' + pattern, options); - // Determine which facade methods to use - let facade; - if (options.fs === null || options.fs === undefined) { - // The user didn't provide their own facades, so use our internal ones - facade = internalOptions.facade; - } - else if (typeof options.fs === 'object') { - // Merge the internal facade methods with the user-provided `fs` facades - facade = Object.assign({}, internalOptions.facade); - facade.fs = Object.assign({}, internalOptions.facade.fs, options.fs); + if (options && options.cache === false) { + return fn(pattern, options); } - else { - throw new TypeError('options.fs must be an object'); + + if (cache.has(type, key)) { + return cache.get(type, key); } - return { - recurseDepth, - recurseFn, - recurseRegExp, - recurseGlob, - filterFn, - filterRegExp, - filterGlob, - sep, - basePath, - posixBasePath, - facade, - emit: !!internalOptions.emit, - stats: !!internalOptions.stats, - }; + var val = fn(pattern, options); + cache.set(type, key, val); + return val; } +/** + * Expose compiler, parser and cache on `nanomatch` + */ -/***/ }), -/* 436 */ -/***/ (function(module, exports) { - -module.exports = function (glob, opts) { - if (typeof glob !== 'string') { - throw new TypeError('Expected a string'); - } - - var str = String(glob); - - // The regexp we are building, as a string. - var reStr = ""; +nanomatch.compilers = compilers; +nanomatch.parsers = parsers; +nanomatch.cache = cache; - // Whether we are matching so called "extended" globs (like bash) and should - // support single character matching, matching ranges of characters, group - // matching, etc. - var extended = opts ? !!opts.extended : false; +/** + * Expose `nanomatch` + * @type {Function} + */ - // When globstar is _false_ (default), '/foo/*' is translated a regexp like - // '^\/foo\/.*$' which will match any string beginning with '/foo/' - // When globstar is _true_, '/foo/*' is translated to regexp like - // '^\/foo\/[^/]*$' which will match any string beginning with '/foo/' BUT - // which does not have a '/' to the right of it. - // E.g. with '/foo/*' these will match: '/foo/bar', '/foo/bar.txt' but - // these will not '/foo/bar/baz', '/foo/bar/baz.txt' - // Lastely, when globstar is _true_, '/foo/**' is equivelant to '/foo/*' when - // globstar is _false_ - var globstar = opts ? !!opts.globstar : false; +module.exports = nanomatch; - // If we are doing extended matching, this boolean is true when we are inside - // a group (eg {*.html,*.js}), and false otherwise. - var inGroup = false; - // RegExp flags (eg "i" ) to pass in to RegExp constructor. - var flags = opts && typeof( opts.flags ) === "string" ? opts.flags : ""; +/***/ }), +/* 527 */ +/***/ (function(module, exports, __webpack_require__) { - var c; - for (var i = 0, len = str.length; i < len; i++) { - c = str[i]; +"use strict"; - switch (c) { - case "\\": - case "/": - case "$": - case "^": - case "+": - case ".": - case "(": - case ")": - case "=": - case "!": - case "|": - reStr += "\\" + c; - break; - case "?": - if (extended) { - reStr += "."; - break; - } +/** + * Nanomatch compilers + */ - case "[": - case "]": - if (extended) { - reStr += c; - break; - } +module.exports = function(nanomatch, options) { + var star = '[^/]*?'; - case "{": - if (extended) { - inGroup = true; - reStr += "("; - break; - } + var ast = nanomatch.ast = nanomatch.parser.ast; + ast.state = nanomatch.parser.state; + nanomatch.compiler.state = ast.state; + nanomatch.compiler - case "}": - if (extended) { - inGroup = false; - reStr += ")"; - break; - } + /** + * Negation / escaping + */ - case ",": - if (inGroup) { - reStr += "|"; - break; + .set('not', function(node) { + var prev = this.prev(); + if (this.options.nonegate === true || prev.type !== 'bos') { + return this.emit('\\' + node.val, node); } - reStr += "\\" + c; - break; - - case "*": - // Move over all consecutive "*"'s. - // Also store the previous and next characters - var prevChar = str[i - 1]; - var starCount = 1; - while(str[i + 1] === "*") { - starCount++; - i++; + return this.emit(node.val, node); + }) + .set('escape', function(node) { + if (this.options.unescape && /^[\w_.-]/.test(node.val)) { + return this.emit(node.val, node); } - var nextChar = str[i + 1]; + return this.emit('\\' + node.val, node); + }) + .set('quoted', function(node) { + return this.emit(node.val, node); + }) - if (!globstar) { - // globstar is disabled, so treat any number of "*" as one - reStr += ".*"; - } else { - // globstar is enabled, so determine if this is a globstar segment - var isGlobstar = starCount > 1 // multiple "*"'s - && (prevChar === "/" || prevChar === undefined) // from the start of the segment - && (nextChar === "/" || nextChar === undefined) // to the end of the segment + /** + * Regex + */ - if (isGlobstar) { - // it's a globstar, so match zero or more path segments - reStr += "(?:[^/]*(?:\/|$))*"; - i++; // move over the "/" - } else { - // it's not a globstar, so only match one path segment - reStr += "[^/]*"; - } + .set('dollar', function(node) { + if (node.parent.type === 'bracket') { + return this.emit(node.val, node); } - break; - - default: - reStr += c; - } - } - - // When regexp 'g' flag is specified don't - // constrain the regular expression with ^ & $ - if (!flags || !~flags.indexOf('g')) { - reStr = "^" + reStr + "$"; - } - - return new RegExp(reStr, flags); -}; + return this.emit('\\' + node.val, node); + }) + /** + * Dot: "." + */ -/***/ }), -/* 437 */ -/***/ (function(module, exports, __webpack_require__) { + .set('dot', function(node) { + if (node.dotfiles === true) this.dotfiles = true; + return this.emit('\\' + node.val, node); + }) -"use strict"; + /** + * Slashes: "/" and "\" + */ + .set('backslash', function(node) { + return this.emit(node.val, node); + }) + .set('slash', function(node, nodes, i) { + var val = '\\' + node.val; + var parent = node.parent; + var prev = this.prev(); -const call = __webpack_require__(110); + // set "node.hasSlash" to true on all ancestor parens nodes + while (parent.type === 'paren' && !parent.hasSlash) { + parent.hasSlash = true; + parent = parent.parent; + } -module.exports = stat; + if (prev.addQmark) { + val += '?'; + } -/** - * Retrieves the {@link fs.Stats} for the given path. If the path is a symbolic link, - * then the Stats of the symlink's target are returned instead. If the symlink is broken, - * then the Stats of the symlink itself are returned. - * - * @param {object} fs - Synchronous or Asynchronouse facade for the "fs" module - * @param {string} path - The path to return stats for - * @param {function} callback - */ -function stat (fs, path, callback) { - let isSymLink = false; + // word boundary + if (node.rest.slice(0, 2) === '\\b') { + return this.emit(val, node); + } - call.safe(fs.lstat, path, (err, lstats) => { - if (err) { - // fs.lstat threw an eror - return callback(err); - } + // globstars + if (node.parsed === '**' || node.parsed === './**') { + this.output = '(?:' + this.output; + return this.emit(val + ')?', node); + } - try { - isSymLink = lstats.isSymbolicLink(); - } - catch (err2) { - // lstats.isSymbolicLink() threw an error - // (probably because fs.lstat returned an invalid result) - return callback(err2); - } + // negation + if (node.parsed === '!**' && this.options.nonegate !== true) { + return this.emit(val + '?\\b', node); + } + return this.emit(val, node); + }) - if (isSymLink) { - // Try to resolve the symlink - symlinkStat(fs, path, lstats, callback); - } - else { - // It's not a symlink, so return the stats as-is - callback(null, lstats); - } - }); -} + /** + * Square brackets + */ -/** - * Retrieves the {@link fs.Stats} for the target of the given symlink. - * If the symlink is broken, then the Stats of the symlink itself are returned. - * - * @param {object} fs - Synchronous or Asynchronouse facade for the "fs" module - * @param {string} path - The path of the symlink to return stats for - * @param {object} lstats - The stats of the symlink - * @param {function} callback - */ -function symlinkStat (fs, path, lstats, callback) { - call.safe(fs.stat, path, (err, stats) => { - if (err) { - // The symlink is broken, so return the stats for the link itself - return callback(null, lstats); - } + .set('bracket', function(node) { + var close = node.close; + var open = !node.escaped ? '[' : '\\['; + var negated = node.negated; + var inner = node.inner; + var val = node.val; - try { - // Return the stats for the resolved symlink target, - // and override the `isSymbolicLink` method to indicate that it's a symlink - stats.isSymbolicLink = () => true; - } - catch (err2) { - // Setting stats.isSymbolicLink threw an error - // (probably because fs.stat returned an invalid result) - return callback(err2); - } + if (node.escaped === true) { + inner = inner.replace(/\\?(\W)/g, '\\$1'); + negated = ''; + } - callback(null, stats); - }); -} + if (inner === ']-') { + inner = '\\]\\-'; + } + if (negated && inner.indexOf('.') === -1) { + inner += '.'; + } + if (negated && inner.indexOf('/') === -1) { + inner += '/'; + } -/***/ }), -/* 438 */ -/***/ (function(module, exports, __webpack_require__) { + val = open + negated + inner + close; + return this.emit(val, node); + }) -"use strict"; + /** + * Square: "[.]" (only matches a single character in brackets) + */ + .set('square', function(node) { + var val = !/^\w/.test(node.val) ? '\\' + node.val : node.val; + return this.emit(val, node); + }) -const fs = __webpack_require__(13); -const call = __webpack_require__(110); + /** + * Question mark: "?" + */ -/** - * A facade around {@link fs.readdirSync} that allows it to be called - * the same way as {@link fs.readdir}. - * - * @param {string} dir - * @param {function} callback - */ -exports.readdir = function (dir, callback) { - // Make sure the callback is only called once - callback = call.once(callback); + .set('qmark', function(node) { + var prev = this.prev(); + var val = '[^.\\\\/]'; + if (this.options.dot || (prev.type !== 'bos' && prev.type !== 'slash')) { + val = '[^\\\\/]'; + } - try { - let items = fs.readdirSync(dir); - callback(null, items); - } - catch (err) { - callback(err); - } -}; + if (node.parsed.slice(-1) === '(') { + var ch = node.rest.charAt(0); + if (ch === '!' || ch === '=' || ch === ':') { + return this.emit(node.val, node); + } + } -/** - * A facade around {@link fs.statSync} that allows it to be called - * the same way as {@link fs.stat}. - * - * @param {string} path - * @param {function} callback - */ -exports.stat = function (path, callback) { - // Make sure the callback is only called once - callback = call.once(callback); + if (node.val.length > 1) { + val += '{' + node.val.length + '}'; + } + return this.emit(val, node); + }) - try { - let stats = fs.statSync(path); - callback(null, stats); - } - catch (err) { - callback(err); - } -}; + /** + * Plus + */ -/** - * A facade around {@link fs.lstatSync} that allows it to be called - * the same way as {@link fs.lstat}. - * - * @param {string} path - * @param {function} callback - */ -exports.lstat = function (path, callback) { - // Make sure the callback is only called once - callback = call.once(callback); + .set('plus', function(node) { + var prev = node.parsed.slice(-1); + if (prev === ']' || prev === ')') { + return this.emit(node.val, node); + } + if (!this.output || (/[?*+]/.test(ch) && node.parent.type !== 'bracket')) { + return this.emit('\\+', node); + } + var ch = this.output.slice(-1); + if (/\w/.test(ch) && !node.inside) { + return this.emit('+\\+?', node); + } + return this.emit('+', node); + }) - try { - let stats = fs.lstatSync(path); - callback(null, stats); - } - catch (err) { - callback(err); - } -}; + /** + * globstar: '**' + */ + .set('globstar', function(node, nodes, i) { + if (!this.output) { + this.state.leadingGlobstar = true; + } -/***/ }), -/* 439 */ -/***/ (function(module, exports, __webpack_require__) { + var next = this.next(); + var prev = this.prev(); + var next2 = this.next(2); + var prev2 = this.prev(2); + var type = prev.type; + var val = node.val; -"use strict"; + if (prev.type === 'slash' && next.type === 'slash') { + if (prev2.type === 'text') { + this.output += '?'; + if (next2.type !== 'text') { + this.output += '\\b'; + } + } + } -module.exports = syncForEach; + var parsed = node.parsed; + if (parsed.charAt(0) === '!') { + parsed = parsed.slice(1); + } -/** - * A facade that allows {@link Array.forEach} to be called as though it were asynchronous. - * - * @param {array} array - The array to iterate over - * @param {function} iterator - The function to call for each item in the array - * @param {function} done - The function to call when all iterators have completed - */ -function syncForEach (array, iterator, done) { - array.forEach(item => { - iterator(item, () => { - // Note: No error-handling here because this is currently only ever called - // by DirectoryReader, which never passes an `error` parameter to the callback. - // Instead, DirectoryReader emits an "error" event if an error occurs. - }); - }); + var isInside = node.isInside.paren || node.isInside.brace; + if (parsed && type !== 'slash' && type !== 'bos' && !isInside) { + val = star; + } else { + val = this.options.dot !== true + ? '(?:(?!(?:\\/|^)\\.).)*?' + : '(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/))(?!\\.{2}).)*?'; + } - done(); -} + if ((type === 'slash' || type === 'bos') && this.options.dot !== true) { + val = '(?!\\.)' + val; + } + if (prev.type === 'slash' && next.type === 'slash' && prev2.type !== 'text') { + if (next2.type === 'text' || next2.type === 'star') { + node.addQmark = true; + } + } -/***/ }), -/* 440 */ -/***/ (function(module, exports, __webpack_require__) { + if (this.options.capture) { + val = '(' + val + ')'; + } -"use strict"; + return this.emit(val, node); + }) + /** + * Star: "*" + */ -module.exports = readdirAsync; + .set('star', function(node, nodes, i) { + var prior = nodes[i - 2] || {}; + var prev = this.prev(); + var next = this.next(); + var type = prev.type; -const maybe = __webpack_require__(441); -const DirectoryReader = __webpack_require__(109); + function isStart(n) { + return n.type === 'bos' || n.type === 'slash'; + } -let asyncFacade = { - fs: __webpack_require__(13), - forEach: __webpack_require__(157), - async: true -}; + if (this.output === '' && this.options.contains !== true) { + this.output = '(?!\\/)'; + } -/** - * Returns the buffered output from an asynchronous {@link DirectoryReader}, - * via an error-first callback or a {@link Promise}. - * - * @param {string} dir - * @param {object} [options] - * @param {function} [callback] - * @param {object} internalOptions - */ -function readdirAsync (dir, options, callback, internalOptions) { - if (typeof options === 'function') { - callback = options; - options = undefined; - } + if (type === 'bracket' && this.options.bash === false) { + var str = next && next.type === 'bracket' ? star : '*?'; + if (!prev.nodes || prev.nodes[1].type !== 'posix') { + return this.emit(str, node); + } + } - return maybe(callback, new Promise(((resolve, reject) => { - let results = []; + var prefix = !this.dotfiles && type !== 'text' && type !== 'escape' + ? (this.options.dot ? '(?!(?:^|\\/)\\.{1,2}(?:$|\\/))' : '(?!\\.)') + : ''; - internalOptions.facade = asyncFacade; + if (isStart(prev) || (isStart(prior) && type === 'not')) { + if (prefix !== '(?!\\.)') { + prefix += '(?!(\\.{2}|\\.\\/))(?=.)'; + } else { + prefix += '(?=.)'; + } + } else if (prefix === '(?!\\.)') { + prefix = ''; + } - let reader = new DirectoryReader(dir, options, internalOptions); - let stream = reader.stream; + if (prev.type === 'not' && prior.type === 'bos' && this.options.dot === true) { + this.output = '(?!\\.)' + this.output; + } - stream.on('error', err => { - reject(err); - stream.pause(); - }); - stream.on('data', result => { - results.push(result); - }); - stream.on('end', () => { - resolve(results); - }); - }))); -} + var output = prefix + star; + if (this.options.capture) { + output = '(' + output + ')'; + } + return this.emit(output, node); + }) -/***/ }), -/* 441 */ -/***/ (function(module, exports, __webpack_require__) { + /** + * Text + */ -"use strict"; + .set('text', function(node) { + return this.emit(node.val, node); + }) + /** + * End-of-string + */ -var next = (global.process && process.nextTick) || global.setImmediate || function (f) { - setTimeout(f, 0) -} + .set('eos', function(node) { + var prev = this.prev(); + var val = node.val; -module.exports = function maybe (cb, promise) { - if (cb) { - promise - .then(function (result) { - next(function () { cb(null, result) }) - }, function (err) { - next(function () { cb(err) }) - }) - return undefined - } - else { - return promise + this.output = '(?:(?:\\.(?:\\/|\\\\))(?=.))?' + this.output; + if (this.state.metachar && prev.type !== 'qmark' && prev.type !== 'slash') { + val += (this.options.contains ? '(?:\\/|\\\\)?' : '(?:(?:\\/|\\\\)|$)'); + } + + return this.emit(val, node); + }); + + /** + * Allow custom compilers to be passed on options + */ + + if (options && typeof options.compilers === 'function') { + options.compilers(nanomatch.compiler); } -} +}; + /***/ }), -/* 442 */ +/* 528 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -module.exports = readdirStream; +var regexNot = __webpack_require__(401); +var toRegex = __webpack_require__(390); +var isOdd = __webpack_require__(529); -const DirectoryReader = __webpack_require__(109); +/** + * Characters to use in negation regex (we want to "not" match + * characters that are matched by other parsers) + */ -let streamFacade = { - fs: __webpack_require__(13), - forEach: __webpack_require__(157), - async: true -}; +var cached; +var NOT_REGEX = '[!*+?$^"\'.\\\\/\\[]+'; +var not = createTextRegex(NOT_REGEX); /** - * Returns the {@link stream.Readable} of an asynchronous {@link DirectoryReader}. - * - * @param {string} dir - * @param {object} [options] - * @param {object} internalOptions + * Nanomatch parsers */ -function readdirStream (dir, options, internalOptions) { - internalOptions.facade = streamFacade; - let reader = new DirectoryReader(dir, options, internalOptions); - return reader.stream; -} +module.exports = function(nanomatch, options) { + var parser = nanomatch.parser; + var opts = parser.options; + parser.state = { + slashes: 0, + paths: [] + }; -/***/ }), -/* 443 */ -/***/ (function(module, exports, __webpack_require__) { + parser.ast.state = parser.state; + parser -"use strict"; + /** + * Beginning-of-string + */ + + .capture('prefix', function() { + if (this.parsed) return; + var pos = this.position(); + var m = this.match(/^\.[\\/]/); + if (!m) return; + this.state.strictOpen = !!this.options.strictOpen; + this.state.addPrefix = true; + }) -Object.defineProperty(exports, "__esModule", { value: true }); -var arrayUtils = __webpack_require__(158); -var pathUtils = __webpack_require__(444); -var patternUtils = __webpack_require__(105); -var DeepFilter = /** @class */ (function () { - function DeepFilter(options, micromatchOptions) { - this.options = options; - this.micromatchOptions = micromatchOptions; - } /** - * Returns filter for directories. + * Escape: "\\." */ - DeepFilter.prototype.getFilter = function (positive, negative) { - var _this = this; - var depth = this.getMaxDeth(positive); - var negativeRe = patternUtils.convertPatternsToRe(negative, this.micromatchOptions); - return function (entry) { return _this.filter(entry, negativeRe, depth); }; - }; + + .capture('escape', function() { + if (this.isInside('bracket')) return; + var pos = this.position(); + var m = this.match(/^(?:\\(.)|([$^]))/); + if (!m) return; + + return pos({ + type: 'escape', + val: m[2] || m[1] + }); + }) + /** - * Returns true if directory must be read. + * Quoted strings */ - DeepFilter.prototype.filter = function (entry, negativeRe, depth) { - // Skip reading, depending on the nesting level - if (!this.options.deep || this.skipByDeepOption(entry) || this.skipByPatternDepth(entry, depth)) { - return false; - } - // Skip reading if the directory is symlink and we don't want expand symlinks - if (this.isFollowedSymlink(entry)) { - return false; - } - // Skip reading if the directory name starting with a period and is not expected - if (this.isFollowedDotDirectory(entry)) { - return false; - } - // Skip by negative patterns - if (patternUtils.matchAny(entry.path, negativeRe)) { - return false; - } - return true; - }; + + .capture('quoted', function() { + var pos = this.position(); + var m = this.match(/^["']/); + if (!m) return; + + var quote = m[0]; + if (this.input.indexOf(quote) === -1) { + return pos({ + type: 'escape', + val: quote + }); + } + + var tok = advanceTo(this.input, quote); + this.consume(tok.len); + + return pos({ + type: 'quoted', + val: tok.esc + }); + }) + /** - * Returns max depth for reading. + * Negations: "!" */ - DeepFilter.prototype.getMaxDeth = function (positive) { - var globstar = positive.some(patternUtils.hasGlobStar); - var patternDepths = positive.map(patternUtils.getDepth); - return globstar ? Infinity : arrayUtils.max(patternDepths); - }; + + .capture('not', function() { + var parsed = this.parsed; + var pos = this.position(); + var m = this.match(this.notRegex || /^\!+/); + if (!m) return; + var val = m[0]; + + var isNegated = isOdd(val.length); + if (parsed === '' && !isNegated) { + val = ''; + } + + // if nothing has been parsed, we know `!` is at the start, + // so we need to wrap the result in a negation regex + if (parsed === '' && isNegated && this.options.nonegate !== true) { + this.bos.val = '(?!^(?:'; + this.append = ')$).*'; + val = ''; + } + return pos({ + type: 'not', + val: val + }); + }) + /** - * Returns true for dot directories if the «dot» option is enabled. + * Dot: "." */ - DeepFilter.prototype.isFollowedDotDirectory = function (entry) { - return !this.options.dot && pathUtils.isDotDirectory(entry.path); - }; + + .capture('dot', function() { + var parsed = this.parsed; + var pos = this.position(); + var m = this.match(/^\.+/); + if (!m) return; + + var val = m[0]; + this.state.dot = val === '.' && (parsed === '' || parsed.slice(-1) === '/'); + + return pos({ + type: 'dot', + dotfiles: this.state.dot, + val: val + }); + }) + /** - * Returns true for symlinked directories if the «followSymlinks» option is enabled. + * Plus: "+" */ - DeepFilter.prototype.isFollowedSymlink = function (entry) { - return !this.options.followSymlinkedDirectories && entry.isSymbolicLink(); - }; + + .capture('plus', /^\+(?!\()/) + /** - * Returns true when the «deep» options is number and entry depth greater that the option value. + * Question mark: "?" */ - DeepFilter.prototype.skipByDeepOption = function (entry) { - return typeof this.options.deep === 'number' && entry.depth > this.options.deep; - }; + + .capture('qmark', function() { + var parsed = this.parsed; + var pos = this.position(); + var m = this.match(/^\?+(?!\()/); + if (!m) return; + + this.state.metachar = true; + this.state.qmark = true; + + return pos({ + type: 'qmark', + parsed: parsed, + val: m[0] + }); + }) + /** - * Return true when depth parameter is not an Infinity and entry depth greater that the parameter value. + * Globstar: "**" */ - DeepFilter.prototype.skipByPatternDepth = function (entry, depth) { - return depth !== Infinity && entry.depth > depth; - }; - return DeepFilter; -}()); -exports.default = DeepFilter; + .capture('globstar', function() { + var parsed = this.parsed; + var pos = this.position(); + var m = this.match(/^\*{2}(?![*(])(?=[,\/)]|$)/); + if (!m) return; -/***/ }), -/* 444 */ -/***/ (function(module, exports, __webpack_require__) { + var type = opts.noglobstar !== true ? 'globstar' : 'star'; + var node = pos({type: type, parsed: parsed}); -"use strict"; + while (this.input.slice(0, 4) === '/**/') { + this.input = this.input.slice(3); + } -Object.defineProperty(exports, "__esModule", { value: true }); -/** - * Returns true if the last partial of the path starting with a period. - */ -function isDotDirectory(path) { - var pathPartials = path.split('/'); - var lastPathPartial = pathPartials[pathPartials.length - 1]; - return lastPathPartial.startsWith('.'); -} -exports.isDotDirectory = isDotDirectory; + node.isInside = { + brace: this.isInside('brace'), + paren: this.isInside('paren') + }; + if (type === 'globstar') { + this.state.globstar = true; + node.val = '**'; -/***/ }), -/* 445 */ -/***/ (function(module, exports, __webpack_require__) { + } else { + this.state.star = true; + node.val = '*'; + } -"use strict"; + this.state.metachar = true; + return node; + }) -Object.defineProperty(exports, "__esModule", { value: true }); -var patternUtils = __webpack_require__(105); -var DeepFilter = /** @class */ (function () { - function DeepFilter(options, micromatchOptions) { - this.options = options; - this.micromatchOptions = micromatchOptions; - this.index = new Map(); - } - /** - * Returns filter for directories. - */ - DeepFilter.prototype.getFilter = function (positive, negative) { - var _this = this; - var positiveRe = patternUtils.convertPatternsToRe(positive, this.micromatchOptions); - var negativeRe = patternUtils.convertPatternsToRe(negative, this.micromatchOptions); - return function (entry) { return _this.filter(entry, positiveRe, negativeRe); }; - }; /** - * Returns true if entry must be added to result. + * Star: "*" */ - DeepFilter.prototype.filter = function (entry, positiveRe, negativeRe) { - var entryPath = entry.path; - // Exclude duplicate results - if (this.options.unique) { - if (this.isDuplicateEntry(entry)) { - return false; - } - this.createIndexRecord(entry); - } - // Mark directory by the final slash. Need to micromatch to support «directory/**» patterns - if (entry.isDirectory()) { - entryPath += '/'; - } - // Filter directories that will be excluded by deep filter - if (entry.isDirectory() && patternUtils.matchAny(entryPath, negativeRe)) { - return false; - } - // Filter files and directories by options - if (this.onlyFileFilter(entry) || this.onlyDirectoryFilter(entry)) { - return false; - } - return patternUtils.match(entryPath, positiveRe, negativeRe); - }; + + .capture('star', function() { + var pos = this.position(); + var starRe = /^(?:\*(?![*(])|[*]{3,}(?!\()|[*]{2}(?![(\/]|$)|\*(?=\*\())/; + var m = this.match(starRe); + if (!m) return; + + this.state.metachar = true; + this.state.star = true; + return pos({ + type: 'star', + val: m[0] + }); + }) + /** - * Return true if the entry already has in the cross reader index. + * Slash: "/" */ - DeepFilter.prototype.isDuplicateEntry = function (entry) { - return this.index.has(entry.path); - }; + + .capture('slash', function() { + var pos = this.position(); + var m = this.match(/^\//); + if (!m) return; + + this.state.slashes++; + return pos({ + type: 'slash', + val: m[0] + }); + }) + /** - * Create record in the cross reader index. + * Backslash: "\\" */ - DeepFilter.prototype.createIndexRecord = function (entry) { - this.index.set(entry.path, undefined); - }; + + .capture('backslash', function() { + var pos = this.position(); + var m = this.match(/^\\(?![*+?(){}[\]'"])/); + if (!m) return; + + var val = m[0]; + + if (this.isInside('bracket')) { + val = '\\'; + } else if (val.length > 1) { + val = '\\\\'; + } + + return pos({ + type: 'backslash', + val: val + }); + }) + /** - * Returns true for non-files if the «onlyFiles» option is enabled. + * Square: "[.]" */ - DeepFilter.prototype.onlyFileFilter = function (entry) { - return this.options.onlyFiles && !entry.isFile(); - }; + + .capture('square', function() { + if (this.isInside('bracket')) return; + var pos = this.position(); + var m = this.match(/^\[([^!^\\])\]/); + if (!m) return; + + return pos({ + type: 'square', + val: m[1] + }); + }) + /** - * Returns true for non-directories if the «onlyDirectories» option is enabled. + * Brackets: "[...]" (basic, this can be overridden by other parsers) */ - DeepFilter.prototype.onlyDirectoryFilter = function (entry) { - return this.options.onlyDirectories && !entry.isDirectory(); - }; - return DeepFilter; -}()); -exports.default = DeepFilter; + .capture('bracket', function() { + var pos = this.position(); + var m = this.match(/^(?:\[([!^]?)([^\]]+|\]\-)(\]|[^*+?]+)|\[)/); + if (!m) return; -/***/ }), -/* 446 */ -/***/ (function(module, exports, __webpack_require__) { + var val = m[0]; + var negated = m[1] ? '^' : ''; + var inner = (m[2] || '').replace(/\\\\+/, '\\\\'); + var close = m[3] || ''; -"use strict"; + if (m[2] && inner.length < m[2].length) { + val = val.replace(/\\\\+/, '\\\\'); + } + + var esc = this.input.slice(0, 2); + if (inner === '' && esc === '\\]') { + inner += esc; + this.consume(2); + + var str = this.input; + var idx = -1; + var ch; + + while ((ch = str[++idx])) { + this.consume(1); + if (ch === ']') { + close = ch; + break; + } + inner += ch; + } + } + + return pos({ + type: 'bracket', + val: val, + escaped: close !== ']', + negated: negated, + inner: inner, + close: close + }); + }) -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var stream = __webpack_require__(39); -var readdir = __webpack_require__(108); -var reader_1 = __webpack_require__(111); -var TransformStream = /** @class */ (function (_super) { - __extends(TransformStream, _super); - function TransformStream(reader) { - var _this = _super.call(this, { objectMode: true }) || this; - _this.reader = reader; - return _this; - } - TransformStream.prototype._transform = function (entry, _encoding, callback) { - callback(null, this.reader.transform(entry)); - }; - return TransformStream; -}(stream.Transform)); -var ReaderStream = /** @class */ (function (_super) { - __extends(ReaderStream, _super); - function ReaderStream() { - return _super !== null && _super.apply(this, arguments) || this; - } - /** - * Returns founded paths. - */ - ReaderStream.prototype.api = function (root, options) { - return readdir.readdirStreamStat(root, options); - }; /** - * Use stream API to read entries for Task. + * Text */ - ReaderStream.prototype.read = function (task) { - var _this = this; - var root = this.getRootDirectory(task); - var options = this.getReaderOptions(task); - var transform = new TransformStream(this); - var readable = this.api(root, options); - return readable - .once('error', function (err) { return _this.isEnoentCodeError(err) ? null : transform.emit('error', err); }) - .pipe(transform); - }; - return ReaderStream; -}(reader_1.default)); -exports.default = ReaderStream; + .capture('text', function() { + if (this.isInside('bracket')) return; + var pos = this.position(); + var m = this.match(not); + if (!m || !m[0]) return; -/***/ }), -/* 447 */ -/***/ (function(module, exports, __webpack_require__) { + return pos({ + type: 'text', + val: m[0] + }); + }); -"use strict"; + /** + * Allow custom parsers to be passed on options + */ -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var readdir = __webpack_require__(108); -var reader_1 = __webpack_require__(111); -var ReaderSync = /** @class */ (function (_super) { - __extends(ReaderSync, _super); - function ReaderSync() { - return _super !== null && _super.apply(this, arguments) || this; + if (options && typeof options.parsers === 'function') { + options.parsers(nanomatch.parser); + } +}; + +/** + * Advance to the next non-escaped character + */ + +function advanceTo(input, endChar) { + var ch = input.charAt(0); + var tok = { len: 1, val: '', esc: '' }; + var idx = 0; + + function advance() { + if (ch !== '\\') { + tok.esc += '\\' + ch; + tok.val += ch; } - /** - * Returns founded paths. - */ - ReaderSync.prototype.api = function (root, options) { - return readdir.readdirSyncStat(root, options); - }; - /** - * Use sync API to read entries for Task. - */ - ReaderSync.prototype.read = function (task) { - var root = this.getRootDirectory(task); - var options = this.getReaderOptions(task); - try { - var entries = this.api(root, options); - return entries.map(this.transform, this); - } - catch (err) { - if (this.isEnoentCodeError(err)) { - return []; - } - throw err; - } - }; - return ReaderSync; -}(reader_1.default)); -exports.default = ReaderSync; + ch = input.charAt(++idx); + tok.len++; -/***/ }), -/* 448 */ -/***/ (function(module, exports, __webpack_require__) { + if (ch === '\\') { + advance(); + advance(); + } + } -"use strict"; + while (ch && ch !== endChar) { + advance(); + } + return tok; +} -const path = __webpack_require__(5); -const arrify = __webpack_require__(133); -const pathType = __webpack_require__(122); +/** + * Create text regex + */ -const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; -const getPath = filepath => filepath[0] === '!' ? filepath.slice(1) : filepath; +function createTextRegex(pattern) { + if (cached) return cached; + var opts = {contains: true, strictClose: false}; + var not = regexNot.create(pattern, opts); + var re = toRegex('^(?:[*]\\(|' + not + ')', opts); + return (cached = re); +} -const addExtensions = (file, extensions) => { - if (path.extname(file)) { - return `**/${file}`; - } +/** + * Expose negation string + */ - return `**/${file}.${getExtensions(extensions)}`; -}; +module.exports.not = NOT_REGEX; -const getGlob = (dir, opts) => { - opts = Object.assign({}, opts); - if (opts.files && !Array.isArray(opts.files)) { - throw new TypeError(`\`options.files\` must be an \`Array\`, not \`${typeof opts.files}\``); - } +/***/ }), +/* 529 */ +/***/ (function(module, exports, __webpack_require__) { - if (opts.extensions && !Array.isArray(opts.extensions)) { - throw new TypeError(`\`options.extensions\` must be an \`Array\`, not \`${typeof opts.extensions}\``); - } +"use strict"; +/*! + * is-odd + * + * Copyright (c) 2015-2017, Jon Schlinkert. + * Released under the MIT License. + */ - if (opts.files && opts.extensions) { - return opts.files.map(x => path.join(dir, addExtensions(x, opts.extensions))); - } else if (opts.files) { - return opts.files.map(x => path.join(dir, `**/${x}`)); - } else if (opts.extensions) { - return [path.join(dir, `**/*.${getExtensions(opts.extensions)}`)]; - } - return [path.join(dir, '**')]; -}; -module.exports = (input, opts) => { - return Promise.all(arrify(input).map(x => pathType.dir(getPath(x)) - .then(isDir => isDir ? getGlob(x, opts) : x))) - .then(globs => [].concat.apply([], globs)); -}; +var isNumber = __webpack_require__(420); -module.exports.sync = (input, opts) => { - const globs = arrify(input).map(x => pathType.dirSync(getPath(x)) ? getGlob(x, opts) : x); - return [].concat.apply([], globs); +module.exports = function isOdd(i) { + if (!isNumber(i)) { + throw new TypeError('is-odd expects a number.'); + } + if (Number(i) !== Math.floor(i)) { + throw new RangeError('is-odd expects an integer.'); + } + return !!(~~i & 1); }; /***/ }), -/* 449 */ +/* 530 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = new (__webpack_require__(531))(); + + +/***/ }), +/* 531 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +/*! + * fragment-cache + * + * Copyright (c) 2016-2017, Jon Schlinkert. + * Released under the MIT License. + */ -const fs = __webpack_require__(13); -const path = __webpack_require__(5); -const fastGlob = __webpack_require__(134); -const gitIgnore = __webpack_require__(450); -const pify = __webpack_require__(451); -const slash = __webpack_require__(452); -const DEFAULT_IGNORE = [ - '**/node_modules/**', - '**/bower_components/**', - '**/flow-typed/**', - '**/coverage/**', - '**/.git' -]; -const readFileP = pify(fs.readFile); +var MapCache = __webpack_require__(523); -const mapGitIgnorePatternTo = base => ignore => { - if (ignore.startsWith('!')) { - return '!' + path.posix.join(base, ignore.substr(1)); - } +/** + * Create a new `FragmentCache` with an optional object to use for `caches`. + * + * ```js + * var fragment = new FragmentCache(); + * ``` + * @name FragmentCache + * @param {String} `cacheName` + * @return {Object} Returns the [map-cache][] instance. + * @api public + */ - return path.posix.join(base, ignore); -}; +function FragmentCache(caches) { + this.caches = caches || {}; +} -const parseGitIgnore = (content, opts) => { - const base = slash(path.relative(opts.cwd, path.dirname(opts.fileName))); +/** + * Prototype + */ - return content - .split(/\r?\n/) - .filter(Boolean) - .filter(l => l.charAt(0) !== '#') - .map(mapGitIgnorePatternTo(base)); -}; +FragmentCache.prototype = { -const reduceIgnore = files => { - return files.reduce((ignores, file) => { - ignores.add(parseGitIgnore(file.content, { - cwd: file.cwd, - fileName: file.filePath - })); - return ignores; - }, gitIgnore()); -}; + /** + * Get cache `name` from the `fragment.caches` object. Creates a new + * `MapCache` if it doesn't already exist. + * + * ```js + * var cache = fragment.cache('files'); + * console.log(fragment.caches.hasOwnProperty('files')); + * //=> true + * ``` + * @name .cache + * @param {String} `cacheName` + * @return {Object} Returns the [map-cache][] instance. + * @api public + */ -const getIsIgnoredPredecate = (ignores, cwd) => { - return p => ignores.ignores(slash(path.relative(cwd, p))); -}; + cache: function(cacheName) { + return this.caches[cacheName] || (this.caches[cacheName] = new MapCache()); + }, -const getFile = (file, cwd) => { - const filePath = path.join(cwd, file); - return readFileP(filePath, 'utf8') - .then(content => ({ - content, - cwd, - filePath - })); -}; + /** + * Set a value for property `key` on cache `name` + * + * ```js + * fragment.set('files', 'somefile.js', new File({path: 'somefile.js'})); + * ``` + * @name .set + * @param {String} `name` + * @param {String} `key` Property name to set + * @param {any} `val` The value of `key` + * @return {Object} The cache instance for chaining + * @api public + */ -const getFileSync = (file, cwd) => { - const filePath = path.join(cwd, file); - const content = fs.readFileSync(filePath, 'utf8'); + set: function(cacheName, key, val) { + var cache = this.cache(cacheName); + cache.set(key, val); + return cache; + }, - return { - content, - cwd, - filePath - }; -}; + /** + * Returns true if a non-undefined value is set for `key` on fragment cache `name`. + * + * ```js + * var cache = fragment.cache('files'); + * cache.set('somefile.js'); + * + * console.log(cache.has('somefile.js')); + * //=> true + * + * console.log(cache.has('some-other-file.js')); + * //=> false + * ``` + * @name .has + * @param {String} `name` Cache name + * @param {String} `key` Optionally specify a property to check for on cache `name` + * @return {Boolean} + * @api public + */ -const normalizeOpts = opts => { - opts = opts || {}; - const ignore = opts.ignore || []; - const cwd = opts.cwd || process.cwd(); - return {ignore, cwd}; -}; + has: function(cacheName, key) { + return typeof this.get(cacheName, key) !== 'undefined'; + }, -module.exports = o => { - const opts = normalizeOpts(o); + /** + * Get `name`, or if specified, the value of `key`. Invokes the [cache]() method, + * so that cache `name` will be created it doesn't already exist. If `key` is not passed, + * the entire cache (`name`) is returned. + * + * ```js + * var Vinyl = require('vinyl'); + * var cache = fragment.cache('files'); + * cache.set('somefile.js', new Vinyl({path: 'somefile.js'})); + * console.log(cache.get('somefile.js')); + * //=> + * ``` + * @name .get + * @param {String} `name` + * @return {Object} Returns cache `name`, or the value of `key` if specified + * @api public + */ - return fastGlob('**/.gitignore', {ignore: DEFAULT_IGNORE.concat(opts.ignore), cwd: opts.cwd}) - .then(paths => Promise.all(paths.map(file => getFile(file, opts.cwd)))) - .then(files => reduceIgnore(files)) - .then(ignores => getIsIgnoredPredecate(ignores, opts.cwd)); + get: function(name, key) { + var cache = this.cache(name); + if (typeof key === 'string') { + return cache.get(key); + } + return cache; + } }; -module.exports.sync = o => { - const opts = normalizeOpts(o); +/** + * Expose `FragmentCache` + */ - const paths = fastGlob.sync('**/.gitignore', {ignore: DEFAULT_IGNORE.concat(opts.ignore), cwd: opts.cwd}); - const files = paths.map(file => getFileSync(file, opts.cwd)); - const ignores = reduceIgnore(files); - return getIsIgnoredPredecate(ignores, opts.cwd); -}; +exports = module.exports = FragmentCache; /***/ }), -/* 450 */ +/* 532 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -module.exports = function () { - return new IgnoreBase(); -}; - -// A simple implementation of make-array -function make_array(subject) { - return Array.isArray(subject) ? subject : [subject]; -} +var utils = module.exports; +var path = __webpack_require__(16); -var REGEX_BLANK_LINE = /^\s+$/; -var REGEX_LEADING_EXCAPED_EXCLAMATION = /^\\\!/; -var REGEX_LEADING_EXCAPED_HASH = /^\\#/; -var SLASH = '/'; -var KEY_IGNORE = typeof Symbol !== 'undefined' ? Symbol.for('node-ignore') -/* istanbul ignore next */ -: 'node-ignore'; +/** + * Module dependencies + */ -var IgnoreBase = function () { - function IgnoreBase() { - _classCallCheck(this, IgnoreBase); +var Snapdragon = __webpack_require__(429); +utils.define = __webpack_require__(403); +utils.diff = __webpack_require__(533); +utils.extend = __webpack_require__(399); +utils.pick = __webpack_require__(534); +utils.typeOf = __webpack_require__(535); +utils.unique = __webpack_require__(402); - this._rules = []; - this[KEY_IGNORE] = true; - this._initCache(); - } +/** + * Returns true if the given value is effectively an empty string + */ - _createClass(IgnoreBase, [{ - key: '_initCache', - value: function _initCache() { - this._cache = {}; - } +utils.isEmptyString = function(val) { + return String(val) === '' || String(val) === './'; +}; - // @param {Array.|string|Ignore} pattern +/** + * Returns true if the platform is windows, or `path.sep` is `\\`. + * This is defined as a function to allow `path.sep` to be set in unit tests, + * or by the user, if there is a reason to do so. + * @return {Boolean} + */ - }, { - key: 'add', - value: function add(pattern) { - this._added = false; +utils.isWindows = function() { + return path.sep === '\\' || process.platform === 'win32'; +}; - if (typeof pattern === 'string') { - pattern = pattern.split(/\r?\n/g); - } +/** + * Return the last element from an array + */ - make_array(pattern).forEach(this._addPattern, this); +utils.last = function(arr, n) { + return arr[arr.length - (n || 1)]; +}; - // Some rules have just added to the ignore, - // making the behavior changed. - if (this._added) { - this._initCache(); - } +/** + * Get the `Snapdragon` instance to use + */ - return this; - } +utils.instantiate = function(ast, options) { + var snapdragon; + // if an instance was created by `.parse`, use that instance + if (utils.typeOf(ast) === 'object' && ast.snapdragon) { + snapdragon = ast.snapdragon; + // if the user supplies an instance on options, use that instance + } else if (utils.typeOf(options) === 'object' && options.snapdragon) { + snapdragon = options.snapdragon; + // create a new instance + } else { + snapdragon = new Snapdragon(options); + } - // legacy + utils.define(snapdragon, 'parse', function(str, options) { + var parsed = Snapdragon.prototype.parse.apply(this, arguments); + parsed.input = str; - }, { - key: 'addPattern', - value: function addPattern(pattern) { - return this.add(pattern); - } - }, { - key: '_addPattern', - value: function _addPattern(pattern) { - // #32 - if (pattern && pattern[KEY_IGNORE]) { - this._rules = this._rules.concat(pattern._rules); - this._added = true; - return; - } + // escape unmatched brace/bracket/parens + var last = this.parser.stack.pop(); + if (last && this.options.strictErrors !== true) { + var open = last.nodes[0]; + var inner = last.nodes[1]; + if (last.type === 'bracket') { + if (inner.val.charAt(0) === '[') { + inner.val = '\\' + inner.val; + } - if (this._checkPattern(pattern)) { - var rule = this._createRule(pattern); - this._added = true; - this._rules.push(rule); + } else { + open.val = '\\' + open.val; + var sibling = open.parent.nodes[1]; + if (sibling.type === 'star') { + sibling.loose = true; + } } } - }, { - key: '_checkPattern', - value: function _checkPattern(pattern) { - // > A blank line matches no files, so it can serve as a separator for readability. - return pattern && typeof pattern === 'string' && !REGEX_BLANK_LINE.test(pattern) - // > A line starting with # serves as a comment. - && pattern.indexOf('#') !== 0; - } - }, { - key: 'filter', - value: function filter(paths) { - var _this = this; + // add non-enumerable parser reference + utils.define(parsed, 'parser', this.parser); + return parsed; + }); - return make_array(paths).filter(function (path) { - return _this._filter(path); - }); - } - }, { - key: 'createFilter', - value: function createFilter() { - var _this2 = this; + return snapdragon; +}; - return function (path) { - return _this2._filter(path); - }; - } - }, { - key: 'ignores', - value: function ignores(path) { - return !this._filter(path); +/** + * Create the key to use for memoization. The key is generated + * by iterating over the options and concatenating key-value pairs + * to the pattern string. + */ + +utils.createKey = function(pattern, options) { + if (typeof options === 'undefined') { + return pattern; + } + var key = pattern; + for (var prop in options) { + if (options.hasOwnProperty(prop)) { + key += ';' + prop + '=' + String(options[prop]); } - }, { - key: '_createRule', - value: function _createRule(pattern) { - var origin = pattern; - var negative = false; + } + return key; +}; - // > An optional prefix "!" which negates the pattern; - if (pattern.indexOf('!') === 0) { - negative = true; - pattern = pattern.substr(1); - } +/** + * Cast `val` to an array + * @return {Array} + */ - pattern = pattern - // > Put a backslash ("\") in front of the first "!" for patterns that begin with a literal "!", for example, `"\!important!.txt"`. - .replace(REGEX_LEADING_EXCAPED_EXCLAMATION, '!') - // > Put a backslash ("\") in front of the first hash for patterns that begin with a hash. - .replace(REGEX_LEADING_EXCAPED_HASH, '#'); +utils.arrayify = function(val) { + if (typeof val === 'string') return [val]; + return val ? (Array.isArray(val) ? val : [val]) : []; +}; - var regex = make_regex(pattern, negative); +/** + * Return true if `val` is a non-empty string + */ - return { - origin: origin, - pattern: pattern, - negative: negative, - regex: regex - }; - } +utils.isString = function(val) { + return typeof val === 'string'; +}; - // @returns `Boolean` true if the `path` is NOT ignored +/** + * Return true if `val` is a non-empty string + */ - }, { - key: '_filter', - value: function _filter(path, slices) { - if (!path) { - return false; - } +utils.isRegex = function(val) { + return utils.typeOf(val) === 'regexp'; +}; - if (path in this._cache) { - return this._cache[path]; - } +/** + * Return true if `val` is a non-empty string + */ - if (!slices) { - // path/to/a.js - // ['path', 'to', 'a.js'] - slices = path.split(SLASH); - } +utils.isObject = function(val) { + return utils.typeOf(val) === 'object'; +}; - slices.pop(); +/** + * Escape regex characters in the given string + */ - return this._cache[path] = slices.length - // > It is not possible to re-include a file if a parent directory of that file is excluded. - // If the path contains a parent directory, check the parent first - ? this._filter(slices.join(SLASH) + SLASH, slices) && this._test(path) +utils.escapeRegex = function(str) { + return str.replace(/[-[\]{}()^$|*+?.\\\/\s]/g, '\\$&'); +}; - // Or only test the path - : this._test(path); - } +/** + * Combines duplicate characters in the provided `input` string. + * @param {String} `input` + * @returns {String} + */ - // @returns {Boolean} true if a file is NOT ignored +utils.combineDupes = function(input, patterns) { + patterns = utils.arrayify(patterns).join('|').split('|'); + patterns = patterns.map(function(s) { + return s.replace(/\\?([+*\\/])/g, '\\$1'); + }); + var substr = patterns.join('|'); + var regex = new RegExp('(' + substr + ')(?=\\1)', 'g'); + return input.replace(regex, ''); +}; - }, { - key: '_test', - value: function _test(path) { - // Explicitly define variable type by setting matched to `0` - var matched = 0; +/** + * Returns true if the given `str` has special characters + */ - this._rules.forEach(function (rule) { - // if matched = true, then we only test negative rules - // if matched = false, then we test non-negative rules - if (!(matched ^ rule.negative)) { - matched = rule.negative ^ rule.regex.test(path); - } - }); +utils.hasSpecialChars = function(str) { + return /(?:(?:(^|\/)[!.])|[*?+()|\[\]{}]|[+@]\()/.test(str); +}; - return !matched; - } - }]); +/** + * Normalize slashes in the given filepath. + * + * @param {String} `filepath` + * @return {String} + */ - return IgnoreBase; -}(); +utils.toPosixPath = function(str) { + return str.replace(/\\+/g, '/'); +}; -// > If the pattern ends with a slash, -// > it is removed for the purpose of the following description, -// > but it would only find a match with a directory. -// > In other words, foo/ will match a directory foo and paths underneath it, -// > but will not match a regular file or a symbolic link foo -// > (this is consistent with the way how pathspec works in general in Git). -// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' -// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call -// you could use option `mark: true` with `glob` +/** + * Strip backslashes before special characters in a string. + * + * @param {String} `str` + * @return {String} + */ -// '`foo/`' should not continue with the '`..`' +utils.unescape = function(str) { + return utils.toPosixPath(str.replace(/\\(?=[*+?!.])/g, '')); +}; +/** + * Strip the drive letter from a windows filepath + * @param {String} `fp` + * @return {String} + */ -var DEFAULT_REPLACER_PREFIX = [ +utils.stripDrive = function(fp) { + return utils.isWindows() ? fp.replace(/^[a-z]:[\\\/]+?/i, '/') : fp; +}; -// > Trailing spaces are ignored unless they are quoted with backslash ("\") -[ -// (a\ ) -> (a ) -// (a ) -> (a) -// (a \ ) -> (a ) -/\\?\s+$/, function (match) { - return match.indexOf('\\') === 0 ? ' ' : ''; -}], +/** + * Strip the prefix from a filepath + * @param {String} `fp` + * @return {String} + */ -// replace (\ ) with ' ' -[/\\\s/g, function () { - return ' '; -}], +utils.stripPrefix = function(str) { + if (str.charAt(0) === '.' && (str.charAt(1) === '/' || str.charAt(1) === '\\')) { + return str.slice(2); + } + return str; +}; -// Escape metacharacters -// which is written down by users but means special for regular expressions. +/** + * Returns true if `str` is a common character that doesn't need + * to be processed to be used for matching. + * @param {String} `str` + * @return {Boolean} + */ -// > There are 12 characters with special meanings: -// > - the backslash \, -// > - the caret ^, -// > - the dollar sign $, -// > - the period or dot ., -// > - the vertical bar or pipe symbol |, -// > - the question mark ?, -// > - the asterisk or star *, -// > - the plus sign +, -// > - the opening parenthesis (, -// > - the closing parenthesis ), -// > - and the opening square bracket [, -// > - the opening curly brace {, -// > These special characters are often called "metacharacters". -[/[\\\^$.|?*+()\[{]/g, function (match) { - return '\\' + match; -}], +utils.isSimpleChar = function(str) { + return str === '' || str === ' ' || str === '.'; +}; -// leading slash -[ +/** + * Returns true if the given str is an escaped or + * unescaped path character + */ -// > A leading slash matches the beginning of the pathname. -// > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". -// A leading slash matches the beginning of the pathname -/^\//, function () { - return '^'; -}], +utils.isSlash = function(str) { + return str === '/' || str === '\\/' || str === '\\' || str === '\\\\'; +}; -// replace special metacharacter slash after the leading slash -[/\//g, function () { - return '\\/'; -}], [ -// > A leading "**" followed by a slash means match in all directories. -// > For example, "**/foo" matches file or directory "foo" anywhere, -// > the same as pattern "foo". -// > "**/foo/bar" matches file or directory "bar" anywhere that is directly under directory "foo". -// Notice that the '*'s have been replaced as '\\*' -/^\^*\\\*\\\*\\\//, +/** + * Returns a function that returns true if the given + * pattern matches or contains a `filepath` + * + * @param {String} `pattern` + * @return {Function} + */ -// '**/foo' <-> 'foo' -function () { - return '^(?:.*\\/)?'; -}]]; +utils.matchPath = function(pattern, options) { + return (options && options.contains) + ? utils.containsPattern(pattern, options) + : utils.equalsPattern(pattern, options); +}; -var DEFAULT_REPLACER_SUFFIX = [ -// starting -[ -// there will be no leading '/' (which has been replaced by section "leading slash") -// If starts with '**', adding a '^' to the regular expression also works -/^(?=[^\^])/, function () { - return !/\/(?!$)/.test(this) - // > If the pattern does not contain a slash /, Git treats it as a shell glob pattern - // Actually, if there is only a trailing slash, git also treats it as a shell glob pattern - ? '(?:^|\\/)' +/** + * Returns true if the given (original) filepath or unixified path are equal + * to the given pattern. + */ - // > Otherwise, Git treats the pattern as a shell glob suitable for consumption by fnmatch(3) - : '^'; -}], +utils._equals = function(filepath, unixPath, pattern) { + return pattern === filepath || pattern === unixPath; +}; -// two globstars -[ -// Use lookahead assertions so that we could match more than one `'/**'` -/\\\/\\\*\\\*(?=\\\/|$)/g, +/** + * Returns true if the given (original) filepath or unixified path contain + * the given pattern. + */ -// Zero, one or several directories -// should not use '*', or it will be replaced by the next replacer +utils._contains = function(filepath, unixPath, pattern) { + return filepath.indexOf(pattern) !== -1 || unixPath.indexOf(pattern) !== -1; +}; -// Check if it is not the last `'/**'` -function (match, index, str) { - return index + 6 < str.length +/** + * Returns a function that returns true if the given + * pattern is the same as a given `filepath` + * + * @param {String} `pattern` + * @return {Function} + */ - // case: /**/ - // > A slash followed by two consecutive asterisks then a slash matches zero or more directories. - // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. - // '/**/' - ? '(?:\\/[^\\/]+)*' +utils.equalsPattern = function(pattern, options) { + var unixify = utils.unixify(options); + options = options || {}; - // case: /** - // > A trailing `"/**"` matches everything inside. + return function fn(filepath) { + var equal = utils._equals(filepath, unixify(filepath), pattern); + if (equal === true || options.nocase !== true) { + return equal; + } + var lower = filepath.toLowerCase(); + return utils._equals(lower, unixify(lower), pattern); + }; +}; - // #21: everything inside but it should not include the current folder - : '\\/.+'; -}], +/** + * Returns a function that returns true if the given + * pattern contains a `filepath` + * + * @param {String} `pattern` + * @return {Function} + */ -// intermediate wildcards -[ -// Never replace escaped '*' -// ignore rule '\*' will match the path '*' +utils.containsPattern = function(pattern, options) { + var unixify = utils.unixify(options); + options = options || {}; -// 'abc.*/' -> go -// 'abc.*' -> skip this rule -/(^|[^\\]+)\\\*(?=.+)/g, + return function(filepath) { + var contains = utils._contains(filepath, unixify(filepath), pattern); + if (contains === true || options.nocase !== true) { + return contains; + } + var lower = filepath.toLowerCase(); + return utils._contains(lower, unixify(lower), pattern); + }; +}; -// '*.js' matches '.js' -// '*.js' doesn't match 'abc' -function (match, p1) { - return p1 + '[^\\/]*'; -}], +/** + * Returns a function that returns true if the given + * regex matches the `filename` of a file path. + * + * @param {RegExp} `re` Matching regex + * @return {Function} + */ -// trailing wildcard -[/(\^|\\\/)?\\\*$/, function (match, p1) { - return (p1 - // '\^': - // '/*' does not match '' - // '/*' does not match everything +utils.matchBasename = function(re) { + return function(filepath) { + return re.test(filepath) || re.test(path.basename(filepath)); + }; +}; - // '\\\/': - // 'abc/*' does not match 'abc/' - ? p1 + '[^/]+' +/** + * Returns the given value unchanced. + * @return {any} + */ - // 'a*' matches 'a' - // 'a*' matches 'aa' - : '[^/]*') + '(?=$|\\/$)'; -}], [ -// unescape -/\\\\\\/g, function () { - return '\\'; -}]]; +utils.identity = function(val) { + return val; +}; -var POSITIVE_REPLACERS = [].concat(DEFAULT_REPLACER_PREFIX, [ +/** + * Determines the filepath to return based on the provided options. + * @return {any} + */ -// 'f' -// matches -// - /f(end) -// - /f/ -// - (start)f(end) -// - (start)f/ -// doesn't match -// - oof -// - foo -// pseudo: -// -> (^|/)f(/|$) +utils.value = function(str, unixify, options) { + if (options && options.unixify === false) { + return str; + } + if (options && typeof options.unixify === 'function') { + return options.unixify(str); + } + return unixify(str); +}; -// ending -[ -// 'js' will not match 'js.' -// 'ab' will not match 'abc' -/(?:[^*\/])$/, +/** + * Returns a function that normalizes slashes in a string to forward + * slashes, strips `./` from beginning of paths, and optionally unescapes + * special characters. + * @return {Function} + */ -// 'js*' will not match 'a.js' -// 'js/' will not match 'a.js' -// 'js' will match 'a.js' and 'a.js/' -function (match) { - return match + '(?=$|\\/)'; -}]], DEFAULT_REPLACER_SUFFIX); +utils.unixify = function(options) { + var opts = options || {}; + return function(filepath) { + if (opts.stripPrefix !== false) { + filepath = utils.stripPrefix(filepath); + } + if (opts.unescape === true) { + filepath = utils.unescape(filepath); + } + if (opts.unixify === true || utils.isWindows()) { + filepath = utils.toPosixPath(filepath); + } + return filepath; + }; +}; -var NEGATIVE_REPLACERS = [].concat(DEFAULT_REPLACER_PREFIX, [ -// #24, #38 -// The MISSING rule of [gitignore docs](https://git-scm.com/docs/gitignore) -// A negative pattern without a trailing wildcard should not -// re-include the things inside that directory. +/***/ }), +/* 533 */ +/***/ (function(module, exports, __webpack_require__) { -// eg: -// ['node_modules/*', '!node_modules'] -// should ignore `node_modules/a.js` -[/(?:[^*])$/, function (match) { - return match + '(?=$|\\/$)'; -}]], DEFAULT_REPLACER_SUFFIX); +"use strict"; +/*! + * arr-diff + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ -// A simple cache, because an ignore rule only has only one certain meaning -var cache = {}; -// @param {pattern} -function make_regex(pattern, negative) { - var r = cache[pattern]; - if (r) { - return r; + +module.exports = function diff(arr/*, arrays*/) { + var len = arguments.length; + var idx = 0; + while (++idx < len) { + arr = diffArray(arr, arguments[idx]); } + return arr; +}; - var replacers = negative ? NEGATIVE_REPLACERS : POSITIVE_REPLACERS; +function diffArray(one, two) { + if (!Array.isArray(two)) { + return one.slice(); + } - var source = replacers.reduce(function (prev, current) { - return prev.replace(current[0], current[1].bind(pattern)); - }, pattern); + var tlen = two.length + var olen = one.length; + var idx = -1; + var arr = []; - return cache[pattern] = new RegExp(source, 'i'); -} + while (++idx < olen) { + var ele = one[idx]; -// Windows -// -------------------------------------------------------------- -/* istanbul ignore if */ -if ( -// Detect `process` so that it can run in browsers. -typeof process !== 'undefined' && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === 'win32')) { + var hasEle = false; + for (var i = 0; i < tlen; i++) { + var val = two[i]; - var filter = IgnoreBase.prototype._filter; - var make_posix = function make_posix(str) { - return (/^\\\\\?\\/.test(str) || /[^\x00-\x80]+/.test(str) ? str : str.replace(/\\/g, '/') - ); - }; + if (ele === val) { + hasEle = true; + break; + } + } - IgnoreBase.prototype._filter = function (path, slices) { - path = make_posix(path); - return filter.call(this, path, slices); - }; + if (hasEle === false) { + arr.push(ele); + } + } + return arr; } /***/ }), -/* 451 */ +/* 534 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +/*! + * object.pick + * + * Copyright (c) 2014-2015 Jon Schlinkert, contributors. + * Licensed under the MIT License + */ -const processFn = (fn, opts) => function () { - const P = opts.promiseModule; - const args = new Array(arguments.length); - for (let i = 0; i < arguments.length; i++) { - args[i] = arguments[i]; - } +var isObject = __webpack_require__(416); - return new P((resolve, reject) => { - if (opts.errorFirst) { - args.push(function (err, result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); +module.exports = function pick(obj, keys) { + if (!isObject(obj) && typeof obj !== 'function') { + return {}; + } - for (let i = 1; i < arguments.length; i++) { - results[i - 1] = arguments[i]; - } + var res = {}; + if (typeof keys === 'string') { + if (keys in obj) { + res[keys] = obj[keys]; + } + return res; + } - if (err) { - results.unshift(err); - reject(results); - } else { - resolve(results); - } - } else if (err) { - reject(err); - } else { - resolve(result); - } - }); - } else { - args.push(function (result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); + var len = keys.length; + var idx = -1; - for (let i = 0; i < arguments.length; i++) { - results[i] = arguments[i]; - } + while (++idx < len) { + var key = keys[idx]; + if (key in obj) { + res[key] = obj[key]; + } + } + return res; +}; - resolve(results); - } else { - resolve(result); - } - }); - } - fn.apply(this, args); - }); -}; +/***/ }), +/* 535 */ +/***/ (function(module, exports) { -module.exports = (obj, opts) => { - opts = Object.assign({ - exclude: [/.+(Sync|Stream)$/], - errorFirst: true, - promiseModule: Promise - }, opts); +var toString = Object.prototype.toString; - const filter = key => { - const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); - return opts.include ? opts.include.some(match) : !opts.exclude.some(match); - }; +/** + * Get the native `typeof` a value. + * + * @param {*} `val` + * @return {*} Native javascript type + */ - let ret; - if (typeof obj === 'function') { - ret = function () { - if (opts.excludeMain) { - return obj.apply(this, arguments); - } +module.exports = function kindOf(val) { + var type = typeof val; - return processFn(obj, opts).apply(this, arguments); - }; - } else { - ret = Object.create(Object.getPrototypeOf(obj)); - } + // primitivies + if (type === 'undefined') { + return 'undefined'; + } + if (val === null) { + return 'null'; + } + if (val === true || val === false || val instanceof Boolean) { + return 'boolean'; + } + if (type === 'string' || val instanceof String) { + return 'string'; + } + if (type === 'number' || val instanceof Number) { + return 'number'; + } - for (const key in obj) { // eslint-disable-line guard-for-in - const x = obj[key]; - ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; - } + // functions + if (type === 'function' || val instanceof Function) { + if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') { + return 'generatorfunction'; + } + return 'function'; + } - return ret; -}; + // array + if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { + return 'array'; + } + // check for instances of RegExp and Date before calling `toString` + if (val instanceof RegExp) { + return 'regexp'; + } + if (val instanceof Date) { + return 'date'; + } -/***/ }), -/* 452 */ -/***/ (function(module, exports, __webpack_require__) { + // other objects + type = toString.call(val); -"use strict"; + if (type === '[object RegExp]') { + return 'regexp'; + } + if (type === '[object Date]') { + return 'date'; + } + if (type === '[object Arguments]') { + return 'arguments'; + } + if (type === '[object Error]') { + return 'error'; + } + if (type === '[object Promise]') { + return 'promise'; + } -module.exports = function (str) { - var isExtendedLengthPath = /^\\\\\?\\/.test(str); - var hasNonAscii = /[^\x00-\x80]+/.test(str); + // buffer + if (isBuffer(val)) { + return 'buffer'; + } - if (isExtendedLengthPath || hasNonAscii) { - return str; - } + // es6: Map, WeakMap, Set, WeakSet + if (type === '[object Set]') { + return 'set'; + } + if (type === '[object WeakSet]') { + return 'weakset'; + } + if (type === '[object Map]') { + return 'map'; + } + if (type === '[object WeakMap]') { + return 'weakmap'; + } + if (type === '[object Symbol]') { + return 'symbol'; + } + + if (type === '[object Map Iterator]') { + return 'mapiterator'; + } + if (type === '[object Set Iterator]') { + return 'setiterator'; + } + if (type === '[object String Iterator]') { + return 'stringiterator'; + } + if (type === '[object Array Iterator]') { + return 'arrayiterator'; + } + + // typed arrays + if (type === '[object Int8Array]') { + return 'int8array'; + } + if (type === '[object Uint8Array]') { + return 'uint8array'; + } + if (type === '[object Uint8ClampedArray]') { + return 'uint8clampedarray'; + } + if (type === '[object Int16Array]') { + return 'int16array'; + } + if (type === '[object Uint16Array]') { + return 'uint16array'; + } + if (type === '[object Int32Array]') { + return 'int32array'; + } + if (type === '[object Uint32Array]') { + return 'uint32array'; + } + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; + } - return str.replace(/\\/g, '/'); + // must be a plain object + return 'object'; }; +/** + * If you need to support Safari 5-7 (8-10 yr-old browser), + * take a look at https://github.com/feross/is-buffer + */ + +function isBuffer(val) { + return val.constructor + && typeof val.constructor.isBuffer === 'function' + && val.constructor.isBuffer(val); +} + /***/ }), -/* 453 */ +/* 536 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const path = __webpack_require__(5); -const fsConstants = __webpack_require__(13).constants; -const {Buffer} = __webpack_require__(454); -const CpFileError = __webpack_require__(159); -const fs = __webpack_require__(456); -const ProgressEmitter = __webpack_require__(458); -module.exports = (src, dest, opts) => { - if (!src || !dest) { - return Promise.reject(new CpFileError('`src` and `dest` required')); - } +/** + * Module dependencies + */ - opts = Object.assign({overwrite: true}, opts); +var extend = __webpack_require__(399); +var unique = __webpack_require__(402); +var toRegex = __webpack_require__(390); - const progressEmitter = new ProgressEmitter(path.resolve(src), path.resolve(dest)); +/** + * Local dependencies + */ - const promise = fs - .stat(src) - .then(stat => { - progressEmitter.size = stat.size; - }) - .then(() => fs.createReadStream(src)) - .then(read => fs.makeDir(path.dirname(dest)).then(() => read)) - .then(read => new Promise((resolve, reject) => { - const write = fs.createWriteStream(dest, {flags: opts.overwrite ? 'w' : 'wx'}); +var compilers = __webpack_require__(537); +var parsers = __webpack_require__(550); +var Extglob = __webpack_require__(552); +var utils = __webpack_require__(551); +var MAX_LENGTH = 1024 * 64; - read.on('data', () => { - progressEmitter.written = write.bytesWritten; - }); +/** + * Convert the given `extglob` pattern into a regex-compatible string. Returns + * an object with the compiled result and the parsed AST. + * + * ```js + * var extglob = require('extglob'); + * console.log(extglob('*.!(*a)')); + * //=> '(?!\\.)[^/]*?\\.(?!(?!\\.)[^/]*?a\\b).*?' + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {String} + * @api public + */ - write.on('error', err => { - if (!opts.overwrite && err.code === 'EEXIST') { - resolve(false); - return; - } +function extglob(pattern, options) { + return extglob.create(pattern, options).output; +} - reject(new CpFileError(`Cannot write to \`${dest}\`: ${err.message}`, err)); - }); +/** + * Takes an array of strings and an extglob pattern and returns a new + * array that contains only the strings that match the pattern. + * + * ```js + * var extglob = require('extglob'); + * console.log(extglob.match(['a.a', 'a.b', 'a.c'], '*.!(*a)')); + * //=> ['a.b', 'a.c'] + * ``` + * @param {Array} `list` Array of strings to match + * @param {String} `pattern` Extglob pattern + * @param {Object} `options` + * @return {Array} Returns an array of matches + * @api public + */ - write.on('close', () => { - progressEmitter.written = progressEmitter.size; - resolve(true); - }); +extglob.match = function(list, pattern, options) { + if (typeof pattern !== 'string') { + throw new TypeError('expected pattern to be a string'); + } - read.pipe(write); - })) - .then(updateStats => { - if (updateStats) { - return fs.lstat(src).then(stats => Promise.all([ - fs.utimes(dest, stats.atime, stats.mtime), - fs.chmod(dest, stats.mode), - fs.chown(dest, stats.uid, stats.gid) - ])); - } - }); + list = utils.arrayify(list); + var isMatch = extglob.matcher(pattern, options); + var len = list.length; + var idx = -1; + var matches = []; - promise.on = (...args) => { - progressEmitter.on(...args); - return promise; - }; + while (++idx < len) { + var ele = list[idx]; - return promise; -}; + if (isMatch(ele)) { + matches.push(ele); + } + } -const checkSrcIsFile = (stat, src) => { - if (stat.isDirectory()) { - throw Object.assign(new CpFileError(`EISDIR: illegal operation on a directory '${src}'`), { - errno: -21, - code: 'EISDIR', - src - }); - } -}; + // if no options were passed, uniquify results and return + if (typeof options === 'undefined') { + return unique(matches); + } -const fixupAttributes = (dest, stat) => { - fs.chmodSync(dest, stat.mode); - fs.chownSync(dest, stat.uid, stat.gid); + if (matches.length === 0) { + if (options.failglob === true) { + throw new Error('no matches found for "' + pattern + '"'); + } + if (options.nonull === true || options.nullglob === true) { + return [pattern.split('\\').join('')]; + } + } + + return options.nodupes !== false ? unique(matches) : matches; }; -const copySyncNative = (src, dest, opts) => { - const stat = fs.statSync(src); - checkSrcIsFile(stat, src); - fs.makeDirSync(path.dirname(dest)); +/** + * Returns true if the specified `string` matches the given + * extglob `pattern`. + * + * ```js + * var extglob = require('extglob'); + * + * console.log(extglob.isMatch('a.a', '*.!(*a)')); + * //=> false + * console.log(extglob.isMatch('a.b', '*.!(*a)')); + * //=> true + * ``` + * @param {String} `string` String to match + * @param {String} `pattern` Extglob pattern + * @param {String} `options` + * @return {Boolean} + * @api public + */ + +extglob.isMatch = function(str, pattern, options) { + if (typeof pattern !== 'string') { + throw new TypeError('expected pattern to be a string'); + } + + if (typeof str !== 'string') { + throw new TypeError('expected a string'); + } - const flags = opts.overwrite ? null : fsConstants.COPYFILE_EXCL; - try { - fs.copyFileSync(src, dest, flags); - } catch (err) { - if (!opts.overwrite && err.code === 'EEXIST') { - return; - } + if (pattern === str) { + return true; + } - throw err; - } + if (pattern === '' || pattern === ' ' || pattern === '.') { + return pattern === str; + } - fs.utimesSync(dest, stat.atime, stat.mtime); - fixupAttributes(dest, stat); + var isMatch = utils.memoize('isMatch', pattern, options, extglob.matcher); + return isMatch(str); }; -const copySyncFallback = (src, dest, opts) => { - let read; // eslint-disable-line prefer-const - let bytesRead; - let pos; - let write; - const BUF_LENGTH = 100 * 1024; - const buf = Buffer.alloc(BUF_LENGTH); - const readSync = pos => fs.readSync(read, buf, 0, BUF_LENGTH, pos, src); - const writeSync = () => fs.writeSync(write, buf, 0, bytesRead, undefined, dest); +/** + * Returns true if the given `string` contains the given pattern. Similar to `.isMatch` but + * the pattern can match any part of the string. + * + * ```js + * var extglob = require('extglob'); + * console.log(extglob.contains('aa/bb/cc', '*b')); + * //=> true + * console.log(extglob.contains('aa/bb/cc', '*d')); + * //=> false + * ``` + * @param {String} `str` The string to match. + * @param {String} `pattern` Glob pattern to use for matching. + * @param {Object} `options` + * @return {Boolean} Returns true if the patter matches any part of `str`. + * @api public + */ - read = fs.openSync(src, 'r'); - bytesRead = readSync(0); - pos = bytesRead; - fs.makeDirSync(path.dirname(dest)); +extglob.contains = function(str, pattern, options) { + if (typeof str !== 'string') { + throw new TypeError('expected a string'); + } - try { - write = fs.openSync(dest, opts.overwrite ? 'w' : 'wx'); - } catch (err) { - if (!opts.overwrite && err.code === 'EEXIST') { - return; - } + if (pattern === '' || pattern === ' ' || pattern === '.') { + return pattern === str; + } - throw err; - } + var opts = extend({}, options, {contains: true}); + opts.strictClose = false; + opts.strictOpen = false; + return extglob.isMatch(str, pattern, opts); +}; - writeSync(); +/** + * Takes an extglob pattern and returns a matcher function. The returned + * function takes the string to match as its only argument. + * + * ```js + * var extglob = require('extglob'); + * var isMatch = extglob.matcher('*.!(*a)'); + * + * console.log(isMatch('a.a')); + * //=> false + * console.log(isMatch('a.b')); + * //=> true + * ``` + * @param {String} `pattern` Extglob pattern + * @param {String} `options` + * @return {Boolean} + * @api public + */ - while (bytesRead === BUF_LENGTH) { - bytesRead = readSync(pos); - writeSync(); - pos += bytesRead; - } +extglob.matcher = function(pattern, options) { + if (typeof pattern !== 'string') { + throw new TypeError('expected pattern to be a string'); + } - const stat = fs.fstatSync(read, src); - fs.futimesSync(write, stat.atime, stat.mtime, dest); - fs.closeSync(read); - fs.closeSync(write); - fixupAttributes(dest, stat); + function matcher() { + var re = extglob.makeRe(pattern, options); + return function(str) { + return re.test(str); + }; + } + + return utils.memoize('matcher', pattern, options, matcher); }; -module.exports.sync = (src, dest, opts) => { - if (!src || !dest) { - throw new CpFileError('`src` and `dest` required'); - } +/** + * Convert the given `extglob` pattern into a regex-compatible string. Returns + * an object with the compiled result and the parsed AST. + * + * ```js + * var extglob = require('extglob'); + * console.log(extglob.create('*.!(*a)').output); + * //=> '(?!\\.)[^/]*?\\.(?!(?!\\.)[^/]*?a\\b).*?' + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {String} + * @api public + */ - opts = Object.assign({overwrite: true}, opts); +extglob.create = function(pattern, options) { + if (typeof pattern !== 'string') { + throw new TypeError('expected pattern to be a string'); + } - if (fs.copyFileSync) { - copySyncNative(src, dest, opts); - } else { - copySyncFallback(src, dest, opts); - } + function create() { + var ext = new Extglob(options); + var ast = ext.parse(pattern, options); + return ext.compile(ast, options); + } + + return utils.memoize('create', pattern, options, create); }; +/** + * Returns an array of matches captured by `pattern` in `string`, or `null` + * if the pattern did not match. + * + * ```js + * var extglob = require('extglob'); + * extglob.capture(pattern, string[, options]); + * + * console.log(extglob.capture('test/*.js', 'test/foo.js')); + * //=> ['foo'] + * console.log(extglob.capture('test/*.js', 'foo/bar.css')); + * //=> null + * ``` + * @param {String} `pattern` Glob pattern to use for matching. + * @param {String} `string` String to match + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns an array of captures if the string matches the glob pattern, otherwise `null`. + * @api public + */ -/***/ }), -/* 454 */ -/***/ (function(module, exports, __webpack_require__) { +extglob.capture = function(pattern, str, options) { + var re = extglob.makeRe(pattern, extend({capture: true}, options)); -/* eslint-disable node/no-deprecated-api */ -var buffer = __webpack_require__(455) -var Buffer = buffer.Buffer + function match() { + return function(string) { + var match = re.exec(string); + if (!match) { + return null; + } -// alternative to using Object.keys for old browsers -function copyProps (src, dst) { - for (var key in src) { - dst[key] = src[key] + return match.slice(1); + }; } -} -if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { - module.exports = buffer -} else { - // Copy properties from require('buffer') - copyProps(buffer, exports) - exports.Buffer = SafeBuffer -} -function SafeBuffer (arg, encodingOrOffset, length) { - return Buffer(arg, encodingOrOffset, length) -} + var capture = utils.memoize('capture', pattern, options, match); + return capture(str); +}; -// Copy static methods from Buffer -copyProps(Buffer, SafeBuffer) +/** + * Create a regular expression from the given `pattern` and `options`. + * + * ```js + * var extglob = require('extglob'); + * var re = extglob.makeRe('*.!(*a)'); + * console.log(re); + * //=> /^[^\/]*?\.(?![^\/]*?a)[^\/]*?$/ + * ``` + * @param {String} `pattern` The pattern to convert to regex. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ -SafeBuffer.from = function (arg, encodingOrOffset, length) { - if (typeof arg === 'number') { - throw new TypeError('Argument must not be a number') +extglob.makeRe = function(pattern, options) { + if (pattern instanceof RegExp) { + return pattern; } - return Buffer(arg, encodingOrOffset, length) -} -SafeBuffer.alloc = function (size, fill, encoding) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') + if (typeof pattern !== 'string') { + throw new TypeError('expected pattern to be a string'); } - var buf = Buffer(size) - if (fill !== undefined) { - if (typeof encoding === 'string') { - buf.fill(fill, encoding) - } else { - buf.fill(fill) - } - } else { - buf.fill(0) + + if (pattern.length > MAX_LENGTH) { + throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters'); } - return buf -} -SafeBuffer.allocUnsafe = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') + function makeRe() { + var opts = extend({strictErrors: false}, options); + if (opts.strictErrors === true) opts.strict = true; + var res = extglob.create(pattern, opts); + return toRegex(res.output, opts); } - return Buffer(size) -} -SafeBuffer.allocUnsafeSlow = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') + var regex = utils.memoize('makeRe', pattern, options, makeRe); + if (regex.source.length > MAX_LENGTH) { + throw new SyntaxError('potentially malicious regex detected'); } - return buffer.SlowBuffer(size) -} + return regex; +}; -/***/ }), -/* 455 */ -/***/ (function(module, exports) { +/** + * Cache + */ + +extglob.cache = utils.cache; +extglob.clearCache = function() { + extglob.cache.__data__ = {}; +}; + +/** + * Expose `Extglob` constructor, parsers and compilers + */ + +extglob.Extglob = Extglob; +extglob.compilers = compilers; +extglob.parsers = parsers; + +/** + * Expose `extglob` + * @type {Function} + */ + +module.exports = extglob; -module.exports = require("buffer"); /***/ }), -/* 456 */ +/* 537 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const fs = __webpack_require__(61); -const makeDir = __webpack_require__(126); -const pify = __webpack_require__(457); -const CpFileError = __webpack_require__(159); -const fsP = pify(fs); +var brackets = __webpack_require__(538); -exports.closeSync = fs.closeSync.bind(fs); -exports.createWriteStream = fs.createWriteStream.bind(fs); +/** + * Extglob compilers + */ -exports.createReadStream = (path, options) => new Promise((resolve, reject) => { - const read = fs.createReadStream(path, options); +module.exports = function(extglob) { + function star() { + if (typeof extglob.options.star === 'function') { + return extglob.options.star.apply(this, arguments); + } + if (typeof extglob.options.star === 'string') { + return extglob.options.star; + } + return '.*?'; + } - read.once('error', err => { - reject(new CpFileError(`Cannot read from \`${path}\`: ${err.message}`, err)); - }); + /** + * Use `expand-brackets` compilers + */ - read.once('readable', () => { - resolve(read); - }); + extglob.use(brackets.compilers); + extglob.compiler - read.once('end', () => { - resolve(read); - }); -}); + /** + * Escaped: "\\*" + */ -exports.stat = path => fsP.stat(path).catch(err => { - throw new CpFileError(`Cannot stat path \`${path}\`: ${err.message}`, err); -}); + .set('escape', function(node) { + return this.emit(node.val, node); + }) -exports.lstat = path => fsP.lstat(path).catch(err => { - throw new CpFileError(`lstat \`${path}\` failed: ${err.message}`, err); -}); + /** + * Dot: "." + */ -exports.utimes = (path, atime, mtime) => fsP.utimes(path, atime, mtime).catch(err => { - throw new CpFileError(`utimes \`${path}\` failed: ${err.message}`, err); -}); + .set('dot', function(node) { + return this.emit('\\' + node.val, node); + }) -exports.chmod = (path, mode) => fsP.chmod(path, mode).catch(err => { - throw new CpFileError(`chmod \`${path}\` failed: ${err.message}`, err); -}); + /** + * Question mark: "?" + */ -exports.chown = (path, uid, gid) => fsP.chown(path, uid, gid).catch(err => { - throw new CpFileError(`chown \`${path}\` failed: ${err.message}`, err); -}); + .set('qmark', function(node) { + var val = '[^\\\\/.]'; + var prev = this.prev(); -exports.openSync = (path, flags, mode) => { - try { - return fs.openSync(path, flags, mode); - } catch (err) { - if (flags.includes('w')) { - throw new CpFileError(`Cannot write to \`${path}\`: ${err.message}`, err); - } + if (node.parsed.slice(-1) === '(') { + var ch = node.rest.charAt(0); + if (ch !== '!' && ch !== '=' && ch !== ':') { + return this.emit(val, node); + } + return this.emit(node.val, node); + } - throw new CpFileError(`Cannot open \`${path}\`: ${err.message}`, err); - } -}; + if (prev.type === 'text' && prev.val) { + return this.emit(val, node); + } -// eslint-disable-next-line max-params -exports.readSync = (fd, buffer, offset, length, position, path) => { - try { - return fs.readSync(fd, buffer, offset, length, position); - } catch (err) { - throw new CpFileError(`Cannot read from \`${path}\`: ${err.message}`, err); - } -}; + if (node.val.length > 1) { + val += '{' + node.val.length + '}'; + } + return this.emit(val, node); + }) -// eslint-disable-next-line max-params -exports.writeSync = (fd, buffer, offset, length, position, path) => { - try { - return fs.writeSync(fd, buffer, offset, length, position); - } catch (err) { - throw new CpFileError(`Cannot write to \`${path}\`: ${err.message}`, err); - } -}; + /** + * Plus: "+" + */ -exports.statSync = path => { - try { - return fs.statSync(path); - } catch (err) { - throw new CpFileError(`stat \`${path}\` failed: ${err.message}`, err); - } -}; + .set('plus', function(node) { + var prev = node.parsed.slice(-1); + if (prev === ']' || prev === ')') { + return this.emit(node.val, node); + } + var ch = this.output.slice(-1); + if (!this.output || (/[?*+]/.test(ch) && node.parent.type !== 'bracket')) { + return this.emit('\\+', node); + } + if (/\w/.test(ch) && !node.inside) { + return this.emit('+\\+?', node); + } + return this.emit('+', node); + }) -exports.fstatSync = (fd, path) => { - try { - return fs.fstatSync(fd); - } catch (err) { - throw new CpFileError(`fstat \`${path}\` failed: ${err.message}`, err); - } -}; + /** + * Star: "*" + */ -exports.futimesSync = (fd, atime, mtime, path) => { - try { - return fs.futimesSync(fd, atime, mtime, path); - } catch (err) { - throw new CpFileError(`futimes \`${path}\` failed: ${err.message}`, err); - } -}; + .set('star', function(node) { + var prev = this.prev(); + var prefix = prev.type !== 'text' && prev.type !== 'escape' + ? '(?!\\.)' + : ''; -exports.utimesSync = (path, atime, mtime) => { - try { - return fs.utimesSync(path, atime, mtime); - } catch (err) { - throw new CpFileError(`utimes \`${path}\` failed: ${err.message}`, err); - } -}; + return this.emit(prefix + star.call(this, node), node); + }) -exports.chmodSync = (path, mode) => { - try { - return fs.chmodSync(path, mode); - } catch (err) { - throw new CpFileError(`chmod \`${path}\` failed: ${err.message}`, err); - } -}; + /** + * Parens + */ -exports.chownSync = (path, uid, gid) => { - try { - return fs.chownSync(path, uid, gid); - } catch (err) { - throw new CpFileError(`chown \`${path}\` failed: ${err.message}`, err); - } -}; + .set('paren', function(node) { + return this.mapVisit(node.nodes); + }) + .set('paren.open', function(node) { + var capture = this.options.capture ? '(' : ''; + + switch (node.parent.prefix) { + case '!': + case '^': + return this.emit(capture + '(?:(?!(?:', node); + case '*': + case '+': + case '?': + case '@': + return this.emit(capture + '(?:', node); + default: { + var val = node.val; + if (this.options.bash === true) { + val = '\\' + val; + } else if (!this.options.capture && val === '(' && node.parent.rest[0] !== '?') { + val += '?:'; + } + + return this.emit(val, node); + } + } + }) + .set('paren.close', function(node) { + var capture = this.options.capture ? ')' : ''; + + switch (node.prefix) { + case '!': + case '^': + var prefix = /^(\)|$)/.test(node.rest) ? '$' : ''; + var str = star.call(this, node); + + // if the extglob has a slash explicitly defined, we know the user wants + // to match slashes, so we need to ensure the "star" regex allows for it + if (node.parent.hasSlash && !this.options.star && this.options.slash !== false) { + str = '.*?'; + } + + return this.emit(prefix + ('))' + str + ')') + capture, node); + case '*': + case '+': + case '?': + return this.emit(')' + node.prefix + capture, node); + case '@': + return this.emit(')' + capture, node); + default: { + var val = (this.options.bash === true ? '\\' : '') + ')'; + return this.emit(val, node); + } + } + }) -exports.makeDir = path => makeDir(path, {fs}).catch(err => { - throw new CpFileError(`Cannot create directory \`${path}\`: ${err.message}`, err); -}); + /** + * Text + */ -exports.makeDirSync = path => { - try { - makeDir.sync(path, {fs}); - } catch (err) { - throw new CpFileError(`Cannot create directory \`${path}\`: ${err.message}`, err); - } + .set('text', function(node) { + var val = node.val.replace(/[\[\]]/g, '\\$&'); + return this.emit(val, node); + }); }; -if (fs.copyFileSync) { - exports.copyFileSync = (src, dest, flags) => { - try { - fs.copyFileSync(src, dest, flags); - } catch (err) { - throw new CpFileError(`Cannot copy from \`${src}\` to \`${dest}\`: ${err.message}`, err); - } - }; -} - /***/ }), -/* 457 */ +/* 538 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const processFn = (fn, opts) => function () { - const P = opts.promiseModule; - const args = new Array(arguments.length); +/** + * Local dependencies + */ - for (let i = 0; i < arguments.length; i++) { - args[i] = arguments[i]; - } +var compilers = __webpack_require__(539); +var parsers = __webpack_require__(541); - return new P((resolve, reject) => { - if (opts.errorFirst) { - args.push(function (err, result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); +/** + * Module dependencies + */ - for (let i = 1; i < arguments.length; i++) { - results[i - 1] = arguments[i]; - } +var debug = __webpack_require__(495)('expand-brackets'); +var extend = __webpack_require__(399); +var Snapdragon = __webpack_require__(429); +var toRegex = __webpack_require__(390); - if (err) { - results.unshift(err); - reject(results); - } else { - resolve(results); - } - } else if (err) { - reject(err); - } else { - resolve(result); - } - }); - } else { - args.push(function (result) { - if (opts.multiArgs) { - const results = new Array(arguments.length - 1); +/** + * Parses the given POSIX character class `pattern` and returns a + * string that can be used for creating regular expressions for matching. + * + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} + * @api public + */ - for (let i = 0; i < arguments.length; i++) { - results[i] = arguments[i]; - } +function brackets(pattern, options) { + debug('initializing from <%s>', __filename); + var res = brackets.create(pattern, options); + return res.output; +} - resolve(results); - } else { - resolve(result); - } - }); - } +/** + * Takes an array of strings and a POSIX character class pattern, and returns a new + * array with only the strings that matched the pattern. + * + * ```js + * var brackets = require('expand-brackets'); + * console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]')); + * //=> ['a'] + * + * console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]+')); + * //=> ['a', 'ab'] + * ``` + * @param {Array} `arr` Array of strings to match + * @param {String} `pattern` POSIX character class pattern(s) + * @param {Object} `options` + * @return {Array} + * @api public + */ - fn.apply(this, args); - }); +brackets.match = function(arr, pattern, options) { + arr = [].concat(arr); + var opts = extend({}, options); + var isMatch = brackets.matcher(pattern, opts); + var len = arr.length; + var idx = -1; + var res = []; + + while (++idx < len) { + var ele = arr[idx]; + if (isMatch(ele)) { + res.push(ele); + } + } + + if (res.length === 0) { + if (opts.failglob === true) { + throw new Error('no matches found for "' + pattern + '"'); + } + + if (opts.nonull === true || opts.nullglob === true) { + return [pattern.split('\\').join('')]; + } + } + return res; }; -module.exports = (obj, opts) => { - opts = Object.assign({ - exclude: [/.+(Sync|Stream)$/], - errorFirst: true, - promiseModule: Promise - }, opts); +/** + * Returns true if the specified `string` matches the given + * brackets `pattern`. + * + * ```js + * var brackets = require('expand-brackets'); + * + * console.log(brackets.isMatch('a.a', '[[:alpha:]].[[:alpha:]]')); + * //=> true + * console.log(brackets.isMatch('1.2', '[[:alpha:]].[[:alpha:]]')); + * //=> false + * ``` + * @param {String} `string` String to match + * @param {String} `pattern` Poxis pattern + * @param {String} `options` + * @return {Boolean} + * @api public + */ - const filter = key => { - const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); - return opts.include ? opts.include.some(match) : !opts.exclude.some(match); - }; +brackets.isMatch = function(str, pattern, options) { + return brackets.matcher(pattern, options)(str); +}; - let ret; - if (typeof obj === 'function') { - ret = function () { - if (opts.excludeMain) { - return obj.apply(this, arguments); - } +/** + * Takes a POSIX character class pattern and returns a matcher function. The returned + * function takes the string to match as its only argument. + * + * ```js + * var brackets = require('expand-brackets'); + * var isMatch = brackets.matcher('[[:lower:]].[[:upper:]]'); + * + * console.log(isMatch('a.a')); + * //=> false + * console.log(isMatch('a.A')); + * //=> true + * ``` + * @param {String} `pattern` Poxis pattern + * @param {String} `options` + * @return {Boolean} + * @api public + */ - return processFn(obj, opts).apply(this, arguments); - }; - } else { - ret = Object.create(Object.getPrototypeOf(obj)); - } +brackets.matcher = function(pattern, options) { + var re = brackets.makeRe(pattern, options); + return function(str) { + return re.test(str); + }; +}; - for (const key in obj) { // eslint-disable-line guard-for-in - const x = obj[key]; - ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; - } +/** + * Create a regular expression from the given `pattern`. + * + * ```js + * var brackets = require('expand-brackets'); + * var re = brackets.makeRe('[[:alpha:]]'); + * console.log(re); + * //=> /^(?:[a-zA-Z])$/ + * ``` + * @param {String} `pattern` The pattern to convert to regex. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ - return ret; +brackets.makeRe = function(pattern, options) { + var res = brackets.create(pattern, options); + var opts = extend({strictErrors: false}, options); + return toRegex(res.output, opts); +}; + +/** + * Parses the given POSIX character class `pattern` and returns an object + * with the compiled `output` and optional source `map`. + * + * ```js + * var brackets = require('expand-brackets'); + * console.log(brackets('[[:alpha:]]')); + * // { options: { source: 'string' }, + * // input: '[[:alpha:]]', + * // state: {}, + * // compilers: + * // { eos: [Function], + * // noop: [Function], + * // bos: [Function], + * // not: [Function], + * // escape: [Function], + * // text: [Function], + * // posix: [Function], + * // bracket: [Function], + * // 'bracket.open': [Function], + * // 'bracket.inner': [Function], + * // 'bracket.literal': [Function], + * // 'bracket.close': [Function] }, + * // output: '[a-zA-Z]', + * // ast: + * // { type: 'root', + * // errors: [], + * // nodes: [ [Object], [Object], [Object] ] }, + * // parsingErrors: [] } + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} + * @api public + */ + +brackets.create = function(pattern, options) { + var snapdragon = (options && options.snapdragon) || new Snapdragon(options); + compilers(snapdragon); + parsers(snapdragon); + + var ast = snapdragon.parse(pattern, options); + ast.input = pattern; + var res = snapdragon.compile(ast, options); + res.input = pattern; + return res; }; +/** + * Expose `brackets` constructor, parsers and compilers + */ + +brackets.compilers = compilers; +brackets.parsers = parsers; + +/** + * Expose `brackets` + * @type {Function} + */ + +module.exports = brackets; + /***/ }), -/* 458 */ +/* 539 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const EventEmitter = __webpack_require__(63); -const written = new WeakMap(); +var posix = __webpack_require__(540); -class ProgressEmitter extends EventEmitter { - constructor(src, dest) { - super(); - this.src = src; - this.dest = dest; - } +module.exports = function(brackets) { + brackets.compiler - set written(value) { - written.set(this, value); - this.emitProgress(); - } + /** + * Escaped characters + */ - get written() { - return written.get(this); - } + .set('escape', function(node) { + return this.emit('\\' + node.val.replace(/^\\/, ''), node); + }) - emitProgress() { - const {size, written} = this; - this.emit('progress', { - src: this.src, - dest: this.dest, - size, - written, - percent: written === size ? 1 : written / size - }); - } -} + /** + * Text + */ -module.exports = ProgressEmitter; + .set('text', function(node) { + return this.emit(node.val.replace(/([{}])/g, '\\$1'), node); + }) + /** + * POSIX character classes + */ -/***/ }), -/* 459 */ -/***/ (function(module, exports, __webpack_require__) { + .set('posix', function(node) { + if (node.val === '[::]') { + return this.emit('\\[::\\]', node); + } -"use strict"; + var val = posix[node.inner]; + if (typeof val === 'undefined') { + val = '[' + node.inner + ']'; + } + return this.emit(val, node); + }) -const NestedError = __webpack_require__(160); + /** + * Non-posix brackets + */ -class CpyError extends NestedError { - constructor(message, nested) { - super(message, nested); - Object.assign(this, nested); - this.name = 'CpyError'; - } -} + .set('bracket', function(node) { + return this.mapVisit(node.nodes); + }) + .set('bracket.open', function(node) { + return this.emit(node.val, node); + }) + .set('bracket.inner', function(node) { + var inner = node.val; -module.exports = CpyError; + if (inner === '[' || inner === ']') { + return this.emit('\\' + node.val, node); + } + if (inner === '^]') { + return this.emit('^\\]', node); + } + if (inner === '^') { + return this.emit('^', node); + } + + if (/-/.test(inner) && !/(\d-\d|\w-\w)/.test(inner)) { + inner = inner.split('-').join('\\-'); + } + + var isNegated = inner.charAt(0) === '^'; + // add slashes to negated brackets, per spec + if (isNegated && inner.indexOf('/') === -1) { + inner += '/'; + } + if (isNegated && inner.indexOf('.') === -1) { + inner += '.'; + } + + // don't unescape `0` (octal literal) + inner = inner.replace(/\\([1-9])/g, '$1'); + return this.emit(inner, node); + }) + .set('bracket.close', function(node) { + var val = node.val.replace(/^\\/, ''); + if (node.parent.escaped === true) { + return this.emit('\\' + val, node); + } + return this.emit(val, node); + }); +}; /***/ }), -/* 460 */ +/* 540 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.prepareExternalProjectDependencies = undefined; - /** - * This prepares the dependencies for an _external_ project. + * POSIX character classes */ -let prepareExternalProjectDependencies = exports.prepareExternalProjectDependencies = (() => { - var _ref = _asyncToGenerator(function* (projectPath) { - const project = yield _project.Project.fromPath(projectPath); - if (!project.hasDependencies()) { - return; - } - const deps = project.allDependencies; - for (const depName of Object.keys(deps)) { - const depVersion = deps[depName]; - // Kibana currently only supports `link:` dependencies on Kibana's own - // packages, as these are packaged into the `node_modules` folder when - // Kibana is built, so we don't need to take any action to enable - // `require(...)` to resolve for these packages. - if ((0, _package_json.isLinkDependency)(depVersion) && !isKibanaDep(depVersion)) { - // For non-Kibana packages we need to set up symlinks during the - // installation process, but this is not something we support yet. - throw new Error('This plugin is using `link:` dependencies for non-Kibana packages'); - } - } - }); - return function prepareExternalProjectDependencies(_x) { - return _ref.apply(this, arguments); - }; -})(); +module.exports = { + alnum: 'a-zA-Z0-9', + alpha: 'a-zA-Z', + ascii: '\\x00-\\x7F', + blank: ' \\t', + cntrl: '\\x00-\\x1F\\x7F', + digit: '0-9', + graph: '\\x21-\\x7E', + lower: 'a-z', + print: '\\x20-\\x7E ', + punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~', + space: ' \\t\\r\\n\\v\\f', + upper: 'A-Z', + word: 'A-Za-z0-9_', + xdigit: 'A-Fa-f0-9' +}; -var _package_json = __webpack_require__(72); -var _project = __webpack_require__(121); +/***/ }), +/* 541 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ +var utils = __webpack_require__(542); +var define = __webpack_require__(543); /** - * All external projects are located within `../kibana-extra/{plugin}` relative - * to Kibana itself. + * Text regex */ -const isKibanaDep = depVersion => depVersion.includes('../../kibana/'); -/***/ }), -/* 461 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/tslib/tslib.es6.js -var tslib_es6 = __webpack_require__(0); +var TEXT_REGEX = '(\\[(?=.*\\])|\\])+'; +var not = utils.createRegex(TEXT_REGEX); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/tryCatch.js -var tryCatch = __webpack_require__(16); +/** + * Brackets parsers + */ -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/errorObject.js -var errorObject = __webpack_require__(7); +function parsers(brackets) { + brackets.state = brackets.state || {}; + brackets.parser.sets.bracket = brackets.parser.sets.bracket || []; + brackets.parser -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/OuterSubscriber.js -var OuterSubscriber = __webpack_require__(4); + .capture('escape', function() { + if (this.isInside('bracket')) return; + var pos = this.position(); + var m = this.match(/^\\(.)/); + if (!m) return; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js + 1 modules -var subscribeToResult = __webpack_require__(3); + return pos({ + type: 'escape', + val: m[0] + }); + }) -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/audit.js -/** PURE_IMPORTS_START tslib,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ + /** + * Text parser + */ + .capture('text', function() { + if (this.isInside('bracket')) return; + var pos = this.position(); + var m = this.match(not); + if (!m || !m[0]) return; + return pos({ + type: 'text', + val: m[0] + }); + }) + /** + * POSIX character classes: "[[:alpha:][:digits:]]" + */ + .capture('posix', function() { + var pos = this.position(); + var m = this.match(/^\[:(.*?):\](?=.*\])/); + if (!m) return; -function audit(durationSelector) { - return function auditOperatorFunction(source) { - return source.lift(new AuditOperator(durationSelector)); - }; -} -var AuditOperator = /*@__PURE__*/ (function () { - function AuditOperator(durationSelector) { - this.durationSelector = durationSelector; - } - AuditOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new audit_AuditSubscriber(subscriber, this.durationSelector)); - }; - return AuditOperator; -}()); -var audit_AuditSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](AuditSubscriber, _super); - function AuditSubscriber(destination, durationSelector) { - var _this = _super.call(this, destination) || this; - _this.durationSelector = durationSelector; - _this.hasValue = false; - return _this; - } - AuditSubscriber.prototype._next = function (value) { - this.value = value; - this.hasValue = true; - if (!this.throttled) { - var duration = Object(tryCatch["a" /* tryCatch */])(this.durationSelector)(value); - if (duration === errorObject["a" /* errorObject */]) { - this.destination.error(errorObject["a" /* errorObject */].e); - } - else { - var innerSubscription = Object(subscribeToResult["a" /* subscribeToResult */])(this, duration); - if (!innerSubscription || innerSubscription.closed) { - this.clearThrottle(); - } - else { - this.add(this.throttled = innerSubscription); - } - } - } - }; - AuditSubscriber.prototype.clearThrottle = function () { - var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled; - if (throttled) { - this.remove(throttled); - this.throttled = null; - throttled.unsubscribe(); - } - if (hasValue) { - this.value = null; - this.hasValue = false; - this.destination.next(value); - } - }; - AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) { - this.clearThrottle(); - }; - AuditSubscriber.prototype.notifyComplete = function () { - this.clearThrottle(); - }; - return AuditSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=audit.js.map + var inside = this.isInside('bracket'); + if (inside) { + brackets.posix++; + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/async.js -var scheduler_async = __webpack_require__(10); + return pos({ + type: 'posix', + insideBracket: inside, + inner: m[1], + val: m[0] + }); + }) -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/timer.js -var timer = __webpack_require__(87); + /** + * Bracket (noop) + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/auditTime.js -/** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */ + .capture('bracket', function() {}) + /** + * Open: '[' + */ + .capture('bracket.open', function() { + var parsed = this.parsed; + var pos = this.position(); + var m = this.match(/^\[(?=.*\])/); + if (!m) return; -function auditTime(duration, scheduler) { - if (scheduler === void 0) { - scheduler = scheduler_async["a" /* async */]; - } - return audit(function () { return Object(timer["a" /* timer */])(duration, scheduler); }); -} -//# sourceMappingURL=auditTime.js.map + var prev = this.prev(); + var last = utils.last(prev.nodes); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/buffer.js -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ + if (parsed.slice(-1) === '\\' && !this.isInside('bracket')) { + last.val = last.val.slice(0, last.val.length - 1); + return pos({ + type: 'escape', + val: m[0] + }); + } + var open = pos({ + type: 'bracket.open', + val: m[0] + }); + if (last.type === 'bracket.open' || this.isInside('bracket')) { + open.val = '\\' + open.val; + open.type = 'bracket.inner'; + open.escaped = true; + return open; + } -function buffer_buffer(closingNotifier) { - return function bufferOperatorFunction(source) { - return source.lift(new BufferOperator(closingNotifier)); - }; -} -var BufferOperator = /*@__PURE__*/ (function () { - function BufferOperator(closingNotifier) { - this.closingNotifier = closingNotifier; - } - BufferOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new buffer_BufferSubscriber(subscriber, this.closingNotifier)); - }; - return BufferOperator; -}()); -var buffer_BufferSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](BufferSubscriber, _super); - function BufferSubscriber(destination, closingNotifier) { - var _this = _super.call(this, destination) || this; - _this.buffer = []; - _this.add(Object(subscribeToResult["a" /* subscribeToResult */])(_this, closingNotifier)); - return _this; - } - BufferSubscriber.prototype._next = function (value) { - this.buffer.push(value); - }; - BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - var buffer = this.buffer; - this.buffer = []; - this.destination.next(buffer); - }; - return BufferSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=buffer.js.map + var node = pos({ + type: 'bracket', + nodes: [open] + }); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Subscriber.js -var Subscriber = __webpack_require__(1); + define(node, 'parent', prev); + define(open, 'parent', node); + this.push('bracket', node); + prev.nodes.push(node); + }) -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/bufferCount.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + /** + * Bracket text + */ + .capture('bracket.inner', function() { + if (!this.isInside('bracket')) return; + var pos = this.position(); + var m = this.match(not); + if (!m || !m[0]) return; -function bufferCount(bufferSize, startBufferEvery) { - if (startBufferEvery === void 0) { - startBufferEvery = null; - } - return function bufferCountOperatorFunction(source) { - return source.lift(new BufferCountOperator(bufferSize, startBufferEvery)); - }; -} -var BufferCountOperator = /*@__PURE__*/ (function () { - function BufferCountOperator(bufferSize, startBufferEvery) { - this.bufferSize = bufferSize; - this.startBufferEvery = startBufferEvery; - if (!startBufferEvery || bufferSize === startBufferEvery) { - this.subscriberClass = bufferCount_BufferCountSubscriber; - } - else { - this.subscriberClass = bufferCount_BufferSkipCountSubscriber; - } - } - BufferCountOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery)); - }; - return BufferCountOperator; -}()); -var bufferCount_BufferCountSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](BufferCountSubscriber, _super); - function BufferCountSubscriber(destination, bufferSize) { - var _this = _super.call(this, destination) || this; - _this.bufferSize = bufferSize; - _this.buffer = []; - return _this; - } - BufferCountSubscriber.prototype._next = function (value) { - var buffer = this.buffer; - buffer.push(value); - if (buffer.length == this.bufferSize) { - this.destination.next(buffer); - this.buffer = []; - } - }; - BufferCountSubscriber.prototype._complete = function () { - var buffer = this.buffer; - if (buffer.length > 0) { - this.destination.next(buffer); - } - _super.prototype._complete.call(this); - }; - return BufferCountSubscriber; -}(Subscriber["a" /* Subscriber */])); -var bufferCount_BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](BufferSkipCountSubscriber, _super); - function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) { - var _this = _super.call(this, destination) || this; - _this.bufferSize = bufferSize; - _this.startBufferEvery = startBufferEvery; - _this.buffers = []; - _this.count = 0; - return _this; - } - BufferSkipCountSubscriber.prototype._next = function (value) { - var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count; - this.count++; - if (count % startBufferEvery === 0) { - buffers.push([]); - } - for (var i = buffers.length; i--;) { - var buffer = buffers[i]; - buffer.push(value); - if (buffer.length === bufferSize) { - buffers.splice(i, 1); - this.destination.next(buffer); - } - } - }; - BufferSkipCountSubscriber.prototype._complete = function () { - var _a = this, buffers = _a.buffers, destination = _a.destination; - while (buffers.length > 0) { - var buffer = buffers.shift(); - if (buffer.length > 0) { - destination.next(buffer); - } - } - _super.prototype._complete.call(this); - }; - return BufferSkipCountSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=bufferCount.js.map + var next = this.input.charAt(0); + var val = m[0]; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isScheduler.js -var isScheduler = __webpack_require__(12); + var node = pos({ + type: 'bracket.inner', + val: val + }); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/bufferTime.js -/** PURE_IMPORTS_START tslib,_scheduler_async,_Subscriber,_util_isScheduler PURE_IMPORTS_END */ + if (val === '\\\\') { + return node; + } + var first = val.charAt(0); + var last = val.slice(-1); + if (first === '!') { + val = '^' + val.slice(1); + } + if (last === '\\' || (val === '^' && next === ']')) { + val += this.input[0]; + this.consume(1); + } -function bufferTime(bufferTimeSpan) { - var length = arguments.length; - var scheduler = scheduler_async["a" /* async */]; - if (Object(isScheduler["a" /* isScheduler */])(arguments[arguments.length - 1])) { - scheduler = arguments[arguments.length - 1]; - length--; - } - var bufferCreationInterval = null; - if (length >= 2) { - bufferCreationInterval = arguments[1]; - } - var maxBufferSize = Number.POSITIVE_INFINITY; - if (length >= 3) { - maxBufferSize = arguments[2]; - } - return function bufferTimeOperatorFunction(source) { - return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler)); - }; -} -var BufferTimeOperator = /*@__PURE__*/ (function () { - function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { - this.bufferTimeSpan = bufferTimeSpan; - this.bufferCreationInterval = bufferCreationInterval; - this.maxBufferSize = maxBufferSize; - this.scheduler = scheduler; - } - BufferTimeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new bufferTime_BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler)); - }; - return BufferTimeOperator; -}()); -var Context = /*@__PURE__*/ (function () { - function Context() { - this.buffer = []; - } - return Context; -}()); -var bufferTime_BufferTimeSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](BufferTimeSubscriber, _super); - function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { - var _this = _super.call(this, destination) || this; - _this.bufferTimeSpan = bufferTimeSpan; - _this.bufferCreationInterval = bufferCreationInterval; - _this.maxBufferSize = maxBufferSize; - _this.scheduler = scheduler; - _this.contexts = []; - var context = _this.openContext(); - _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0; - if (_this.timespanOnly) { - var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan }; - _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); - } - else { - var closeState = { subscriber: _this, context: context }; - var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler }; - _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState)); - _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState)); - } - return _this; - } - BufferTimeSubscriber.prototype._next = function (value) { - var contexts = this.contexts; - var len = contexts.length; - var filledBufferContext; - for (var i = 0; i < len; i++) { - var context_1 = contexts[i]; - var buffer = context_1.buffer; - buffer.push(value); - if (buffer.length == this.maxBufferSize) { - filledBufferContext = context_1; - } - } - if (filledBufferContext) { - this.onBufferFull(filledBufferContext); - } - }; - BufferTimeSubscriber.prototype._error = function (err) { - this.contexts.length = 0; - _super.prototype._error.call(this, err); - }; - BufferTimeSubscriber.prototype._complete = function () { - var _a = this, contexts = _a.contexts, destination = _a.destination; - while (contexts.length > 0) { - var context_2 = contexts.shift(); - destination.next(context_2.buffer); - } - _super.prototype._complete.call(this); - }; - BufferTimeSubscriber.prototype._unsubscribe = function () { - this.contexts = null; - }; - BufferTimeSubscriber.prototype.onBufferFull = function (context) { - this.closeContext(context); - var closeAction = context.closeAction; - closeAction.unsubscribe(); - this.remove(closeAction); - if (!this.closed && this.timespanOnly) { - context = this.openContext(); - var bufferTimeSpan = this.bufferTimeSpan; - var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan }; - this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); - } - }; - BufferTimeSubscriber.prototype.openContext = function () { - var context = new Context(); - this.contexts.push(context); - return context; - }; - BufferTimeSubscriber.prototype.closeContext = function (context) { - this.destination.next(context.buffer); - var contexts = this.contexts; - var spliceIndex = contexts ? contexts.indexOf(context) : -1; - if (spliceIndex >= 0) { - contexts.splice(contexts.indexOf(context), 1); - } - }; - return BufferTimeSubscriber; -}(Subscriber["a" /* Subscriber */])); -function dispatchBufferTimeSpanOnly(state) { - var subscriber = state.subscriber; - var prevContext = state.context; - if (prevContext) { - subscriber.closeContext(prevContext); - } - if (!subscriber.closed) { - state.context = subscriber.openContext(); - state.context.closeAction = this.schedule(state, state.bufferTimeSpan); - } -} -function dispatchBufferCreation(state) { - var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler; - var context = subscriber.openContext(); - var action = this; - if (!subscriber.closed) { - subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context })); - action.schedule(state, bufferCreationInterval); - } -} -function dispatchBufferClose(arg) { - var subscriber = arg.subscriber, context = arg.context; - subscriber.closeContext(context); -} -//# sourceMappingURL=bufferTime.js.map + node.val = val; + return node; + }) -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Subscription.js -var Subscription = __webpack_require__(6); + /** + * Close: ']' + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js -/** PURE_IMPORTS_START tslib,_Subscription,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */ + .capture('bracket.close', function() { + var parsed = this.parsed; + var pos = this.position(); + var m = this.match(/^\]/); + if (!m) return; + var prev = this.prev(); + var last = utils.last(prev.nodes); + if (parsed.slice(-1) === '\\' && !this.isInside('bracket')) { + last.val = last.val.slice(0, last.val.length - 1); + return pos({ + type: 'escape', + val: m[0] + }); + } -function bufferToggle(openings, closingSelector) { - return function bufferToggleOperatorFunction(source) { - return source.lift(new BufferToggleOperator(openings, closingSelector)); - }; -} -var BufferToggleOperator = /*@__PURE__*/ (function () { - function BufferToggleOperator(openings, closingSelector) { - this.openings = openings; - this.closingSelector = closingSelector; - } - BufferToggleOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new bufferToggle_BufferToggleSubscriber(subscriber, this.openings, this.closingSelector)); - }; - return BufferToggleOperator; -}()); -var bufferToggle_BufferToggleSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](BufferToggleSubscriber, _super); - function BufferToggleSubscriber(destination, openings, closingSelector) { - var _this = _super.call(this, destination) || this; - _this.openings = openings; - _this.closingSelector = closingSelector; - _this.contexts = []; - _this.add(Object(subscribeToResult["a" /* subscribeToResult */])(_this, openings)); - return _this; - } - BufferToggleSubscriber.prototype._next = function (value) { - var contexts = this.contexts; - var len = contexts.length; - for (var i = 0; i < len; i++) { - contexts[i].buffer.push(value); - } - }; - BufferToggleSubscriber.prototype._error = function (err) { - var contexts = this.contexts; - while (contexts.length > 0) { - var context_1 = contexts.shift(); - context_1.subscription.unsubscribe(); - context_1.buffer = null; - context_1.subscription = null; - } - this.contexts = null; - _super.prototype._error.call(this, err); - }; - BufferToggleSubscriber.prototype._complete = function () { - var contexts = this.contexts; - while (contexts.length > 0) { - var context_2 = contexts.shift(); - this.destination.next(context_2.buffer); - context_2.subscription.unsubscribe(); - context_2.buffer = null; - context_2.subscription = null; - } - this.contexts = null; - _super.prototype._complete.call(this); - }; - BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue); - }; - BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) { - this.closeBuffer(innerSub.context); - }; - BufferToggleSubscriber.prototype.openBuffer = function (value) { - try { - var closingSelector = this.closingSelector; - var closingNotifier = closingSelector.call(this, value); - if (closingNotifier) { - this.trySubscribe(closingNotifier); - } - } - catch (err) { - this._error(err); - } - }; - BufferToggleSubscriber.prototype.closeBuffer = function (context) { - var contexts = this.contexts; - if (contexts && context) { - var buffer = context.buffer, subscription = context.subscription; - this.destination.next(buffer); - contexts.splice(contexts.indexOf(context), 1); - this.remove(subscription); - subscription.unsubscribe(); - } - }; - BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) { - var contexts = this.contexts; - var buffer = []; - var subscription = new Subscription["a" /* Subscription */](); - var context = { buffer: buffer, subscription: subscription }; - contexts.push(context); - var innerSubscription = Object(subscribeToResult["a" /* subscribeToResult */])(this, closingNotifier, context); - if (!innerSubscription || innerSubscription.closed) { - this.closeBuffer(context); - } - else { - innerSubscription.context = context; - this.add(innerSubscription); - subscription.add(innerSubscription); + var node = pos({ + type: 'bracket.close', + rest: this.input, + val: m[0] + }); + + if (last.type === 'bracket.open') { + node.type = 'bracket.inner'; + node.escaped = true; + return node; + } + + var bracket = this.pop('bracket'); + if (!this.isType(bracket, 'bracket')) { + if (this.options.strict) { + throw new Error('missing opening "["'); } - }; - return BufferToggleSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=bufferToggle.js.map + node.type = 'bracket.inner'; + node.escaped = true; + return node; + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js -/** PURE_IMPORTS_START tslib,_Subscription,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ + bracket.nodes.push(node); + define(node, 'parent', bracket); + }); +} +/** + * Brackets parsers + */ +module.exports = parsers; +/** + * Expose text regex + */ +module.exports.TEXT_REGEX = TEXT_REGEX; -function bufferWhen(closingSelector) { - return function (source) { - return source.lift(new BufferWhenOperator(closingSelector)); - }; -} -var BufferWhenOperator = /*@__PURE__*/ (function () { - function BufferWhenOperator(closingSelector) { - this.closingSelector = closingSelector; - } - BufferWhenOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new bufferWhen_BufferWhenSubscriber(subscriber, this.closingSelector)); - }; - return BufferWhenOperator; -}()); -var bufferWhen_BufferWhenSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](BufferWhenSubscriber, _super); - function BufferWhenSubscriber(destination, closingSelector) { - var _this = _super.call(this, destination) || this; - _this.closingSelector = closingSelector; - _this.subscribing = false; - _this.openBuffer(); - return _this; - } - BufferWhenSubscriber.prototype._next = function (value) { - this.buffer.push(value); - }; - BufferWhenSubscriber.prototype._complete = function () { - var buffer = this.buffer; - if (buffer) { - this.destination.next(buffer); - } - _super.prototype._complete.call(this); - }; - BufferWhenSubscriber.prototype._unsubscribe = function () { - this.buffer = null; - this.subscribing = false; - }; - BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.openBuffer(); - }; - BufferWhenSubscriber.prototype.notifyComplete = function () { - if (this.subscribing) { - this.complete(); - } - else { - this.openBuffer(); - } - }; - BufferWhenSubscriber.prototype.openBuffer = function () { - var closingSubscription = this.closingSubscription; - if (closingSubscription) { - this.remove(closingSubscription); - closingSubscription.unsubscribe(); - } - var buffer = this.buffer; - if (this.buffer) { - this.destination.next(buffer); - } - this.buffer = []; - var closingNotifier = Object(tryCatch["a" /* tryCatch */])(this.closingSelector)(); - if (closingNotifier === errorObject["a" /* errorObject */]) { - this.error(errorObject["a" /* errorObject */].e); - } - else { - closingSubscription = new Subscription["a" /* Subscription */](); - this.closingSubscription = closingSubscription; - this.add(closingSubscription); - this.subscribing = true; - closingSubscription.add(Object(subscribeToResult["a" /* subscribeToResult */])(this, closingNotifier)); - this.subscribing = false; - } - }; - return BufferWhenSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=bufferWhen.js.map +/***/ }), +/* 542 */ +/***/ (function(module, exports, __webpack_require__) { -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/catchError.js -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +"use strict"; +var toRegex = __webpack_require__(390); +var regexNot = __webpack_require__(401); +var cached; -function catchError(selector) { - return function catchErrorOperatorFunction(source) { - var operator = new CatchOperator(selector); - var caught = source.lift(operator); - return (operator.caught = caught); - }; -} -var CatchOperator = /*@__PURE__*/ (function () { - function CatchOperator(selector) { - this.selector = selector; - } - CatchOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new catchError_CatchSubscriber(subscriber, this.selector, this.caught)); - }; - return CatchOperator; -}()); -var catchError_CatchSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](CatchSubscriber, _super); - function CatchSubscriber(destination, selector, caught) { - var _this = _super.call(this, destination) || this; - _this.selector = selector; - _this.caught = caught; - return _this; - } - CatchSubscriber.prototype.error = function (err) { - if (!this.isStopped) { - var result = void 0; - try { - result = this.selector(err, this.caught); - } - catch (err2) { - _super.prototype.error.call(this, err2); - return; - } - this._unsubscribeAndRecycle(); - this.add(Object(subscribeToResult["a" /* subscribeToResult */])(this, result)); - } - }; - return CatchSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=catchError.js.map +/** + * Get the last element from `array` + * @param {Array} `array` + * @return {*} + */ -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/combineLatest.js -var combineLatest = __webpack_require__(54); +exports.last = function(arr) { + return arr[arr.length - 1]; +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/combineAll.js -/** PURE_IMPORTS_START _observable_combineLatest PURE_IMPORTS_END */ +/** + * Create and cache regex to use for text nodes + */ -function combineAll(project) { - return function (source) { return source.lift(new combineLatest["a" /* CombineLatestOperator */](project)); }; -} -//# sourceMappingURL=combineAll.js.map +exports.createRegex = function(pattern, include) { + if (cached) return cached; + var opts = {contains: true, strictClose: false}; + var not = regexNot.create(pattern, opts); + var re; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isArray.js -var isArray = __webpack_require__(11); + if (typeof include === 'string') { + re = toRegex('^(?:' + include + '|' + not + ')', opts); + } else { + re = toRegex(not, opts); + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/from.js + 5 modules -var from = __webpack_require__(17); + return (cached = re); +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/combineLatest.js -/** PURE_IMPORTS_START _util_isArray,_observable_combineLatest,_observable_from PURE_IMPORTS_END */ +/***/ }), +/* 543 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +/*! + * define-property + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. + */ -var none = {}; -function combineLatest_combineLatest() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - var project = null; - if (typeof observables[observables.length - 1] === 'function') { - project = observables.pop(); - } - if (observables.length === 1 && Object(isArray["a" /* isArray */])(observables[0])) { - observables = observables[0].slice(); - } - return function (source) { return source.lift.call(Object(from["a" /* from */])([source].concat(observables)), new combineLatest["a" /* CombineLatestOperator */](project)); }; -} -//# sourceMappingURL=combineLatest.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/concat.js -var concat = __webpack_require__(29); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/concat.js -/** PURE_IMPORTS_START _observable_concat PURE_IMPORTS_END */ +var isDescriptor = __webpack_require__(544); -function concat_concat() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - return function (source) { return source.lift.call(concat["a" /* concat */].apply(void 0, [source].concat(observables))); }; -} -//# sourceMappingURL=concat.js.map +module.exports = function defineProperty(obj, prop, val) { + if (typeof obj !== 'object' && typeof obj !== 'function') { + throw new TypeError('expected an object or function.'); + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/concatAll.js -var concatAll = __webpack_require__(84); + if (typeof prop !== 'string') { + throw new TypeError('expected `prop` to be a string.'); + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/mergeMap.js -var mergeMap = __webpack_require__(31); + if (isDescriptor(val) && ('set' in val || 'get' in val)) { + return Object.defineProperty(obj, prop, val); + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/concatMap.js -/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */ + return Object.defineProperty(obj, prop, { + configurable: true, + enumerable: false, + writable: true, + value: val + }); +}; -function concatMap(project, resultSelector) { - return Object(mergeMap["a" /* mergeMap */])(project, resultSelector, 1); -} -//# sourceMappingURL=concatMap.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js -/** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */ +/***/ }), +/* 544 */ +/***/ (function(module, exports, __webpack_require__) { -function concatMapTo(innerObservable, resultSelector) { - return concatMap(function () { return innerObservable; }, resultSelector); -} -//# sourceMappingURL=concatMapTo.js.map +"use strict"; +/*! + * is-descriptor + * + * Copyright (c) 2015-2017, Jon Schlinkert. + * Released under the MIT License. + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/count.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function count_count(predicate) { - return function (source) { return source.lift(new CountOperator(predicate, source)); }; -} -var CountOperator = /*@__PURE__*/ (function () { - function CountOperator(predicate, source) { - this.predicate = predicate; - this.source = source; - } - CountOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new count_CountSubscriber(subscriber, this.predicate, this.source)); - }; - return CountOperator; -}()); -var count_CountSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](CountSubscriber, _super); - function CountSubscriber(destination, predicate, source) { - var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.source = source; - _this.count = 0; - _this.index = 0; - return _this; +var typeOf = __webpack_require__(545); +var isAccessor = __webpack_require__(546); +var isData = __webpack_require__(548); + +module.exports = function isDescriptor(obj, key) { + if (typeOf(obj) !== 'object') { + return false; + } + if ('get' in obj) { + return isAccessor(obj, key); + } + return isData(obj, key); +}; + + +/***/ }), +/* 545 */ +/***/ (function(module, exports) { + +var toString = Object.prototype.toString; + +/** + * Get the native `typeof` a value. + * + * @param {*} `val` + * @return {*} Native javascript type + */ + +module.exports = function kindOf(val) { + var type = typeof val; + + // primitivies + if (type === 'undefined') { + return 'undefined'; + } + if (val === null) { + return 'null'; + } + if (val === true || val === false || val instanceof Boolean) { + return 'boolean'; + } + if (type === 'string' || val instanceof String) { + return 'string'; + } + if (type === 'number' || val instanceof Number) { + return 'number'; + } + + // functions + if (type === 'function' || val instanceof Function) { + if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') { + return 'generatorfunction'; } - CountSubscriber.prototype._next = function (value) { - if (this.predicate) { - this._tryPredicate(value); - } - else { - this.count++; - } - }; - CountSubscriber.prototype._tryPredicate = function (value) { - var result; - try { - result = this.predicate(value, this.index++, this.source); - } - catch (err) { - this.destination.error(err); - return; - } - if (result) { - this.count++; - } - }; - CountSubscriber.prototype._complete = function () { - this.destination.next(this.count); - this.destination.complete(); - }; - return CountSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=count.js.map + return 'function'; + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/debounce.js -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ + // array + if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { + return 'array'; + } + // check for instances of RegExp and Date before calling `toString` + if (val instanceof RegExp) { + return 'regexp'; + } + if (val instanceof Date) { + return 'date'; + } + // other objects + type = toString.call(val); -function debounce(durationSelector) { - return function (source) { return source.lift(new DebounceOperator(durationSelector)); }; + if (type === '[object RegExp]') { + return 'regexp'; + } + if (type === '[object Date]') { + return 'date'; + } + if (type === '[object Arguments]') { + return 'arguments'; + } + if (type === '[object Error]') { + return 'error'; + } + if (type === '[object Promise]') { + return 'promise'; + } + + // buffer + if (isBuffer(val)) { + return 'buffer'; + } + + // es6: Map, WeakMap, Set, WeakSet + if (type === '[object Set]') { + return 'set'; + } + if (type === '[object WeakSet]') { + return 'weakset'; + } + if (type === '[object Map]') { + return 'map'; + } + if (type === '[object WeakMap]') { + return 'weakmap'; + } + if (type === '[object Symbol]') { + return 'symbol'; + } + + if (type === '[object Map Iterator]') { + return 'mapiterator'; + } + if (type === '[object Set Iterator]') { + return 'setiterator'; + } + if (type === '[object String Iterator]') { + return 'stringiterator'; + } + if (type === '[object Array Iterator]') { + return 'arrayiterator'; + } + + // typed arrays + if (type === '[object Int8Array]') { + return 'int8array'; + } + if (type === '[object Uint8Array]') { + return 'uint8array'; + } + if (type === '[object Uint8ClampedArray]') { + return 'uint8clampedarray'; + } + if (type === '[object Int16Array]') { + return 'int16array'; + } + if (type === '[object Uint16Array]') { + return 'uint16array'; + } + if (type === '[object Int32Array]') { + return 'int32array'; + } + if (type === '[object Uint32Array]') { + return 'uint32array'; + } + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; + } + + // must be a plain object + return 'object'; +}; + +/** + * If you need to support Safari 5-7 (8-10 yr-old browser), + * take a look at https://github.com/feross/is-buffer + */ + +function isBuffer(val) { + return val.constructor + && typeof val.constructor.isBuffer === 'function' + && val.constructor.isBuffer(val); } -var DebounceOperator = /*@__PURE__*/ (function () { - function DebounceOperator(durationSelector) { - this.durationSelector = durationSelector; - } - DebounceOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new debounce_DebounceSubscriber(subscriber, this.durationSelector)); - }; - return DebounceOperator; -}()); -var debounce_DebounceSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](DebounceSubscriber, _super); - function DebounceSubscriber(destination, durationSelector) { - var _this = _super.call(this, destination) || this; - _this.durationSelector = durationSelector; - _this.hasValue = false; - _this.durationSubscription = null; - return _this; - } - DebounceSubscriber.prototype._next = function (value) { - try { - var result = this.durationSelector.call(this, value); - if (result) { - this._tryNext(value, result); - } - } - catch (err) { - this.destination.error(err); - } - }; - DebounceSubscriber.prototype._complete = function () { - this.emitValue(); - this.destination.complete(); - }; - DebounceSubscriber.prototype._tryNext = function (value, duration) { - var subscription = this.durationSubscription; - this.value = value; - this.hasValue = true; - if (subscription) { - subscription.unsubscribe(); - this.remove(subscription); - } - subscription = Object(subscribeToResult["a" /* subscribeToResult */])(this, duration); - if (subscription && !subscription.closed) { - this.add(this.durationSubscription = subscription); - } - }; - DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.emitValue(); - }; - DebounceSubscriber.prototype.notifyComplete = function () { - this.emitValue(); - }; - DebounceSubscriber.prototype.emitValue = function () { - if (this.hasValue) { - var value = this.value; - var subscription = this.durationSubscription; - if (subscription) { - this.durationSubscription = null; - subscription.unsubscribe(); - this.remove(subscription); - } - this.value = null; - this.hasValue = false; - _super.prototype._next.call(this, value); - } - }; - return DebounceSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=debounce.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/debounceTime.js -/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */ + +/***/ }), +/* 546 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * is-accessor-descriptor + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. + */ + +var typeOf = __webpack_require__(547); -function debounceTime(dueTime, scheduler) { - if (scheduler === void 0) { - scheduler = scheduler_async["a" /* async */]; - } - return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); }; -} -var DebounceTimeOperator = /*@__PURE__*/ (function () { - function DebounceTimeOperator(dueTime, scheduler) { - this.dueTime = dueTime; - this.scheduler = scheduler; - } - DebounceTimeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new debounceTime_DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler)); - }; - return DebounceTimeOperator; -}()); -var debounceTime_DebounceTimeSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](DebounceTimeSubscriber, _super); - function DebounceTimeSubscriber(destination, dueTime, scheduler) { - var _this = _super.call(this, destination) || this; - _this.dueTime = dueTime; - _this.scheduler = scheduler; - _this.debouncedSubscription = null; - _this.lastValue = null; - _this.hasValue = false; - return _this; - } - DebounceTimeSubscriber.prototype._next = function (value) { - this.clearDebounce(); - this.lastValue = value; - this.hasValue = true; - this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this)); - }; - DebounceTimeSubscriber.prototype._complete = function () { - this.debouncedNext(); - this.destination.complete(); - }; - DebounceTimeSubscriber.prototype.debouncedNext = function () { - this.clearDebounce(); - if (this.hasValue) { - var lastValue = this.lastValue; - this.lastValue = null; - this.hasValue = false; - this.destination.next(lastValue); - } - }; - DebounceTimeSubscriber.prototype.clearDebounce = function () { - var debouncedSubscription = this.debouncedSubscription; - if (debouncedSubscription !== null) { - this.remove(debouncedSubscription); - debouncedSubscription.unsubscribe(); - this.debouncedSubscription = null; - } - }; - return DebounceTimeSubscriber; -}(Subscriber["a" /* Subscriber */])); -function dispatchNext(subscriber) { - subscriber.debouncedNext(); -} -//# sourceMappingURL=debounceTime.js.map +// accessor descriptor properties +var accessor = { + get: 'function', + set: 'function', + configurable: 'boolean', + enumerable: 'boolean' +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +function isAccessorDescriptor(obj, prop) { + if (typeof prop === 'string') { + var val = Object.getOwnPropertyDescriptor(obj, prop); + return typeof val !== 'undefined'; + } + if (typeOf(obj) !== 'object') { + return false; + } -function defaultIfEmpty(defaultValue) { - if (defaultValue === void 0) { - defaultValue = null; - } - return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); }; -} -var DefaultIfEmptyOperator = /*@__PURE__*/ (function () { - function DefaultIfEmptyOperator(defaultValue) { - this.defaultValue = defaultValue; + if (has(obj, 'value') || has(obj, 'writable')) { + return false; + } + + if (!has(obj, 'get') || typeof obj.get !== 'function') { + return false; + } + + // tldr: it's valid to have "set" be undefined + // "set" might be undefined if `Object.getOwnPropertyDescriptor` + // was used to get the value, and only `get` was defined by the user + if (has(obj, 'set') && typeof obj[key] !== 'function' && typeof obj[key] !== 'undefined') { + return false; + } + + for (var key in obj) { + if (!accessor.hasOwnProperty(key)) { + continue; } - DefaultIfEmptyOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new defaultIfEmpty_DefaultIfEmptySubscriber(subscriber, this.defaultValue)); - }; - return DefaultIfEmptyOperator; -}()); -var defaultIfEmpty_DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](DefaultIfEmptySubscriber, _super); - function DefaultIfEmptySubscriber(destination, defaultValue) { - var _this = _super.call(this, destination) || this; - _this.defaultValue = defaultValue; - _this.isEmpty = true; - return _this; + + if (typeOf(obj[key]) === accessor[key]) { + continue; } - DefaultIfEmptySubscriber.prototype._next = function (value) { - this.isEmpty = false; - this.destination.next(value); - }; - DefaultIfEmptySubscriber.prototype._complete = function () { - if (this.isEmpty) { - this.destination.next(this.defaultValue); - } - this.destination.complete(); - }; - return DefaultIfEmptySubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=defaultIfEmpty.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isDate.js -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function isDate(value) { - return value instanceof Date && !isNaN(+value); + if (typeof obj[key] !== 'undefined') { + return false; + } + } + return true; } -//# sourceMappingURL=isDate.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Notification.js -var Notification = __webpack_require__(24); - -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/delay.js -/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */ +function has(obj, key) { + return {}.hasOwnProperty.call(obj, key); +} +/** + * Expose `isAccessorDescriptor` + */ +module.exports = isAccessorDescriptor; +/***/ }), +/* 547 */ +/***/ (function(module, exports, __webpack_require__) { -function delay_delay(delay, scheduler) { - if (scheduler === void 0) { - scheduler = scheduler_async["a" /* async */]; - } - var absoluteDelay = isDate(delay); - var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay); - return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); }; -} -var DelayOperator = /*@__PURE__*/ (function () { - function DelayOperator(delay, scheduler) { - this.delay = delay; - this.scheduler = scheduler; - } - DelayOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new delay_DelaySubscriber(subscriber, this.delay, this.scheduler)); - }; - return DelayOperator; -}()); -var delay_DelaySubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](DelaySubscriber, _super); - function DelaySubscriber(destination, delay, scheduler) { - var _this = _super.call(this, destination) || this; - _this.delay = delay; - _this.scheduler = scheduler; - _this.queue = []; - _this.active = false; - _this.errored = false; - return _this; - } - DelaySubscriber.dispatch = function (state) { - var source = state.source; - var queue = source.queue; - var scheduler = state.scheduler; - var destination = state.destination; - while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) { - queue.shift().notification.observe(destination); - } - if (queue.length > 0) { - var delay_1 = Math.max(0, queue[0].time - scheduler.now()); - this.schedule(state, delay_1); - } - else { - this.unsubscribe(); - source.active = false; - } - }; - DelaySubscriber.prototype._schedule = function (scheduler) { - this.active = true; - this.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { - source: this, destination: this.destination, scheduler: scheduler - })); - }; - DelaySubscriber.prototype.scheduleNotification = function (notification) { - if (this.errored === true) { - return; - } - var scheduler = this.scheduler; - var message = new DelayMessage(scheduler.now() + this.delay, notification); - this.queue.push(message); - if (this.active === false) { - this._schedule(scheduler); - } - }; - DelaySubscriber.prototype._next = function (value) { - this.scheduleNotification(Notification["a" /* Notification */].createNext(value)); - }; - DelaySubscriber.prototype._error = function (err) { - this.errored = true; - this.queue = []; - this.destination.error(err); - }; - DelaySubscriber.prototype._complete = function () { - this.scheduleNotification(Notification["a" /* Notification */].createComplete()); - }; - return DelaySubscriber; -}(Subscriber["a" /* Subscriber */])); -var DelayMessage = /*@__PURE__*/ (function () { - function DelayMessage(time, notification) { - this.time = time; - this.notification = notification; - } - return DelayMessage; -}()); -//# sourceMappingURL=delay.js.map +var isBuffer = __webpack_require__(396); +var toString = Object.prototype.toString; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Observable.js + 1 modules -var Observable = __webpack_require__(2); +/** + * Get the native `typeof` a value. + * + * @param {*} `val` + * @return {*} Native javascript type + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/delayWhen.js -/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +module.exports = function kindOf(val) { + // primitivies + if (typeof val === 'undefined') { + return 'undefined'; + } + if (val === null) { + return 'null'; + } + if (val === true || val === false || val instanceof Boolean) { + return 'boolean'; + } + if (typeof val === 'string' || val instanceof String) { + return 'string'; + } + if (typeof val === 'number' || val instanceof Number) { + return 'number'; + } + // functions + if (typeof val === 'function' || val instanceof Function) { + return 'function'; + } + // array + if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { + return 'array'; + } + // check for instances of RegExp and Date before calling `toString` + if (val instanceof RegExp) { + return 'regexp'; + } + if (val instanceof Date) { + return 'date'; + } + // other objects + var type = toString.call(val); -function delayWhen(delayDurationSelector, subscriptionDelay) { - if (subscriptionDelay) { - return function (source) { - return new delayWhen_SubscriptionDelayObservable(source, subscriptionDelay) - .lift(new DelayWhenOperator(delayDurationSelector)); - }; - } - return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); }; -} -var DelayWhenOperator = /*@__PURE__*/ (function () { - function DelayWhenOperator(delayDurationSelector) { - this.delayDurationSelector = delayDurationSelector; - } - DelayWhenOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new delayWhen_DelayWhenSubscriber(subscriber, this.delayDurationSelector)); - }; - return DelayWhenOperator; -}()); -var delayWhen_DelayWhenSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](DelayWhenSubscriber, _super); - function DelayWhenSubscriber(destination, delayDurationSelector) { - var _this = _super.call(this, destination) || this; - _this.delayDurationSelector = delayDurationSelector; - _this.completed = false; - _this.delayNotifierSubscriptions = []; - return _this; - } - DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(outerValue); - this.removeSubscription(innerSub); - this.tryComplete(); - }; - DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) { - this._error(error); - }; - DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) { - var value = this.removeSubscription(innerSub); - if (value) { - this.destination.next(value); - } - this.tryComplete(); - }; - DelayWhenSubscriber.prototype._next = function (value) { - try { - var delayNotifier = this.delayDurationSelector(value); - if (delayNotifier) { - this.tryDelay(delayNotifier, value); - } - } - catch (err) { - this.destination.error(err); - } - }; - DelayWhenSubscriber.prototype._complete = function () { - this.completed = true; - this.tryComplete(); - }; - DelayWhenSubscriber.prototype.removeSubscription = function (subscription) { - subscription.unsubscribe(); - var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription); - if (subscriptionIdx !== -1) { - this.delayNotifierSubscriptions.splice(subscriptionIdx, 1); - } - return subscription.outerValue; - }; - DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) { - var notifierSubscription = Object(subscribeToResult["a" /* subscribeToResult */])(this, delayNotifier, value); - if (notifierSubscription && !notifierSubscription.closed) { - this.add(notifierSubscription); - this.delayNotifierSubscriptions.push(notifierSubscription); - } - }; - DelayWhenSubscriber.prototype.tryComplete = function () { - if (this.completed && this.delayNotifierSubscriptions.length === 0) { - this.destination.complete(); - } - }; - return DelayWhenSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -var delayWhen_SubscriptionDelayObservable = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SubscriptionDelayObservable, _super); - function SubscriptionDelayObservable(source, subscriptionDelay) { - var _this = _super.call(this) || this; - _this.source = source; - _this.subscriptionDelay = subscriptionDelay; - return _this; - } - SubscriptionDelayObservable.prototype._subscribe = function (subscriber) { - this.subscriptionDelay.subscribe(new delayWhen_SubscriptionDelaySubscriber(subscriber, this.source)); - }; - return SubscriptionDelayObservable; -}(Observable["a" /* Observable */])); -var delayWhen_SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SubscriptionDelaySubscriber, _super); - function SubscriptionDelaySubscriber(parent, source) { - var _this = _super.call(this) || this; - _this.parent = parent; - _this.source = source; - _this.sourceSubscribed = false; - return _this; - } - SubscriptionDelaySubscriber.prototype._next = function (unused) { - this.subscribeToSource(); - }; - SubscriptionDelaySubscriber.prototype._error = function (err) { - this.unsubscribe(); - this.parent.error(err); - }; - SubscriptionDelaySubscriber.prototype._complete = function () { - this.subscribeToSource(); - }; - SubscriptionDelaySubscriber.prototype.subscribeToSource = function () { - if (!this.sourceSubscribed) { - this.sourceSubscribed = true; - this.unsubscribe(); - this.source.subscribe(this.parent); - } - }; - return SubscriptionDelaySubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=delayWhen.js.map + if (type === '[object RegExp]') { + return 'regexp'; + } + if (type === '[object Date]') { + return 'date'; + } + if (type === '[object Arguments]') { + return 'arguments'; + } + if (type === '[object Error]') { + return 'error'; + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/dematerialize.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + // buffer + if (isBuffer(val)) { + return 'buffer'; + } + // es6: Map, WeakMap, Set, WeakSet + if (type === '[object Set]') { + return 'set'; + } + if (type === '[object WeakSet]') { + return 'weakset'; + } + if (type === '[object Map]') { + return 'map'; + } + if (type === '[object WeakMap]') { + return 'weakmap'; + } + if (type === '[object Symbol]') { + return 'symbol'; + } -function dematerialize() { - return function dematerializeOperatorFunction(source) { - return source.lift(new DeMaterializeOperator()); - }; -} -var DeMaterializeOperator = /*@__PURE__*/ (function () { - function DeMaterializeOperator() { - } - DeMaterializeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new dematerialize_DeMaterializeSubscriber(subscriber)); - }; - return DeMaterializeOperator; -}()); -var dematerialize_DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](DeMaterializeSubscriber, _super); - function DeMaterializeSubscriber(destination) { - return _super.call(this, destination) || this; - } - DeMaterializeSubscriber.prototype._next = function (value) { - value.observe(this.destination); - }; - return DeMaterializeSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=dematerialize.js.map + // typed arrays + if (type === '[object Int8Array]') { + return 'int8array'; + } + if (type === '[object Uint8Array]') { + return 'uint8array'; + } + if (type === '[object Uint8ClampedArray]') { + return 'uint8clampedarray'; + } + if (type === '[object Int16Array]') { + return 'int16array'; + } + if (type === '[object Uint16Array]') { + return 'uint16array'; + } + if (type === '[object Int32Array]') { + return 'int32array'; + } + if (type === '[object Uint32Array]') { + return 'uint32array'; + } + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/distinct.js -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ + // must be a plain object + return 'object'; +}; +/***/ }), +/* 548 */ +/***/ (function(module, exports, __webpack_require__) { -function distinct(keySelector, flushes) { - return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); }; -} -var DistinctOperator = /*@__PURE__*/ (function () { - function DistinctOperator(keySelector, flushes) { - this.keySelector = keySelector; - this.flushes = flushes; - } - DistinctOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new distinct_DistinctSubscriber(subscriber, this.keySelector, this.flushes)); - }; - return DistinctOperator; -}()); -var distinct_DistinctSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](DistinctSubscriber, _super); - function DistinctSubscriber(destination, keySelector, flushes) { - var _this = _super.call(this, destination) || this; - _this.keySelector = keySelector; - _this.values = new Set(); - if (flushes) { - _this.add(Object(subscribeToResult["a" /* subscribeToResult */])(_this, flushes)); - } - return _this; - } - DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.values.clear(); - }; - DistinctSubscriber.prototype.notifyError = function (error, innerSub) { - this._error(error); - }; - DistinctSubscriber.prototype._next = function (value) { - if (this.keySelector) { - this._useKeySelector(value); - } - else { - this._finalizeNext(value, value); - } - }; - DistinctSubscriber.prototype._useKeySelector = function (value) { - var key; - var destination = this.destination; - try { - key = this.keySelector(value); - } - catch (err) { - destination.error(err); - return; - } - this._finalizeNext(key, value); - }; - DistinctSubscriber.prototype._finalizeNext = function (key, value) { - var values = this.values; - if (!values.has(key)) { - values.add(key); - this.destination.next(value); - } - }; - return DistinctSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); +"use strict"; +/*! + * is-data-descriptor + * + * Copyright (c) 2015, Jon Schlinkert. + * Licensed under the MIT License. + */ -//# sourceMappingURL=distinct.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js -/** PURE_IMPORTS_START tslib,_Subscriber,_util_tryCatch,_util_errorObject PURE_IMPORTS_END */ +var typeOf = __webpack_require__(549); +// data descriptor properties +var data = { + configurable: 'boolean', + enumerable: 'boolean', + writable: 'boolean' +}; +function isDataDescriptor(obj, prop) { + if (typeOf(obj) !== 'object') { + return false; + } -function distinctUntilChanged(compare, keySelector) { - return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); }; -} -var DistinctUntilChangedOperator = /*@__PURE__*/ (function () { - function DistinctUntilChangedOperator(compare, keySelector) { - this.compare = compare; - this.keySelector = keySelector; - } - DistinctUntilChangedOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new distinctUntilChanged_DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector)); - }; - return DistinctUntilChangedOperator; -}()); -var distinctUntilChanged_DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](DistinctUntilChangedSubscriber, _super); - function DistinctUntilChangedSubscriber(destination, compare, keySelector) { - var _this = _super.call(this, destination) || this; - _this.keySelector = keySelector; - _this.hasKey = false; - if (typeof compare === 'function') { - _this.compare = compare; - } - return _this; + if (typeof prop === 'string') { + var val = Object.getOwnPropertyDescriptor(obj, prop); + return typeof val !== 'undefined'; + } + + if (!('value' in obj) && !('writable' in obj)) { + return false; + } + + for (var key in obj) { + if (key === 'value') continue; + + if (!data.hasOwnProperty(key)) { + continue; } - DistinctUntilChangedSubscriber.prototype.compare = function (x, y) { - return x === y; - }; - DistinctUntilChangedSubscriber.prototype._next = function (value) { - var keySelector = this.keySelector; - var key = value; - if (keySelector) { - key = Object(tryCatch["a" /* tryCatch */])(this.keySelector)(value); - if (key === errorObject["a" /* errorObject */]) { - return this.destination.error(errorObject["a" /* errorObject */].e); - } - } - var result = false; - if (this.hasKey) { - result = Object(tryCatch["a" /* tryCatch */])(this.compare)(this.key, key); - if (result === errorObject["a" /* errorObject */]) { - return this.destination.error(errorObject["a" /* errorObject */].e); - } - } - else { - this.hasKey = true; - } - if (Boolean(result) === false) { - this.key = key; - this.destination.next(value); - } - }; - return DistinctUntilChangedSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=distinctUntilChanged.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js -/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */ + if (typeOf(obj[key]) === data[key]) { + continue; + } -function distinctUntilKeyChanged(key, compare) { - return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; }); + if (typeof obj[key] !== 'undefined') { + return false; + } + } + return true; } -//# sourceMappingURL=distinctUntilKeyChanged.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js -var ArgumentOutOfRangeError = __webpack_require__(32); +/** + * Expose `isDataDescriptor` + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/filter.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +module.exports = isDataDescriptor; -function filter(predicate, thisArg) { - return function filterOperatorFunction(source) { - return source.lift(new FilterOperator(predicate, thisArg)); - }; -} -var FilterOperator = /*@__PURE__*/ (function () { - function FilterOperator(predicate, thisArg) { - this.predicate = predicate; - this.thisArg = thisArg; - } - FilterOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new filter_FilterSubscriber(subscriber, this.predicate, this.thisArg)); - }; - return FilterOperator; -}()); -var filter_FilterSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](FilterSubscriber, _super); - function FilterSubscriber(destination, predicate, thisArg) { - var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.thisArg = thisArg; - _this.count = 0; - return _this; - } - FilterSubscriber.prototype._next = function (value) { - var result; - try { - result = this.predicate.call(this.thisArg, value, this.count++); - } - catch (err) { - this.destination.error(err); - return; - } - if (result) { - this.destination.next(value); - } - }; - return FilterSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=filter.js.map +/***/ }), +/* 549 */ +/***/ (function(module, exports, __webpack_require__) { -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/noop.js -var noop = __webpack_require__(21); +var isBuffer = __webpack_require__(396); +var toString = Object.prototype.toString; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isFunction.js -var isFunction = __webpack_require__(33); +/** + * Get the native `typeof` a value. + * + * @param {*} `val` + * @return {*} Native javascript type + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/tap.js -/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */ +module.exports = function kindOf(val) { + // primitivies + if (typeof val === 'undefined') { + return 'undefined'; + } + if (val === null) { + return 'null'; + } + if (val === true || val === false || val instanceof Boolean) { + return 'boolean'; + } + if (typeof val === 'string' || val instanceof String) { + return 'string'; + } + if (typeof val === 'number' || val instanceof Number) { + return 'number'; + } + // functions + if (typeof val === 'function' || val instanceof Function) { + return 'function'; + } + // array + if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) { + return 'array'; + } + // check for instances of RegExp and Date before calling `toString` + if (val instanceof RegExp) { + return 'regexp'; + } + if (val instanceof Date) { + return 'date'; + } -function tap(nextOrObserver, error, complete) { - return function tapOperatorFunction(source) { - return source.lift(new DoOperator(nextOrObserver, error, complete)); - }; -} -var DoOperator = /*@__PURE__*/ (function () { - function DoOperator(nextOrObserver, error, complete) { - this.nextOrObserver = nextOrObserver; - this.error = error; - this.complete = complete; - } - DoOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new tap_TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete)); - }; - return DoOperator; -}()); -var tap_TapSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](TapSubscriber, _super); - function TapSubscriber(destination, observerOrNext, error, complete) { - var _this = _super.call(this, destination) || this; - _this._tapNext = noop["a" /* noop */]; - _this._tapError = noop["a" /* noop */]; - _this._tapComplete = noop["a" /* noop */]; - _this._tapError = error || noop["a" /* noop */]; - _this._tapComplete = complete || noop["a" /* noop */]; - if (Object(isFunction["a" /* isFunction */])(observerOrNext)) { - _this._context = _this; - _this._tapNext = observerOrNext; - } - else if (observerOrNext) { - _this._context = observerOrNext; - _this._tapNext = observerOrNext.next || noop["a" /* noop */]; - _this._tapError = observerOrNext.error || noop["a" /* noop */]; - _this._tapComplete = observerOrNext.complete || noop["a" /* noop */]; - } - return _this; - } - TapSubscriber.prototype._next = function (value) { - try { - this._tapNext.call(this._context, value); - } - catch (err) { - this.destination.error(err); - return; - } - this.destination.next(value); - }; - TapSubscriber.prototype._error = function (err) { - try { - this._tapError.call(this._context, err); - } - catch (err) { - this.destination.error(err); - return; - } - this.destination.error(err); - }; - TapSubscriber.prototype._complete = function () { - try { - this._tapComplete.call(this._context); - } - catch (err) { - this.destination.error(err); - return; - } - return this.destination.complete(); - }; - return TapSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=tap.js.map + // other objects + var type = toString.call(val); + + if (type === '[object RegExp]') { + return 'regexp'; + } + if (type === '[object Date]') { + return 'date'; + } + if (type === '[object Arguments]') { + return 'arguments'; + } + if (type === '[object Error]') { + return 'error'; + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/EmptyError.js -var EmptyError = __webpack_require__(34); + // buffer + if (isBuffer(val)) { + return 'buffer'; + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js -/** PURE_IMPORTS_START _tap,_util_EmptyError PURE_IMPORTS_END */ + // es6: Map, WeakMap, Set, WeakSet + if (type === '[object Set]') { + return 'set'; + } + if (type === '[object WeakSet]') { + return 'weakset'; + } + if (type === '[object Map]') { + return 'map'; + } + if (type === '[object WeakMap]') { + return 'weakmap'; + } + if (type === '[object Symbol]') { + return 'symbol'; + } + // typed arrays + if (type === '[object Int8Array]') { + return 'int8array'; + } + if (type === '[object Uint8Array]') { + return 'uint8array'; + } + if (type === '[object Uint8ClampedArray]') { + return 'uint8clampedarray'; + } + if (type === '[object Int16Array]') { + return 'int16array'; + } + if (type === '[object Uint16Array]') { + return 'uint16array'; + } + if (type === '[object Int32Array]') { + return 'int32array'; + } + if (type === '[object Uint32Array]') { + return 'uint32array'; + } + if (type === '[object Float32Array]') { + return 'float32array'; + } + if (type === '[object Float64Array]') { + return 'float64array'; + } -var throwIfEmpty = function (errorFactory) { - if (errorFactory === void 0) { - errorFactory = defaultErrorFactory; - } - return tap({ - hasValue: false, - next: function () { this.hasValue = true; }, - complete: function () { - if (!this.hasValue) { - throw errorFactory(); - } - } - }); + // must be a plain object + return 'object'; }; -function defaultErrorFactory() { - return new EmptyError["a" /* EmptyError */](); -} -//# sourceMappingURL=throwIfEmpty.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/empty.js -var empty = __webpack_require__(9); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/take.js -/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */ +/***/ }), +/* 550 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +var brackets = __webpack_require__(538); +var define = __webpack_require__(403); +var utils = __webpack_require__(551); -function take(count) { - return function (source) { - if (count === 0) { - return Object(empty["b" /* empty */])(); - } - else { - return source.lift(new take_TakeOperator(count)); - } - }; -} -var take_TakeOperator = /*@__PURE__*/ (function () { - function TakeOperator(total) { - this.total = total; - if (this.total < 0) { - throw new ArgumentOutOfRangeError["a" /* ArgumentOutOfRangeError */]; - } - } - TakeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new take_TakeSubscriber(subscriber, this.total)); - }; - return TakeOperator; -}()); -var take_TakeSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](TakeSubscriber, _super); - function TakeSubscriber(destination, total) { - var _this = _super.call(this, destination) || this; - _this.total = total; - _this.count = 0; - return _this; - } - TakeSubscriber.prototype._next = function (value) { - var total = this.total; - var count = ++this.count; - if (count <= total) { - this.destination.next(value); - if (count === total) { - this.destination.complete(); - this.unsubscribe(); - } - } - }; - return TakeSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=take.js.map +/** + * Characters to use in text regex (we want to "not" match + * characters that are matched by other parsers) + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/elementAt.js -/** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */ +var TEXT_REGEX = '([!@*?+]?\\(|\\)|[*?.+\\\\]|\\[:?(?=.*\\])|:?\\])+'; +var not = utils.createRegex(TEXT_REGEX); +/** + * Extglob parsers + */ +function parsers(extglob) { + extglob.state = extglob.state || {}; + /** + * Use `expand-brackets` parsers + */ + extglob.use(brackets.parsers); + extglob.parser.sets.paren = extglob.parser.sets.paren || []; + extglob.parser -function elementAt(index, defaultValue) { - if (index < 0) { - throw new ArgumentOutOfRangeError["a" /* ArgumentOutOfRangeError */](); - } - var hasDefaultValue = arguments.length >= 2; - return function (source) { - return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue - ? defaultIfEmpty(defaultValue) - : throwIfEmpty(function () { return new ArgumentOutOfRangeError["a" /* ArgumentOutOfRangeError */](); })); - }; -} -//# sourceMappingURL=elementAt.js.map + /** + * Extglob open: "*(" + */ + + .capture('paren.open', function() { + var parsed = this.parsed; + var pos = this.position(); + var m = this.match(/^([!@*?+])?\(/); + if (!m) return; + + var prev = this.prev(); + var prefix = m[1]; + var val = m[0]; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/fromArray.js -var fromArray = __webpack_require__(18); + var open = pos({ + type: 'paren.open', + parsed: parsed, + val: val + }); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/scalar.js -var scalar = __webpack_require__(58); + var node = pos({ + type: 'paren', + prefix: prefix, + nodes: [open] + }); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/endWith.js -/** PURE_IMPORTS_START _observable_fromArray,_observable_scalar,_observable_empty,_observable_concat,_util_isScheduler PURE_IMPORTS_END */ + // if nested negation extglobs, just cancel them out to simplify + if (prefix === '!' && prev.type === 'paren' && prev.prefix === '!') { + prev.prefix = '@'; + node.prefix = '@'; + } + + define(node, 'rest', this.input); + define(node, 'parsed', parsed); + define(node, 'parent', prev); + define(open, 'parent', node); + this.push('paren', node); + prev.nodes.push(node); + }) + /** + * Extglob close: ")" + */ + .capture('paren.close', function() { + var parsed = this.parsed; + var pos = this.position(); + var m = this.match(/^\)/); + if (!m) return; + var parent = this.pop('paren'); + var node = pos({ + type: 'paren.close', + rest: this.input, + parsed: parsed, + val: m[0] + }); -function endWith() { - var array = []; - for (var _i = 0; _i < arguments.length; _i++) { - array[_i] = arguments[_i]; - } - return function (source) { - var scheduler = array[array.length - 1]; - if (Object(isScheduler["a" /* isScheduler */])(scheduler)) { - array.pop(); - } - else { - scheduler = null; - } - var len = array.length; - if (len === 1 && !scheduler) { - return Object(concat["a" /* concat */])(source, Object(scalar["a" /* scalar */])(array[0])); - } - else if (len > 0) { - return Object(concat["a" /* concat */])(source, Object(fromArray["a" /* fromArray */])(array, scheduler)); - } - else { - return Object(concat["a" /* concat */])(source, Object(empty["b" /* empty */])(scheduler)); + if (!this.isType(parent, 'paren')) { + if (this.options.strict) { + throw new Error('missing opening paren: "("'); } - }; -} -//# sourceMappingURL=endWith.js.map + node.escaped = true; + return node; + } + + node.prefix = parent.prefix; + parent.nodes.push(node); + define(node, 'parent', parent); + }) + + /** + * Escape: "\\." + */ + + .capture('escape', function() { + var pos = this.position(); + var m = this.match(/^\\(.)/); + if (!m) return; + + return pos({ + type: 'escape', + val: m[0], + ch: m[1] + }); + }) + + /** + * Question marks: "?" + */ + + .capture('qmark', function() { + var parsed = this.parsed; + var pos = this.position(); + var m = this.match(/^\?+(?!\()/); + if (!m) return; + extglob.state.metachar = true; + return pos({ + type: 'qmark', + rest: this.input, + parsed: parsed, + val: m[0] + }); + }) + + /** + * Character parsers + */ + + .capture('star', /^\*(?!\()/) + .capture('plus', /^\+(?!\()/) + .capture('dot', /^\./) + .capture('text', not); +}; + +/** + * Expose text regex string + */ + +module.exports.TEXT_REGEX = TEXT_REGEX; + +/** + * Extglob parsers + */ + +module.exports = parsers; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/every.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/***/ }), +/* 551 */ +/***/ (function(module, exports, __webpack_require__) { -function every(predicate, thisArg) { - return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); }; -} -var EveryOperator = /*@__PURE__*/ (function () { - function EveryOperator(predicate, thisArg, source) { - this.predicate = predicate; - this.thisArg = thisArg; - this.source = source; - } - EveryOperator.prototype.call = function (observer, source) { - return source.subscribe(new every_EverySubscriber(observer, this.predicate, this.thisArg, this.source)); - }; - return EveryOperator; -}()); -var every_EverySubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](EverySubscriber, _super); - function EverySubscriber(destination, predicate, thisArg, source) { - var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.thisArg = thisArg; - _this.source = source; - _this.index = 0; - _this.thisArg = thisArg || _this; - return _this; - } - EverySubscriber.prototype.notifyComplete = function (everyValueMatch) { - this.destination.next(everyValueMatch); - this.destination.complete(); - }; - EverySubscriber.prototype._next = function (value) { - var result = false; - try { - result = this.predicate.call(this.thisArg, value, this.index++, this.source); - } - catch (err) { - this.destination.error(err); - return; - } - if (!result) { - this.notifyComplete(false); - } - }; - EverySubscriber.prototype._complete = function () { - this.notifyComplete(true); - }; - return EverySubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=every.js.map +"use strict"; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/exhaust.js -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +var regex = __webpack_require__(401); +var Cache = __webpack_require__(531); +/** + * Utils + */ -function exhaust() { - return function (source) { return source.lift(new SwitchFirstOperator()); }; -} -var SwitchFirstOperator = /*@__PURE__*/ (function () { - function SwitchFirstOperator() { - } - SwitchFirstOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new exhaust_SwitchFirstSubscriber(subscriber)); - }; - return SwitchFirstOperator; -}()); -var exhaust_SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SwitchFirstSubscriber, _super); - function SwitchFirstSubscriber(destination) { - var _this = _super.call(this, destination) || this; - _this.hasCompleted = false; - _this.hasSubscription = false; - return _this; - } - SwitchFirstSubscriber.prototype._next = function (value) { - if (!this.hasSubscription) { - this.hasSubscription = true; - this.add(Object(subscribeToResult["a" /* subscribeToResult */])(this, value)); - } - }; - SwitchFirstSubscriber.prototype._complete = function () { - this.hasCompleted = true; - if (!this.hasSubscription) { - this.destination.complete(); - } - }; - SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) { - this.remove(innerSub); - this.hasSubscription = false; - if (this.hasCompleted) { - this.destination.complete(); - } - }; - return SwitchFirstSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=exhaust.js.map +var utils = module.exports; +var cache = utils.cache = new Cache(); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/map.js -var map = __webpack_require__(15); +/** + * Cast `val` to an array + * @return {Array} + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */ +utils.arrayify = function(val) { + if (!Array.isArray(val)) { + return [val]; + } + return val; +}; +/** + * Memoize a generated regex or function + */ +utils.memoize = function(type, pattern, options, fn) { + var key = utils.createKey(type + pattern, options); + if (cache.has(type, key)) { + return cache.get(type, key); + } + var val = fn(pattern, options); + if (options && options.cache === false) { + return val; + } -function exhaustMap(project, resultSelector) { - if (resultSelector) { - return function (source) { return source.pipe(exhaustMap(function (a, i) { return Object(from["a" /* from */])(project(a, i)).pipe(Object(map["a" /* map */])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; - } - return function (source) { - return source.lift(new ExhauseMapOperator(project)); - }; -} -var ExhauseMapOperator = /*@__PURE__*/ (function () { - function ExhauseMapOperator(project) { - this.project = project; - } - ExhauseMapOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new exhaustMap_ExhaustMapSubscriber(subscriber, this.project)); - }; - return ExhauseMapOperator; -}()); -var exhaustMap_ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](ExhaustMapSubscriber, _super); - function ExhaustMapSubscriber(destination, project) { - var _this = _super.call(this, destination) || this; - _this.project = project; - _this.hasSubscription = false; - _this.hasCompleted = false; - _this.index = 0; - return _this; - } - ExhaustMapSubscriber.prototype._next = function (value) { - if (!this.hasSubscription) { - this.tryNext(value); - } - }; - ExhaustMapSubscriber.prototype.tryNext = function (value) { - var index = this.index++; - var destination = this.destination; - try { - var result = this.project(value, index); - this.hasSubscription = true; - this.add(Object(subscribeToResult["a" /* subscribeToResult */])(this, result, value, index)); - } - catch (err) { - destination.error(err); - } - }; - ExhaustMapSubscriber.prototype._complete = function () { - this.hasCompleted = true; - if (!this.hasSubscription) { - this.destination.complete(); - } - }; - ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(innerValue); - }; - ExhaustMapSubscriber.prototype.notifyError = function (err) { - this.destination.error(err); - }; - ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) { - this.remove(innerSub); - this.hasSubscription = false; - if (this.hasCompleted) { - this.destination.complete(); - } - }; - return ExhaustMapSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=exhaustMap.js.map + cache.set(type, key, val); + return val; +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/expand.js -/** PURE_IMPORTS_START tslib,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/** + * Create the key to use for memoization. The key is generated + * by iterating over the options and concatenating key-value pairs + * to the pattern string. + */ +utils.createKey = function(pattern, options) { + var key = pattern; + if (typeof options === 'undefined') { + return key; + } + for (var prop in options) { + key += ';' + prop + '=' + String(options[prop]); + } + return key; +}; +/** + * Create the regex to use for matching text + */ +utils.createRegex = function(str) { + var opts = {contains: true, strictClose: false}; + return regex(str, opts); +}; -function expand(project, concurrent, scheduler) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - if (scheduler === void 0) { - scheduler = undefined; - } - concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent; - return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); }; -} -var ExpandOperator = /*@__PURE__*/ (function () { - function ExpandOperator(project, concurrent, scheduler) { - this.project = project; - this.concurrent = concurrent; - this.scheduler = scheduler; - } - ExpandOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new expand_ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler)); - }; - return ExpandOperator; -}()); +/***/ }), +/* 552 */ +/***/ (function(module, exports, __webpack_require__) { -var expand_ExpandSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](ExpandSubscriber, _super); - function ExpandSubscriber(destination, project, concurrent, scheduler) { - var _this = _super.call(this, destination) || this; - _this.project = project; - _this.concurrent = concurrent; - _this.scheduler = scheduler; - _this.index = 0; - _this.active = 0; - _this.hasCompleted = false; - if (concurrent < Number.POSITIVE_INFINITY) { - _this.buffer = []; - } - return _this; - } - ExpandSubscriber.dispatch = function (arg) { - var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index; - subscriber.subscribeToProjection(result, value, index); - }; - ExpandSubscriber.prototype._next = function (value) { - var destination = this.destination; - if (destination.closed) { - this._complete(); - return; - } - var index = this.index++; - if (this.active < this.concurrent) { - destination.next(value); - var result = Object(tryCatch["a" /* tryCatch */])(this.project)(value, index); - if (result === errorObject["a" /* errorObject */]) { - destination.error(errorObject["a" /* errorObject */].e); - } - else if (!this.scheduler) { - this.subscribeToProjection(result, value, index); - } - else { - var state = { subscriber: this, result: result, value: value, index: index }; - this.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); - } - } - else { - this.buffer.push(value); - } - }; - ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) { - this.active++; - this.add(Object(subscribeToResult["a" /* subscribeToResult */])(this, result, value, index)); - }; - ExpandSubscriber.prototype._complete = function () { - this.hasCompleted = true; - if (this.hasCompleted && this.active === 0) { - this.destination.complete(); - } - }; - ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this._next(innerValue); - }; - ExpandSubscriber.prototype.notifyComplete = function (innerSub) { - var buffer = this.buffer; - this.remove(innerSub); - this.active--; - if (buffer && buffer.length > 0) { - this._next(buffer.shift()); - } - if (this.hasCompleted && this.active === 0) { - this.destination.complete(); - } - }; - return ExpandSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); +"use strict"; -//# sourceMappingURL=expand.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/finalize.js -/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */ +/** + * Module dependencies + */ +var Snapdragon = __webpack_require__(429); +var define = __webpack_require__(403); +var extend = __webpack_require__(399); +/** + * Local dependencies + */ -function finalize(callback) { - return function (source) { return source.lift(new FinallyOperator(callback)); }; -} -var FinallyOperator = /*@__PURE__*/ (function () { - function FinallyOperator(callback) { - this.callback = callback; - } - FinallyOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new finalize_FinallySubscriber(subscriber, this.callback)); - }; - return FinallyOperator; -}()); -var finalize_FinallySubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](FinallySubscriber, _super); - function FinallySubscriber(destination, callback) { - var _this = _super.call(this, destination) || this; - _this.add(new Subscription["a" /* Subscription */](callback)); - return _this; - } - return FinallySubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=finalize.js.map +var compilers = __webpack_require__(537); +var parsers = __webpack_require__(550); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/find.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/** + * Customize Snapdragon parser and renderer + */ + +function Extglob(options) { + this.options = extend({source: 'extglob'}, options); + this.snapdragon = this.options.snapdragon || new Snapdragon(this.options); + this.snapdragon.patterns = this.snapdragon.patterns || {}; + this.compiler = this.snapdragon.compiler; + this.parser = this.snapdragon.parser; + compilers(this.snapdragon); + parsers(this.snapdragon); -function find(predicate, thisArg) { - if (typeof predicate !== 'function') { - throw new TypeError('predicate is not a function'); - } - return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); }; -} -var FindValueOperator = /*@__PURE__*/ (function () { - function FindValueOperator(predicate, source, yieldIndex, thisArg) { - this.predicate = predicate; - this.source = source; - this.yieldIndex = yieldIndex; - this.thisArg = thisArg; - } - FindValueOperator.prototype.call = function (observer, source) { - return source.subscribe(new find_FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg)); - }; - return FindValueOperator; -}()); + /** + * Override Snapdragon `.parse` method + */ -var find_FindValueSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](FindValueSubscriber, _super); - function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) { - var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.source = source; - _this.yieldIndex = yieldIndex; - _this.thisArg = thisArg; - _this.index = 0; - return _this; + define(this.snapdragon, 'parse', function(str, options) { + var parsed = Snapdragon.prototype.parse.apply(this, arguments); + parsed.input = str; + + // escape unmatched brace/bracket/parens + var last = this.parser.stack.pop(); + if (last && this.options.strict !== true) { + var node = last.nodes[0]; + node.val = '\\' + node.val; + var sibling = node.parent.nodes[1]; + if (sibling.type === 'star') { + sibling.loose = true; + } } - FindValueSubscriber.prototype.notifyComplete = function (value) { - var destination = this.destination; - destination.next(value); - destination.complete(); - }; - FindValueSubscriber.prototype._next = function (value) { - var _a = this, predicate = _a.predicate, thisArg = _a.thisArg; - var index = this.index++; - try { - var result = predicate.call(thisArg || this, value, index, this.source); - if (result) { - this.notifyComplete(this.yieldIndex ? index : value); - } - } - catch (err) { - this.destination.error(err); - } - }; - FindValueSubscriber.prototype._complete = function () { - this.notifyComplete(this.yieldIndex ? -1 : undefined); - }; - return FindValueSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=find.js.map + // add non-enumerable parser reference + define(parsed, 'parser', this.parser); + return parsed; + }); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/findIndex.js -/** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */ + /** + * Decorate `.parse` method + */ + + define(this, 'parse', function(ast, options) { + return this.snapdragon.parse.apply(this.snapdragon, arguments); + }); + + /** + * Decorate `.compile` method + */ + + define(this, 'compile', function(ast, options) { + return this.snapdragon.compile.apply(this.snapdragon, arguments); + }); -function findIndex(predicate, thisArg) { - return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); }; } -//# sourceMappingURL=findIndex.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/identity.js -var identity = __webpack_require__(23); +/** + * Expose `Extglob` + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/first.js -/** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */ +module.exports = Extglob; +/***/ }), +/* 553 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +var extglob = __webpack_require__(536); +var nanomatch = __webpack_require__(526); +var regexNot = __webpack_require__(401); +var toRegex = __webpack_require__(390); +var not; -function first(predicate, defaultValue) { - var hasDefaultValue = arguments.length >= 2; - return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity["a" /* identity */], take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError["a" /* EmptyError */](); })); }; -} -//# sourceMappingURL=first.js.map +/** + * Characters to use in negation regex (we want to "not" match + * characters that are matched by other parsers) + */ -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/groupBy.js -var groupBy = __webpack_require__(73); +var TEXT = '([!@*?+]?\\(|\\)|\\[:?(?=.*?:?\\])|:?\\]|[*+?!^$.\\\\/])+'; +var createNotRegex = function(opts) { + return not || (not = textRegex(TEXT)); +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/** + * Parsers + */ +module.exports = function(snapdragon) { + var parsers = snapdragon.parser.parsers; -function ignoreElements() { - return function ignoreElementsOperatorFunction(source) { - return source.lift(new IgnoreElementsOperator()); - }; -} -var IgnoreElementsOperator = /*@__PURE__*/ (function () { - function IgnoreElementsOperator() { - } - IgnoreElementsOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new ignoreElements_IgnoreElementsSubscriber(subscriber)); - }; - return IgnoreElementsOperator; -}()); -var ignoreElements_IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](IgnoreElementsSubscriber, _super); - function IgnoreElementsSubscriber() { - return _super !== null && _super.apply(this, arguments) || this; - } - IgnoreElementsSubscriber.prototype._next = function (unused) { - }; - return IgnoreElementsSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=ignoreElements.js.map + // register nanomatch parsers + snapdragon.use(nanomatch.parsers); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/isEmpty.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + // get references to some specific nanomatch parsers before they + // are overridden by the extglob and/or parsers + var escape = parsers.escape; + var slash = parsers.slash; + var qmark = parsers.qmark; + var plus = parsers.plus; + var star = parsers.star; + var dot = parsers.dot; + // register extglob parsers + snapdragon.use(extglob.parsers); -function isEmpty() { - return function (source) { return source.lift(new IsEmptyOperator()); }; -} -var IsEmptyOperator = /*@__PURE__*/ (function () { - function IsEmptyOperator() { - } - IsEmptyOperator.prototype.call = function (observer, source) { - return source.subscribe(new isEmpty_IsEmptySubscriber(observer)); - }; - return IsEmptyOperator; -}()); -var isEmpty_IsEmptySubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](IsEmptySubscriber, _super); - function IsEmptySubscriber(destination) { - return _super.call(this, destination) || this; - } - IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) { - var destination = this.destination; - destination.next(isEmpty); - destination.complete(); - }; - IsEmptySubscriber.prototype._next = function (value) { - this.notifyComplete(false); - }; - IsEmptySubscriber.prototype._complete = function () { - this.notifyComplete(true); - }; - return IsEmptySubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=isEmpty.js.map + // custom micromatch parsers + snapdragon.parser + .use(function() { + // override "notRegex" created in nanomatch parser + this.notRegex = /^\!+(?!\()/; + }) + // reset the referenced parsers + .capture('escape', escape) + .capture('slash', slash) + .capture('qmark', qmark) + .capture('star', star) + .capture('plus', plus) + .capture('dot', dot) + + /** + * Override `text` parser + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/takeLast.js -/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */ + .capture('text', function() { + if (this.isInside('bracket')) return; + var pos = this.position(); + var m = this.match(createNotRegex(this.options)); + if (!m || !m[0]) return; + // escape regex boundary characters and simple brackets + var val = m[0].replace(/([[\]^$])/g, '\\$1'); + return pos({ + type: 'text', + val: val + }); + }); +}; +/** + * Create text regex + */ -function takeLast(count) { - return function takeLastOperatorFunction(source) { - if (count === 0) { - return Object(empty["b" /* empty */])(); - } - else { - return source.lift(new takeLast_TakeLastOperator(count)); - } - }; +function textRegex(pattern) { + var notStr = regexNot.create(pattern, {contains: true, strictClose: false}); + var prefix = '(?:[\\^]|\\\\|'; + return toRegex(prefix + notStr + ')', {strictClose: false}); } -var takeLast_TakeLastOperator = /*@__PURE__*/ (function () { - function TakeLastOperator(total) { - this.total = total; - if (this.total < 0) { - throw new ArgumentOutOfRangeError["a" /* ArgumentOutOfRangeError */]; - } - } - TakeLastOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new takeLast_TakeLastSubscriber(subscriber, this.total)); - }; - return TakeLastOperator; -}()); -var takeLast_TakeLastSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](TakeLastSubscriber, _super); - function TakeLastSubscriber(destination, total) { - var _this = _super.call(this, destination) || this; - _this.total = total; - _this.ring = new Array(); - _this.count = 0; - return _this; - } - TakeLastSubscriber.prototype._next = function (value) { - var ring = this.ring; - var total = this.total; - var count = this.count++; - if (ring.length < total) { - ring.push(value); - } - else { - var index = count % total; - ring[index] = value; - } - }; - TakeLastSubscriber.prototype._complete = function () { - var destination = this.destination; - var count = this.count; - if (count > 0) { - var total = this.count >= this.total ? this.total : this.count; - var ring = this.ring; - for (var i = 0; i < total; i++) { - var idx = (count++) % total; - destination.next(ring[idx]); - } - } - destination.complete(); - }; - return TakeLastSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=takeLast.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/last.js -/** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */ +/***/ }), +/* 554 */ +/***/ (function(module, exports, __webpack_require__) { +module.exports = new (__webpack_require__(531))(); +/***/ }), +/* 555 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; -function last(predicate, defaultValue) { - var hasDefaultValue = arguments.length >= 2; - return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity["a" /* identity */], takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError["a" /* EmptyError */](); })); }; -} -//# sourceMappingURL=last.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/mapTo.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +var utils = module.exports; +var path = __webpack_require__(16); +/** + * Module dependencies + */ -function mapTo(value) { - return function (source) { return source.lift(new MapToOperator(value)); }; -} -var MapToOperator = /*@__PURE__*/ (function () { - function MapToOperator(value) { - this.value = value; - } - MapToOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new mapTo_MapToSubscriber(subscriber, this.value)); - }; - return MapToOperator; -}()); -var mapTo_MapToSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](MapToSubscriber, _super); - function MapToSubscriber(destination, value) { - var _this = _super.call(this, destination) || this; - _this.value = value; - return _this; - } - MapToSubscriber.prototype._next = function (x) { - this.destination.next(this.value); - }; - return MapToSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=mapTo.js.map +var Snapdragon = __webpack_require__(429); +utils.define = __webpack_require__(403); +utils.diff = __webpack_require__(533); +utils.extend = __webpack_require__(399); +utils.pick = __webpack_require__(534); +utils.typeOf = __webpack_require__(556); +utils.unique = __webpack_require__(402); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/materialize.js -/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */ +/** + * Returns true if the platform is windows, or `path.sep` is `\\`. + * This is defined as a function to allow `path.sep` to be set in unit tests, + * or by the user, if there is a reason to do so. + * @return {Boolean} + */ +utils.isWindows = function() { + return path.sep === '\\' || process.platform === 'win32'; +}; +/** + * Get the `Snapdragon` instance to use + */ -function materialize() { - return function materializeOperatorFunction(source) { - return source.lift(new MaterializeOperator()); - }; -} -var MaterializeOperator = /*@__PURE__*/ (function () { - function MaterializeOperator() { - } - MaterializeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new materialize_MaterializeSubscriber(subscriber)); - }; - return MaterializeOperator; -}()); -var materialize_MaterializeSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](MaterializeSubscriber, _super); - function MaterializeSubscriber(destination) { - return _super.call(this, destination) || this; - } - MaterializeSubscriber.prototype._next = function (value) { - this.destination.next(Notification["a" /* Notification */].createNext(value)); - }; - MaterializeSubscriber.prototype._error = function (err) { - var destination = this.destination; - destination.next(Notification["a" /* Notification */].createError(err)); - destination.complete(); - }; - MaterializeSubscriber.prototype._complete = function () { - var destination = this.destination; - destination.next(Notification["a" /* Notification */].createComplete()); - destination.complete(); - }; - return MaterializeSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=materialize.js.map +utils.instantiate = function(ast, options) { + var snapdragon; + // if an instance was created by `.parse`, use that instance + if (utils.typeOf(ast) === 'object' && ast.snapdragon) { + snapdragon = ast.snapdragon; + // if the user supplies an instance on options, use that instance + } else if (utils.typeOf(options) === 'object' && options.snapdragon) { + snapdragon = options.snapdragon; + // create a new instance + } else { + snapdragon = new Snapdragon(options); + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/scan.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + utils.define(snapdragon, 'parse', function(str, options) { + var parsed = Snapdragon.prototype.parse.apply(this, arguments); + parsed.input = str; + // escape unmatched brace/bracket/parens + var last = this.parser.stack.pop(); + if (last && this.options.strictErrors !== true) { + var open = last.nodes[0]; + var inner = last.nodes[1]; + if (last.type === 'bracket') { + if (inner.val.charAt(0) === '[') { + inner.val = '\\' + inner.val; + } -function scan(accumulator, seed) { - var hasSeed = false; - if (arguments.length >= 2) { - hasSeed = true; - } - return function scanOperatorFunction(source) { - return source.lift(new ScanOperator(accumulator, seed, hasSeed)); - }; -} -var ScanOperator = /*@__PURE__*/ (function () { - function ScanOperator(accumulator, seed, hasSeed) { - if (hasSeed === void 0) { - hasSeed = false; + } else { + open.val = '\\' + open.val; + var sibling = open.parent.nodes[1]; + if (sibling.type === 'star') { + sibling.loose = true; } - this.accumulator = accumulator; - this.seed = seed; - this.hasSeed = hasSeed; - } - ScanOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new scan_ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed)); - }; - return ScanOperator; -}()); -var scan_ScanSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](ScanSubscriber, _super); - function ScanSubscriber(destination, accumulator, _seed, hasSeed) { - var _this = _super.call(this, destination) || this; - _this.accumulator = accumulator; - _this._seed = _seed; - _this.hasSeed = hasSeed; - _this.index = 0; - return _this; + } } - Object.defineProperty(ScanSubscriber.prototype, "seed", { - get: function () { - return this._seed; - }, - set: function (value) { - this.hasSeed = true; - this._seed = value; - }, - enumerable: true, - configurable: true - }); - ScanSubscriber.prototype._next = function (value) { - if (!this.hasSeed) { - this.seed = value; - this.destination.next(value); - } - else { - return this._tryNext(value); - } - }; - ScanSubscriber.prototype._tryNext = function (value) { - var index = this.index++; - var result; - try { - result = this.accumulator(this.seed, value, index); - } - catch (err) { - this.destination.error(err); - } - this.seed = result; - this.destination.next(result); - }; - return ScanSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=scan.js.map - -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/pipe.js -var pipe = __webpack_require__(45); - -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/reduce.js -/** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */ - - + // add non-enumerable parser reference + utils.define(parsed, 'parser', this.parser); + return parsed; + }); -function reduce(accumulator, seed) { - if (arguments.length >= 2) { - return function reduceOperatorFunctionWithSeed(source) { - return Object(pipe["a" /* pipe */])(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source); - }; - } - return function reduceOperatorFunction(source) { - return Object(pipe["a" /* pipe */])(scan(function (acc, value, index) { - return accumulator(acc, value, index + 1); - }), takeLast(1))(source); - }; -} -//# sourceMappingURL=reduce.js.map + return snapdragon; +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/max.js -/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ +/** + * Create the key to use for memoization. The key is generated + * by iterating over the options and concatenating key-value pairs + * to the pattern string. + */ -function max_max(comparer) { - var max = (typeof comparer === 'function') - ? function (x, y) { return comparer(x, y) > 0 ? x : y; } - : function (x, y) { return x > y ? x : y; }; - return reduce(max); -} -//# sourceMappingURL=max.js.map +utils.createKey = function(pattern, options) { + if (utils.typeOf(options) !== 'object') { + return pattern; + } + var val = pattern; + var keys = Object.keys(options); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + val += ';' + key + '=' + String(options[key]); + } + return val; +}; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/merge.js -var merge = __webpack_require__(85); +/** + * Cast `val` to an array + * @return {Array} + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/merge.js -/** PURE_IMPORTS_START _observable_merge PURE_IMPORTS_END */ +utils.arrayify = function(val) { + if (typeof val === 'string') return [val]; + return val ? (Array.isArray(val) ? val : [val]) : []; +}; -function merge_merge() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - return function (source) { return source.lift.call(merge["a" /* merge */].apply(void 0, [source].concat(observables))); }; -} -//# sourceMappingURL=merge.js.map +/** + * Return true if `val` is a non-empty string + */ -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/mergeAll.js -var mergeAll = __webpack_require__(55); +utils.isString = function(val) { + return typeof val === 'string'; +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js -/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */ +/** + * Return true if `val` is a non-empty string + */ -function mergeMapTo(innerObservable, resultSelector, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - if (typeof resultSelector === 'function') { - return Object(mergeMap["a" /* mergeMap */])(function () { return innerObservable; }, resultSelector, concurrent); - } - if (typeof resultSelector === 'number') { - concurrent = resultSelector; - } - return Object(mergeMap["a" /* mergeMap */])(function () { return innerObservable; }, concurrent); -} -//# sourceMappingURL=mergeMapTo.js.map +utils.isObject = function(val) { + return utils.typeOf(val) === 'object'; +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/mergeScan.js -/** PURE_IMPORTS_START tslib,_util_tryCatch,_util_errorObject,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */ +/** + * Returns true if the given `str` has special characters + */ +utils.hasSpecialChars = function(str) { + return /(?:(?:(^|\/)[!.])|[*?+()|\[\]{}]|[+@]\()/.test(str); +}; +/** + * Escape regex characters in the given string + */ +utils.escapeRegex = function(str) { + return str.replace(/[-[\]{}()^$|*+?.\\\/\s]/g, '\\$&'); +}; +/** + * Normalize slashes in the given filepath. + * + * @param {String} `filepath` + * @return {String} + */ -function mergeScan(accumulator, seed, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); }; -} -var MergeScanOperator = /*@__PURE__*/ (function () { - function MergeScanOperator(accumulator, seed, concurrent) { - this.accumulator = accumulator; - this.seed = seed; - this.concurrent = concurrent; - } - MergeScanOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new mergeScan_MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent)); - }; - return MergeScanOperator; -}()); +utils.toPosixPath = function(str) { + return str.replace(/\\+/g, '/'); +}; -var mergeScan_MergeScanSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](MergeScanSubscriber, _super); - function MergeScanSubscriber(destination, accumulator, acc, concurrent) { - var _this = _super.call(this, destination) || this; - _this.accumulator = accumulator; - _this.acc = acc; - _this.concurrent = concurrent; - _this.hasValue = false; - _this.hasCompleted = false; - _this.buffer = []; - _this.active = 0; - _this.index = 0; - return _this; - } - MergeScanSubscriber.prototype._next = function (value) { - if (this.active < this.concurrent) { - var index = this.index++; - var ish = Object(tryCatch["a" /* tryCatch */])(this.accumulator)(this.acc, value); - var destination = this.destination; - if (ish === errorObject["a" /* errorObject */]) { - destination.error(errorObject["a" /* errorObject */].e); - } - else { - this.active++; - this._innerSub(ish, value, index); - } - } - else { - this.buffer.push(value); - } - }; - MergeScanSubscriber.prototype._innerSub = function (ish, value, index) { - this.add(Object(subscribeToResult["a" /* subscribeToResult */])(this, ish, value, index)); - }; - MergeScanSubscriber.prototype._complete = function () { - this.hasCompleted = true; - if (this.active === 0 && this.buffer.length === 0) { - if (this.hasValue === false) { - this.destination.next(this.acc); - } - this.destination.complete(); - } - }; - MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - var destination = this.destination; - this.acc = innerValue; - this.hasValue = true; - destination.next(innerValue); - }; - MergeScanSubscriber.prototype.notifyComplete = function (innerSub) { - var buffer = this.buffer; - this.remove(innerSub); - this.active--; - if (buffer.length > 0) { - this._next(buffer.shift()); - } - else if (this.active === 0 && this.hasCompleted) { - if (this.hasValue === false) { - this.destination.next(this.acc); - } - this.destination.complete(); - } - }; - return MergeScanSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); +/** + * Strip backslashes before special characters in a string. + * + * @param {String} `str` + * @return {String} + */ -//# sourceMappingURL=mergeScan.js.map +utils.unescape = function(str) { + return utils.toPosixPath(str.replace(/\\(?=[*+?!.])/g, '')); +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/min.js -/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ +/** + * Strip the prefix from a filepath + * @param {String} `fp` + * @return {String} + */ -function min_min(comparer) { - var min = (typeof comparer === 'function') - ? function (x, y) { return comparer(x, y) < 0 ? x : y; } - : function (x, y) { return x < y ? x : y; }; - return reduce(min); -} -//# sourceMappingURL=min.js.map +utils.stripPrefix = function(str) { + if (str.charAt(0) !== '.') { + return str; + } + var ch = str.charAt(1); + if (utils.isSlash(ch)) { + return str.slice(2); + } + return str; +}; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js -var ConnectableObservable = __webpack_require__(80); +/** + * Returns true if the given str is an escaped or + * unescaped path character + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/multicast.js -/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */ +utils.isSlash = function(str) { + return str === '/' || str === '\\/' || str === '\\' || str === '\\\\'; +}; -function multicast(subjectOrSubjectFactory, selector) { - return function multicastOperatorFunction(source) { - var subjectFactory; - if (typeof subjectOrSubjectFactory === 'function') { - subjectFactory = subjectOrSubjectFactory; - } - else { - subjectFactory = function subjectFactory() { - return subjectOrSubjectFactory; - }; - } - if (typeof selector === 'function') { - return source.lift(new MulticastOperator(subjectFactory, selector)); - } - var connectable = Object.create(source, ConnectableObservable["b" /* connectableObservableDescriptor */]); - connectable.source = source; - connectable.subjectFactory = subjectFactory; - return connectable; - }; -} -var MulticastOperator = /*@__PURE__*/ (function () { - function MulticastOperator(subjectFactory, selector) { - this.subjectFactory = subjectFactory; - this.selector = selector; - } - MulticastOperator.prototype.call = function (subscriber, source) { - var selector = this.selector; - var subject = this.subjectFactory(); - var subscription = selector(subject).subscribe(subscriber); - subscription.add(source.subscribe(subject)); - return subscription; - }; - return MulticastOperator; -}()); +/** + * Returns a function that returns true if the given + * pattern matches or contains a `filepath` + * + * @param {String} `pattern` + * @return {Function} + */ -//# sourceMappingURL=multicast.js.map +utils.matchPath = function(pattern, options) { + return (options && options.contains) + ? utils.containsPattern(pattern, options) + : utils.equalsPattern(pattern, options); +}; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/observeOn.js -var observeOn = __webpack_require__(82); +/** + * Returns true if the given (original) filepath or unixified path are equal + * to the given pattern. + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js -/** PURE_IMPORTS_START tslib,_observable_from,_util_isArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +utils._equals = function(filepath, unixPath, pattern) { + return pattern === filepath || pattern === unixPath; +}; +/** + * Returns true if the given (original) filepath or unixified path contain + * the given pattern. + */ +utils._contains = function(filepath, unixPath, pattern) { + return filepath.indexOf(pattern) !== -1 || unixPath.indexOf(pattern) !== -1; +}; +/** + * Returns a function that returns true if the given + * pattern is the same as a given `filepath` + * + * @param {String} `pattern` + * @return {Function} + */ +utils.equalsPattern = function(pattern, options) { + var unixify = utils.unixify(options); + options = options || {}; -function onErrorResumeNext() { - var nextSources = []; - for (var _i = 0; _i < arguments.length; _i++) { - nextSources[_i] = arguments[_i]; - } - if (nextSources.length === 1 && Object(isArray["a" /* isArray */])(nextSources[0])) { - nextSources = nextSources[0]; - } - return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); }; -} -function onErrorResumeNextStatic() { - var nextSources = []; - for (var _i = 0; _i < arguments.length; _i++) { - nextSources[_i] = arguments[_i]; - } - var source = null; - if (nextSources.length === 1 && Object(isArray["a" /* isArray */])(nextSources[0])) { - nextSources = nextSources[0]; - } - source = nextSources.shift(); - return Object(from["a" /* from */])(source, null).lift(new OnErrorResumeNextOperator(nextSources)); -} -var OnErrorResumeNextOperator = /*@__PURE__*/ (function () { - function OnErrorResumeNextOperator(nextSources) { - this.nextSources = nextSources; - } - OnErrorResumeNextOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new onErrorResumeNext_OnErrorResumeNextSubscriber(subscriber, this.nextSources)); - }; - return OnErrorResumeNextOperator; -}()); -var onErrorResumeNext_OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](OnErrorResumeNextSubscriber, _super); - function OnErrorResumeNextSubscriber(destination, nextSources) { - var _this = _super.call(this, destination) || this; - _this.destination = destination; - _this.nextSources = nextSources; - return _this; + return function fn(filepath) { + var equal = utils._equals(filepath, unixify(filepath), pattern); + if (equal === true || options.nocase !== true) { + return equal; } - OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) { - this.subscribeToNextSource(); - }; - OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) { - this.subscribeToNextSource(); - }; - OnErrorResumeNextSubscriber.prototype._error = function (err) { - this.subscribeToNextSource(); - }; - OnErrorResumeNextSubscriber.prototype._complete = function () { - this.subscribeToNextSource(); - }; - OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () { - var next = this.nextSources.shift(); - if (next) { - this.add(Object(subscribeToResult["a" /* subscribeToResult */])(this, next)); - } - else { - this.destination.complete(); - } - }; - return OnErrorResumeNextSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=onErrorResumeNext.js.map + var lower = filepath.toLowerCase(); + return utils._equals(lower, unixify(lower), pattern); + }; +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/pairwise.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/** + * Returns a function that returns true if the given + * pattern contains a `filepath` + * + * @param {String} `pattern` + * @return {Function} + */ +utils.containsPattern = function(pattern, options) { + var unixify = utils.unixify(options); + options = options || {}; -function pairwise() { - return function (source) { return source.lift(new PairwiseOperator()); }; -} -var PairwiseOperator = /*@__PURE__*/ (function () { - function PairwiseOperator() { - } - PairwiseOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new pairwise_PairwiseSubscriber(subscriber)); - }; - return PairwiseOperator; -}()); -var pairwise_PairwiseSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](PairwiseSubscriber, _super); - function PairwiseSubscriber(destination) { - var _this = _super.call(this, destination) || this; - _this.hasPrev = false; - return _this; + return function(filepath) { + var contains = utils._contains(filepath, unixify(filepath), pattern); + if (contains === true || options.nocase !== true) { + return contains; } - PairwiseSubscriber.prototype._next = function (value) { - if (this.hasPrev) { - this.destination.next([this.prev, value]); - } - else { - this.hasPrev = true; - } - this.prev = value; - }; - return PairwiseSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=pairwise.js.map + var lower = filepath.toLowerCase(); + return utils._contains(lower, unixify(lower), pattern); + }; +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/not.js -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function not(pred, thisArg) { - function notPred() { - return !(notPred.pred.apply(notPred.thisArg, arguments)); - } - notPred.pred = pred; - notPred.thisArg = thisArg; - return notPred; -} -//# sourceMappingURL=not.js.map +/** + * Returns a function that returns true if the given + * regex matches the `filename` of a file path. + * + * @param {RegExp} `re` Matching regex + * @return {Function} + */ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/partition.js -/** PURE_IMPORTS_START _util_not,_filter PURE_IMPORTS_END */ +utils.matchBasename = function(re) { + return function(filepath) { + return re.test(filepath) || re.test(path.basename(filepath)); + }; +}; +/** + * Determines the filepath to return based on the provided options. + * @return {any} + */ -function partition(predicate, thisArg) { - return function (source) { - return [ - filter(predicate, thisArg)(source), - filter(not(predicate, thisArg))(source) - ]; - }; -} -//# sourceMappingURL=partition.js.map +utils.value = function(str, unixify, options) { + if (options && options.unixify === false) { + return str; + } + return unixify(str); +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/pluck.js -/** PURE_IMPORTS_START _map PURE_IMPORTS_END */ +/** + * Returns a function that normalizes slashes in a string to forward + * slashes, strips `./` from beginning of paths, and optionally unescapes + * special characters. + * @return {Function} + */ -function pluck() { - var properties = []; - for (var _i = 0; _i < arguments.length; _i++) { - properties[_i] = arguments[_i]; +utils.unixify = function(options) { + options = options || {}; + return function(filepath) { + if (utils.isWindows() || options.unixify === true) { + filepath = utils.toPosixPath(filepath); } - var length = properties.length; - if (length === 0) { - throw new Error('list of properties cannot be empty.'); + if (options.stripPrefix !== false) { + filepath = utils.stripPrefix(filepath); } - return function (source) { return Object(map["a" /* map */])(plucker(properties, length))(source); }; -} -function plucker(props, length) { - var mapper = function (x) { - var currentProp = x; - for (var i = 0; i < length; i++) { - var p = currentProp[props[i]]; - if (typeof p !== 'undefined') { - currentProp = p; - } - else { - return undefined; - } - } - return currentProp; - }; - return mapper; -} -//# sourceMappingURL=pluck.js.map - -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Subject.js -var Subject = __webpack_require__(8); + if (options.unescape === true) { + filepath = utils.unescape(filepath); + } + return filepath; + }; +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/publish.js -/** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */ +/***/ }), +/* 556 */ +/***/ (function(module, exports) { -function publish(selector) { - return selector ? - multicast(function () { return new Subject["a" /* Subject */](); }, selector) : - multicast(new Subject["a" /* Subject */]()); -} -//# sourceMappingURL=publish.js.map +var toString = Object.prototype.toString; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/BehaviorSubject.js -var BehaviorSubject = __webpack_require__(81); +module.exports = function kindOf(val) { + if (val === void 0) return 'undefined'; + if (val === null) return 'null'; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js -/** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */ + var type = typeof val; + if (type === 'boolean') return 'boolean'; + if (type === 'string') return 'string'; + if (type === 'number') return 'number'; + if (type === 'symbol') return 'symbol'; + if (type === 'function') { + return isGeneratorFn(val) ? 'generatorfunction' : 'function'; + } + if (isArray(val)) return 'array'; + if (isBuffer(val)) return 'buffer'; + if (isArguments(val)) return 'arguments'; + if (isDate(val)) return 'date'; + if (isError(val)) return 'error'; + if (isRegexp(val)) return 'regexp'; -function publishBehavior(value) { - return function (source) { return multicast(new BehaviorSubject["a" /* BehaviorSubject */](value))(source); }; -} -//# sourceMappingURL=publishBehavior.js.map + switch (ctorName(val)) { + case 'Symbol': return 'symbol'; + case 'Promise': return 'promise'; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/AsyncSubject.js -var AsyncSubject = __webpack_require__(36); + // Set, Map, WeakSet, WeakMap + case 'WeakMap': return 'weakmap'; + case 'WeakSet': return 'weakset'; + case 'Map': return 'map'; + case 'Set': return 'set'; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/publishLast.js -/** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */ + // 8-bit typed arrays + case 'Int8Array': return 'int8array'; + case 'Uint8Array': return 'uint8array'; + case 'Uint8ClampedArray': return 'uint8clampedarray'; + // 16-bit typed arrays + case 'Int16Array': return 'int16array'; + case 'Uint16Array': return 'uint16array'; -function publishLast() { - return function (source) { return multicast(new AsyncSubject["a" /* AsyncSubject */]())(source); }; -} -//# sourceMappingURL=publishLast.js.map + // 32-bit typed arrays + case 'Int32Array': return 'int32array'; + case 'Uint32Array': return 'uint32array'; + case 'Float32Array': return 'float32array'; + case 'Float64Array': return 'float64array'; + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/ReplaySubject.js -var ReplaySubject = __webpack_require__(51); + if (isGeneratorObj(val)) { + return 'generator'; + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/publishReplay.js -/** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */ + // Non-plain objects + type = toString.call(val); + switch (type) { + case '[object Object]': return 'object'; + // iterators + case '[object Map Iterator]': return 'mapiterator'; + case '[object Set Iterator]': return 'setiterator'; + case '[object String Iterator]': return 'stringiterator'; + case '[object Array Iterator]': return 'arrayiterator'; + } + // other + return type.slice(8, -1).toLowerCase().replace(/\s/g, ''); +}; -function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { - if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') { - scheduler = selectorOrScheduler; - } - var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined; - var subject = new ReplaySubject["a" /* ReplaySubject */](bufferSize, windowTime, scheduler); - return function (source) { return multicast(function () { return subject; }, selector)(source); }; +function ctorName(val) { + return val.constructor ? val.constructor.name : null; } -//# sourceMappingURL=publishReplay.js.map - -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/race.js -var race = __webpack_require__(86); - -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/race.js -/** PURE_IMPORTS_START _util_isArray,_observable_race PURE_IMPORTS_END */ +function isArray(val) { + if (Array.isArray) return Array.isArray(val); + return val instanceof Array; +} -function race_race() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - return function raceOperatorFunction(source) { - if (observables.length === 1 && Object(isArray["a" /* isArray */])(observables[0])) { - observables = observables[0]; - } - return source.lift.call(race["a" /* race */].apply(void 0, [source].concat(observables))); - }; +function isError(val) { + return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number'); } -//# sourceMappingURL=race.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/repeat.js -/** PURE_IMPORTS_START tslib,_Subscriber,_observable_empty PURE_IMPORTS_END */ +function isDate(val) { + if (val instanceof Date) return true; + return typeof val.toDateString === 'function' + && typeof val.getDate === 'function' + && typeof val.setDate === 'function'; +} +function isRegexp(val) { + if (val instanceof RegExp) return true; + return typeof val.flags === 'string' + && typeof val.ignoreCase === 'boolean' + && typeof val.multiline === 'boolean' + && typeof val.global === 'boolean'; +} +function isGeneratorFn(name, val) { + return ctorName(name) === 'GeneratorFunction'; +} -function repeat(count) { - if (count === void 0) { - count = -1; - } - return function (source) { - if (count === 0) { - return Object(empty["b" /* empty */])(); - } - else if (count < 0) { - return source.lift(new RepeatOperator(-1, source)); - } - else { - return source.lift(new RepeatOperator(count - 1, source)); - } - }; +function isGeneratorObj(val) { + return typeof val.throw === 'function' + && typeof val.return === 'function' + && typeof val.next === 'function'; } -var RepeatOperator = /*@__PURE__*/ (function () { - function RepeatOperator(count, source) { - this.count = count; - this.source = source; + +function isArguments(val) { + try { + if (typeof val.length === 'number' && typeof val.callee === 'function') { + return true; } - RepeatOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new repeat_RepeatSubscriber(subscriber, this.count, this.source)); - }; - return RepeatOperator; -}()); -var repeat_RepeatSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](RepeatSubscriber, _super); - function RepeatSubscriber(destination, count, source) { - var _this = _super.call(this, destination) || this; - _this.count = count; - _this.source = source; - return _this; + } catch (err) { + if (err.message.indexOf('callee') !== -1) { + return true; } - RepeatSubscriber.prototype.complete = function () { - if (!this.isStopped) { - var _a = this, source = _a.source, count = _a.count; - if (count === 0) { - return _super.prototype.complete.call(this); - } - else if (count > -1) { - this.count = count - 1; - } - source.subscribe(this._unsubscribeAndRecycle()); - } - }; - return RepeatSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=repeat.js.map - -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js -/** PURE_IMPORTS_START tslib,_Subject,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ + } + return false; +} +/** + * If you need to support Safari 5-7 (8-10 yr-old browser), + * take a look at https://github.com/feross/is-buffer + */ +function isBuffer(val) { + if (val.constructor && typeof val.constructor.isBuffer === 'function') { + return val.constructor.isBuffer(val); + } + return false; +} +/***/ }), +/* 557 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; -function repeatWhen(notifier) { - return function (source) { return source.lift(new RepeatWhenOperator(notifier)); }; -} -var RepeatWhenOperator = /*@__PURE__*/ (function () { - function RepeatWhenOperator(notifier) { - this.notifier = notifier; - } - RepeatWhenOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new repeatWhen_RepeatWhenSubscriber(subscriber, this.notifier, source)); - }; - return RepeatWhenOperator; -}()); -var repeatWhen_RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](RepeatWhenSubscriber, _super); - function RepeatWhenSubscriber(destination, notifier, source) { - var _this = _super.call(this, destination) || this; - _this.notifier = notifier; - _this.source = source; - _this.sourceIsBeingSubscribedTo = true; - return _this; - } - RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.sourceIsBeingSubscribedTo = true; - this.source.subscribe(this); - }; - RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) { - if (this.sourceIsBeingSubscribedTo === false) { - return _super.prototype.complete.call(this); - } - }; - RepeatWhenSubscriber.prototype.complete = function () { - this.sourceIsBeingSubscribedTo = false; - if (!this.isStopped) { - if (!this.retries) { - this.subscribeToRetries(); - } - if (!this.retriesSubscription || this.retriesSubscription.closed) { - return _super.prototype.complete.call(this); - } - this._unsubscribeAndRecycle(); - this.notifications.next(); - } - }; - RepeatWhenSubscriber.prototype._unsubscribe = function () { - var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription; - if (notifications) { - notifications.unsubscribe(); - this.notifications = null; - } - if (retriesSubscription) { - retriesSubscription.unsubscribe(); - this.retriesSubscription = null; - } - this.retries = null; - }; - RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () { - var _unsubscribe = this._unsubscribe; - this._unsubscribe = null; - _super.prototype._unsubscribeAndRecycle.call(this); - this._unsubscribe = _unsubscribe; - return this; - }; - RepeatWhenSubscriber.prototype.subscribeToRetries = function () { - this.notifications = new Subject["a" /* Subject */](); - var retries = Object(tryCatch["a" /* tryCatch */])(this.notifier)(this.notifications); - if (retries === errorObject["a" /* errorObject */]) { - return _super.prototype.complete.call(this); - } - this.retries = retries; - this.retriesSubscription = Object(subscribeToResult["a" /* subscribeToResult */])(this, retries); +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; - return RepeatWhenSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=repeatWhen.js.map - -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/retry.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - - -function retry(count) { - if (count === void 0) { - count = -1; - } - return function (source) { return source.lift(new RetryOperator(count, source)); }; -} -var RetryOperator = /*@__PURE__*/ (function () { - function RetryOperator(count, source) { - this.count = count; - this.source = source; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var readdir = __webpack_require__(558); +var reader_1 = __webpack_require__(571); +var ReaderAsync = /** @class */ (function (_super) { + __extends(ReaderAsync, _super); + function ReaderAsync() { + return _super !== null && _super.apply(this, arguments) || this; } - RetryOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new retry_RetrySubscriber(subscriber, this.count, this.source)); + /** + * Returns founded paths. + */ + ReaderAsync.prototype.api = function (root, options) { + return readdir.readdirStreamStat(root, options); }; - return RetryOperator; -}()); -var retry_RetrySubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](RetrySubscriber, _super); - function RetrySubscriber(destination, count, source) { - var _this = _super.call(this, destination) || this; - _this.count = count; - _this.source = source; - return _this; - } - RetrySubscriber.prototype.error = function (err) { - if (!this.isStopped) { - var _a = this, source = _a.source, count = _a.count; - if (count === 0) { - return _super.prototype.error.call(this, err); - } - else if (count > -1) { - this.count = count - 1; - } - source.subscribe(this._unsubscribeAndRecycle()); - } + /** + * Use sync API to read entries for Task. + */ + ReaderAsync.prototype.read = function (task) { + var _this = this; + var root = this.getRootDirectory(task); + var options = this.getReaderOptions(task); + var entries = []; + return new Promise(function (resolve, reject) { + var stream = _this.api(root, options); + stream.on('error', function (err) { + _this.isEnoentCodeError(err) ? resolve([]) : reject(err); + stream.pause(); + }); + stream.on('data', function (entry) { return entries.push(_this.transform(entry)); }); + stream.on('end', function () { return resolve(entries); }); + }); }; - return RetrySubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=retry.js.map + return ReaderAsync; +}(reader_1.default)); +exports.default = ReaderAsync; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/retryWhen.js -/** PURE_IMPORTS_START tslib,_Subject,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/***/ }), +/* 558 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +const readdirSync = __webpack_require__(559); +const readdirAsync = __webpack_require__(567); +const readdirStream = __webpack_require__(570); +module.exports = exports = readdirAsyncPath; +exports.readdir = exports.readdirAsync = exports.async = readdirAsyncPath; +exports.readdirAsyncStat = exports.async.stat = readdirAsyncStat; +exports.readdirStream = exports.stream = readdirStreamPath; +exports.readdirStreamStat = exports.stream.stat = readdirStreamStat; +exports.readdirSync = exports.sync = readdirSyncPath; +exports.readdirSyncStat = exports.sync.stat = readdirSyncStat; -function retryWhen(notifier) { - return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); }; +/** + * Synchronous readdir that returns an array of string paths. + * + * @param {string} dir + * @param {object} [options] + * @returns {string[]} + */ +function readdirSyncPath (dir, options) { + return readdirSync(dir, options, {}); } -var RetryWhenOperator = /*@__PURE__*/ (function () { - function RetryWhenOperator(notifier, source) { - this.notifier = notifier; - this.source = source; - } - RetryWhenOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new retryWhen_RetryWhenSubscriber(subscriber, this.notifier, this.source)); - }; - return RetryWhenOperator; -}()); -var retryWhen_RetryWhenSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](RetryWhenSubscriber, _super); - function RetryWhenSubscriber(destination, notifier, source) { - var _this = _super.call(this, destination) || this; - _this.notifier = notifier; - _this.source = source; - return _this; - } - RetryWhenSubscriber.prototype.error = function (err) { - if (!this.isStopped) { - var errors = this.errors; - var retries = this.retries; - var retriesSubscription = this.retriesSubscription; - if (!retries) { - errors = new Subject["a" /* Subject */](); - retries = Object(tryCatch["a" /* tryCatch */])(this.notifier)(errors); - if (retries === errorObject["a" /* errorObject */]) { - return _super.prototype.error.call(this, errorObject["a" /* errorObject */].e); - } - retriesSubscription = Object(subscribeToResult["a" /* subscribeToResult */])(this, retries); - } - else { - this.errors = null; - this.retriesSubscription = null; - } - this._unsubscribeAndRecycle(); - this.errors = errors; - this.retries = retries; - this.retriesSubscription = retriesSubscription; - errors.next(err); - } - }; - RetryWhenSubscriber.prototype._unsubscribe = function () { - var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription; - if (errors) { - errors.unsubscribe(); - this.errors = null; - } - if (retriesSubscription) { - retriesSubscription.unsubscribe(); - this.retriesSubscription = null; - } - this.retries = null; - }; - RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - var _unsubscribe = this._unsubscribe; - this._unsubscribe = null; - this._unsubscribeAndRecycle(); - this._unsubscribe = _unsubscribe; - this.source.subscribe(this); - }; - return RetryWhenSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=retryWhen.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/refCount.js -var operators_refCount = __webpack_require__(50); +/** + * Synchronous readdir that returns results as an array of {@link fs.Stats} objects + * + * @param {string} dir + * @param {object} [options] + * @returns {fs.Stats[]} + */ +function readdirSyncStat (dir, options) { + return readdirSync(dir, options, { stats: true }); +} -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/sample.js -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/** + * Aynchronous readdir (accepts an error-first callback or returns a {@link Promise}). + * Results are an array of path strings. + * + * @param {string} dir + * @param {object} [options] + * @param {function} [callback] + * @returns {Promise} + */ +function readdirAsyncPath (dir, options, callback) { + return readdirAsync(dir, options, callback, {}); +} +/** + * Aynchronous readdir (accepts an error-first callback or returns a {@link Promise}). + * Results are an array of {@link fs.Stats} objects. + * + * @param {string} dir + * @param {object} [options] + * @param {function} [callback] + * @returns {Promise} + */ +function readdirAsyncStat (dir, options, callback) { + return readdirAsync(dir, options, callback, { stats: true }); +} +/** + * Aynchronous readdir that returns a {@link stream.Readable} (which is also an {@link EventEmitter}). + * All stream data events ("data", "file", "directory", "symlink") are passed a path string. + * + * @param {string} dir + * @param {object} [options] + * @returns {stream.Readable} + */ +function readdirStreamPath (dir, options) { + return readdirStream(dir, options, {}); +} -function sample(notifier) { - return function (source) { return source.lift(new sample_SampleOperator(notifier)); }; +/** + * Aynchronous readdir that returns a {@link stream.Readable} (which is also an {@link EventEmitter}) + * All stream data events ("data", "file", "directory", "symlink") are passed an {@link fs.Stats} object. + * + * @param {string} dir + * @param {object} [options] + * @returns {stream.Readable} + */ +function readdirStreamStat (dir, options) { + return readdirStream(dir, options, { stats: true }); } -var sample_SampleOperator = /*@__PURE__*/ (function () { - function SampleOperator(notifier) { - this.notifier = notifier; - } - SampleOperator.prototype.call = function (subscriber, source) { - var sampleSubscriber = new sample_SampleSubscriber(subscriber); - var subscription = source.subscribe(sampleSubscriber); - subscription.add(Object(subscribeToResult["a" /* subscribeToResult */])(sampleSubscriber, this.notifier)); - return subscription; - }; - return SampleOperator; -}()); -var sample_SampleSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SampleSubscriber, _super); - function SampleSubscriber() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.hasValue = false; - return _this; - } - SampleSubscriber.prototype._next = function (value) { - this.value = value; - this.hasValue = true; - }; - SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.emitValue(); - }; - SampleSubscriber.prototype.notifyComplete = function () { - this.emitValue(); - }; - SampleSubscriber.prototype.emitValue = function () { - if (this.hasValue) { - this.hasValue = false; - this.destination.next(this.value); - } - }; - return SampleSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=sample.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/sampleTime.js -/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */ +/***/ }), +/* 559 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; -function sampleTime(period, scheduler) { - if (scheduler === void 0) { - scheduler = scheduler_async["a" /* async */]; - } - return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); }; -} -var SampleTimeOperator = /*@__PURE__*/ (function () { - function SampleTimeOperator(period, scheduler) { - this.period = period; - this.scheduler = scheduler; - } - SampleTimeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new sampleTime_SampleTimeSubscriber(subscriber, this.period, this.scheduler)); - }; - return SampleTimeOperator; -}()); -var sampleTime_SampleTimeSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SampleTimeSubscriber, _super); - function SampleTimeSubscriber(destination, period, scheduler) { - var _this = _super.call(this, destination) || this; - _this.period = period; - _this.scheduler = scheduler; - _this.hasValue = false; - _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period })); - return _this; - } - SampleTimeSubscriber.prototype._next = function (value) { - this.lastValue = value; - this.hasValue = true; - }; - SampleTimeSubscriber.prototype.notifyNext = function () { - if (this.hasValue) { - this.hasValue = false; - this.destination.next(this.lastValue); - } - }; - return SampleTimeSubscriber; -}(Subscriber["a" /* Subscriber */])); -function dispatchNotification(state) { - var subscriber = state.subscriber, period = state.period; - subscriber.notifyNext(); - this.schedule(state, period); -} -//# sourceMappingURL=sampleTime.js.map +module.exports = readdirSync; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js -/** PURE_IMPORTS_START tslib,_Subscriber,_util_tryCatch,_util_errorObject PURE_IMPORTS_END */ +const DirectoryReader = __webpack_require__(560); +let syncFacade = { + fs: __webpack_require__(565), + forEach: __webpack_require__(566), + sync: true +}; +/** + * Returns the buffered output from a synchronous {@link DirectoryReader}. + * + * @param {string} dir + * @param {object} [options] + * @param {object} internalOptions + */ +function readdirSync (dir, options, internalOptions) { + internalOptions.facade = syncFacade; + let reader = new DirectoryReader(dir, options, internalOptions); + let stream = reader.stream; -function sequenceEqual(compareTo, comparor) { - return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparor)); }; + let results = []; + let data = stream.read(); + while (data !== null) { + results.push(data); + data = stream.read(); + } + + return results; } -var SequenceEqualOperator = /*@__PURE__*/ (function () { - function SequenceEqualOperator(compareTo, comparor) { - this.compareTo = compareTo; - this.comparor = comparor; - } - SequenceEqualOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new sequenceEqual_SequenceEqualSubscriber(subscriber, this.compareTo, this.comparor)); - }; - return SequenceEqualOperator; -}()); -var sequenceEqual_SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SequenceEqualSubscriber, _super); - function SequenceEqualSubscriber(destination, compareTo, comparor) { - var _this = _super.call(this, destination) || this; - _this.compareTo = compareTo; - _this.comparor = comparor; - _this._a = []; - _this._b = []; - _this._oneComplete = false; - _this.add(compareTo.subscribe(new sequenceEqual_SequenceEqualCompareToSubscriber(destination, _this))); - return _this; - } - SequenceEqualSubscriber.prototype._next = function (value) { - if (this._oneComplete && this._b.length === 0) { - this.emit(false); - } - else { - this._a.push(value); - this.checkValues(); - } - }; - SequenceEqualSubscriber.prototype._complete = function () { - if (this._oneComplete) { - this.emit(this._a.length === 0 && this._b.length === 0); - } - else { - this._oneComplete = true; - } - }; - SequenceEqualSubscriber.prototype.checkValues = function () { - var _c = this, _a = _c._a, _b = _c._b, comparor = _c.comparor; - while (_a.length > 0 && _b.length > 0) { - var a = _a.shift(); - var b = _b.shift(); - var areEqual = false; - if (comparor) { - areEqual = Object(tryCatch["a" /* tryCatch */])(comparor)(a, b); - if (areEqual === errorObject["a" /* errorObject */]) { - this.destination.error(errorObject["a" /* errorObject */].e); - } - } - else { - areEqual = a === b; - } - if (!areEqual) { - this.emit(false); - } - } - }; - SequenceEqualSubscriber.prototype.emit = function (value) { - var destination = this.destination; - destination.next(value); - destination.complete(); - }; - SequenceEqualSubscriber.prototype.nextB = function (value) { - if (this._oneComplete && this._a.length === 0) { - this.emit(false); - } - else { - this._b.push(value); - this.checkValues(); - } - }; - return SequenceEqualSubscriber; -}(Subscriber["a" /* Subscriber */])); -var sequenceEqual_SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SequenceEqualCompareToSubscriber, _super); - function SequenceEqualCompareToSubscriber(destination, parent) { - var _this = _super.call(this, destination) || this; - _this.parent = parent; - return _this; - } - SequenceEqualCompareToSubscriber.prototype._next = function (value) { - this.parent.nextB(value); - }; - SequenceEqualCompareToSubscriber.prototype._error = function (err) { - this.parent.error(err); - }; - SequenceEqualCompareToSubscriber.prototype._complete = function () { - this.parent._complete(); - }; - return SequenceEqualCompareToSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=sequenceEqual.js.map +/***/ }), +/* 560 */ +/***/ (function(module, exports, __webpack_require__) { -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/share.js -/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */ +"use strict"; +const Readable = __webpack_require__(28).Readable; +const EventEmitter = __webpack_require__(45).EventEmitter; +const path = __webpack_require__(16); +const normalizeOptions = __webpack_require__(561); +const stat = __webpack_require__(563); +const call = __webpack_require__(564); -function shareSubjectFactory() { - return new Subject["a" /* Subject */](); -} -function share() { - return function (source) { return Object(operators_refCount["a" /* refCount */])()(multicast(shareSubjectFactory)(source)); }; -} -//# sourceMappingURL=share.js.map +/** + * Asynchronously reads the contents of a directory and streams the results + * via a {@link stream.Readable}. + */ +class DirectoryReader { + /** + * @param {string} dir - The absolute or relative directory path to read + * @param {object} [options] - User-specified options, if any (see {@link normalizeOptions}) + * @param {object} internalOptions - Internal options that aren't part of the public API + * @class + */ + constructor (dir, options, internalOptions) { + this.options = options = normalizeOptions(options, internalOptions); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/shareReplay.js -/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */ + // Indicates whether we should keep reading + // This is set false if stream.Readable.push() returns false. + this.shouldRead = true; -function shareReplay(bufferSize, windowTime, scheduler) { - return function (source) { return source.lift(shareReplayOperator(bufferSize, windowTime, scheduler)); }; -} -function shareReplayOperator(bufferSize, windowTime, scheduler) { - var subject; - var refCount = 0; - var subscription; - var hasError = false; - var isComplete = false; - return function shareReplayOperation(source) { - refCount++; - if (!subject || hasError) { - hasError = false; - subject = new ReplaySubject["a" /* ReplaySubject */](bufferSize, windowTime, scheduler); - subscription = source.subscribe({ - next: function (value) { subject.next(value); }, - error: function (err) { - hasError = true; - subject.error(err); - }, - complete: function () { - isComplete = true; - subject.complete(); - }, - }); - } - var innerSub = subject.subscribe(this); - return function () { - refCount--; - innerSub.unsubscribe(); - if (subscription && refCount === 0 && isComplete) { - subscription.unsubscribe(); - } - }; - }; -} -//# sourceMappingURL=shareReplay.js.map + // The directories to read + // (initialized with the top-level directory) + this.queue = [{ + path: dir, + basePath: options.basePath, + posixBasePath: options.posixBasePath, + depth: 0 + }]; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/single.js -/** PURE_IMPORTS_START tslib,_Subscriber,_util_EmptyError PURE_IMPORTS_END */ + // The number of directories that are currently being processed + this.pending = 0; + // The data that has been read, but not yet emitted + this.buffer = []; + this.stream = new Readable({ objectMode: true }); + this.stream._read = () => { + // Start (or resume) reading + this.shouldRead = true; -function single(predicate) { - return function (source) { return source.lift(new SingleOperator(predicate, source)); }; -} -var SingleOperator = /*@__PURE__*/ (function () { - function SingleOperator(predicate, source) { - this.predicate = predicate; - this.source = source; - } - SingleOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new single_SingleSubscriber(subscriber, this.predicate, this.source)); - }; - return SingleOperator; -}()); -var single_SingleSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SingleSubscriber, _super); - function SingleSubscriber(destination, predicate, source) { - var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.source = source; - _this.seenValue = false; - _this.index = 0; - return _this; - } - SingleSubscriber.prototype.applySingleValue = function (value) { - if (this.seenValue) { - this.destination.error('Sequence contains more than one element'); - } - else { - this.seenValue = true; - this.singleValue = value; - } - }; - SingleSubscriber.prototype._next = function (value) { - var index = this.index++; - if (this.predicate) { - this.tryNext(value, index); - } - else { - this.applySingleValue(value); - } - }; - SingleSubscriber.prototype.tryNext = function (value, index) { - try { - if (this.predicate(value, index, this.source)) { - this.applySingleValue(value); - } - } - catch (err) { - this.destination.error(err); - } - }; - SingleSubscriber.prototype._complete = function () { - var destination = this.destination; - if (this.index > 0) { - destination.next(this.seenValue ? this.singleValue : undefined); - destination.complete(); + // If we have data in the buffer, then send the next chunk + if (this.buffer.length > 0) { + this.pushFromBuffer(); + } + + // If we have directories queued, then start processing the next one + if (this.queue.length > 0) { + if (this.options.facade.sync) { + while (this.queue.length > 0) { + this.readNextDirectory(); + } } else { - destination.error(new EmptyError["a" /* EmptyError */]); + this.readNextDirectory(); } + } + + this.checkForEOF(); }; - return SingleSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=single.js.map + } + + /** + * Reads the next directory in the queue + */ + readNextDirectory () { + let facade = this.options.facade; + let dir = this.queue.shift(); + this.pending++; + + // Read the directory listing + call.safe(facade.fs.readdir, dir.path, (err, items) => { + if (err) { + // fs.readdir threw an error + this.emit('error', err); + return this.finishedReadingDirectory(); + } + + try { + // Process each item in the directory (simultaneously, if async) + facade.forEach( + items, + this.processItem.bind(this, dir), + this.finishedReadingDirectory.bind(this, dir) + ); + } + catch (err2) { + // facade.forEach threw an error + // (probably because fs.readdir returned an invalid result) + this.emit('error', err2); + this.finishedReadingDirectory(); + } + }); + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/skip.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + /** + * This method is called after all items in a directory have been processed. + * + * NOTE: This does not necessarily mean that the reader is finished, since there may still + * be other directories queued or pending. + */ + finishedReadingDirectory () { + this.pending--; + if (this.shouldRead) { + // If we have directories queued, then start processing the next one + if (this.queue.length > 0 && this.options.facade.async) { + this.readNextDirectory(); + } -function skip(count) { - return function (source) { return source.lift(new SkipOperator(count)); }; -} -var SkipOperator = /*@__PURE__*/ (function () { - function SkipOperator(total) { - this.total = total; + this.checkForEOF(); } - SkipOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new skip_SkipSubscriber(subscriber, this.total)); - }; - return SkipOperator; -}()); -var skip_SkipSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SkipSubscriber, _super); - function SkipSubscriber(destination, total) { - var _this = _super.call(this, destination) || this; - _this.total = total; - _this.count = 0; - return _this; + } + + /** + * Determines whether the reader has finished processing all items in all directories. + * If so, then the "end" event is fired (via {@Readable#push}) + */ + checkForEOF () { + if (this.buffer.length === 0 && // The stuff we've already read + this.pending === 0 && // The stuff we're currently reading + this.queue.length === 0) { // The stuff we haven't read yet + // There's no more stuff! + this.stream.push(null); } - SkipSubscriber.prototype._next = function (x) { - if (++this.count > this.total) { - this.destination.next(x); - } - }; - return SkipSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=skip.js.map + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/skipLast.js -/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */ + /** + * Processes a single item in a directory. + * + * If the item is a directory, and `option.deep` is enabled, then the item will be added + * to the directory queue. + * + * If the item meets the filter criteria, then it will be emitted to the reader's stream. + * + * @param {object} dir - A directory object from the queue + * @param {string} item - The name of the item (name only, no path) + * @param {function} done - A callback function that is called after the item has been processed + */ + processItem (dir, item, done) { + let stream = this.stream; + let options = this.options; + let itemPath = dir.basePath + item; + let posixPath = dir.posixBasePath + item; + let fullPath = path.join(dir.path, item); + // If `options.deep` is a number, and we've already recursed to the max depth, + // then there's no need to check fs.Stats to know if it's a directory. + // If `options.deep` is a function, then we'll need fs.Stats + let maxDepthReached = dir.depth >= options.recurseDepth; -function skipLast(count) { - return function (source) { return source.lift(new skipLast_SkipLastOperator(count)); }; -} -var skipLast_SkipLastOperator = /*@__PURE__*/ (function () { - function SkipLastOperator(_skipCount) { - this._skipCount = _skipCount; - if (this._skipCount < 0) { - throw new ArgumentOutOfRangeError["a" /* ArgumentOutOfRangeError */]; - } - } - SkipLastOperator.prototype.call = function (subscriber, source) { - if (this._skipCount === 0) { - return source.subscribe(new Subscriber["a" /* Subscriber */](subscriber)); - } - else { - return source.subscribe(new skipLast_SkipLastSubscriber(subscriber, this._skipCount)); - } - }; - return SkipLastOperator; -}()); -var skipLast_SkipLastSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SkipLastSubscriber, _super); - function SkipLastSubscriber(destination, _skipCount) { - var _this = _super.call(this, destination) || this; - _this._skipCount = _skipCount; - _this._count = 0; - _this._ring = new Array(_skipCount); - return _this; + // Do we need to call `fs.stat`? + let needStats = + !maxDepthReached || // we need the fs.Stats to know if it's a directory + options.stats || // the user wants fs.Stats objects returned + options.recurseFn || // we need fs.Stats for the recurse function + options.filterFn || // we need fs.Stats for the filter function + EventEmitter.listenerCount(stream, 'file') || // we need the fs.Stats to know if it's a file + EventEmitter.listenerCount(stream, 'directory') || // we need the fs.Stats to know if it's a directory + EventEmitter.listenerCount(stream, 'symlink'); // we need the fs.Stats to know if it's a symlink + + // If we don't need stats, then exit early + if (!needStats) { + if (this.filter(itemPath, posixPath)) { + this.pushOrBuffer({ data: itemPath }); + } + return done(); } - SkipLastSubscriber.prototype._next = function (value) { - var skipCount = this._skipCount; - var count = this._count++; - if (count < skipCount) { - this._ring[count] = value; - } - else { - var currentIndex = count % skipCount; - var ring = this._ring; - var oldValue = ring[currentIndex]; - ring[currentIndex] = value; - this.destination.next(oldValue); - } - }; - return SkipLastSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=skipLast.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/skipUntil.js -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ + // Get the fs.Stats object for this path + stat(options.facade.fs, fullPath, (err, stats) => { + if (err) { + // fs.stat threw an error + this.emit('error', err); + return done(); + } + try { + // Add the item's path to the fs.Stats object + // The base of this path, and its separators are determined by the options + // (i.e. options.basePath and options.sep) + stats.path = itemPath; + // Add depth of the path to the fs.Stats object for use this in the filter function + stats.depth = dir.depth; -function skipUntil(notifier) { - return function (source) { return source.lift(new SkipUntilOperator(notifier)); }; -} -var SkipUntilOperator = /*@__PURE__*/ (function () { - function SkipUntilOperator(notifier) { - this.notifier = notifier; - } - SkipUntilOperator.prototype.call = function (destination, source) { - return source.subscribe(new skipUntil_SkipUntilSubscriber(destination, this.notifier)); - }; - return SkipUntilOperator; -}()); -var skipUntil_SkipUntilSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SkipUntilSubscriber, _super); - function SkipUntilSubscriber(destination, notifier) { - var _this = _super.call(this, destination) || this; - _this.hasValue = false; - _this.add(_this.innerSubscription = Object(subscribeToResult["a" /* subscribeToResult */])(_this, notifier)); - return _this; - } - SkipUntilSubscriber.prototype._next = function (value) { - if (this.hasValue) { - _super.prototype._next.call(this, value); + if (this.shouldRecurse(stats, posixPath, maxDepthReached)) { + // Add this subdirectory to the queue + this.queue.push({ + path: fullPath, + basePath: itemPath + options.sep, + posixBasePath: posixPath + '/', + depth: dir.depth + 1, + }); } - }; - SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.hasValue = true; - if (this.innerSubscription) { - this.innerSubscription.unsubscribe(); + + // Determine whether this item matches the filter criteria + if (this.filter(stats, posixPath)) { + this.pushOrBuffer({ + data: options.stats ? stats : itemPath, + file: stats.isFile(), + directory: stats.isDirectory(), + symlink: stats.isSymbolicLink(), + }); } - }; - SkipUntilSubscriber.prototype.notifyComplete = function () { - }; - return SkipUntilSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=skipUntil.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/skipWhile.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + done(); + } + catch (err2) { + // An error occurred while processing the item + // (probably during a user-specified function, such as options.deep, options.filter, etc.) + this.emit('error', err2); + done(); + } + }); + } + /** + * Pushes the given chunk of data to the stream, or adds it to the buffer, + * depending on the state of the stream. + * + * @param {object} chunk + */ + pushOrBuffer (chunk) { + // Add the chunk to the buffer + this.buffer.push(chunk); -function skipWhile(predicate) { - return function (source) { return source.lift(new SkipWhileOperator(predicate)); }; -} -var SkipWhileOperator = /*@__PURE__*/ (function () { - function SkipWhileOperator(predicate) { - this.predicate = predicate; + // If we're still reading, then immediately emit the next chunk in the buffer + // (which may or may not be the chunk that we just added) + if (this.shouldRead) { + this.pushFromBuffer(); } - SkipWhileOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new skipWhile_SkipWhileSubscriber(subscriber, this.predicate)); - }; - return SkipWhileOperator; -}()); -var skipWhile_SkipWhileSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SkipWhileSubscriber, _super); - function SkipWhileSubscriber(destination, predicate) { - var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.skipping = true; - _this.index = 0; - return _this; + } + + /** + * Immediately pushes the next chunk in the buffer to the reader's stream. + * The "data" event will always be fired (via {@link Readable#push}). + * In addition, the "file", "directory", and/or "symlink" events may be fired, + * depending on the type of properties of the chunk. + */ + pushFromBuffer () { + let stream = this.stream; + let chunk = this.buffer.shift(); + + // Stream the data + try { + this.shouldRead = stream.push(chunk.data); + } + catch (err) { + this.emit('error', err); } - SkipWhileSubscriber.prototype._next = function (value) { - var destination = this.destination; - if (this.skipping) { - this.tryCallPredicate(value); - } - if (!this.skipping) { - destination.next(value); - } - }; - SkipWhileSubscriber.prototype.tryCallPredicate = function (value) { - try { - var result = this.predicate(value, this.index++); - this.skipping = Boolean(result); - } - catch (err) { - this.destination.error(err); - } - }; - return SkipWhileSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=skipWhile.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/startWith.js -/** PURE_IMPORTS_START _observable_fromArray,_observable_scalar,_observable_empty,_observable_concat,_util_isScheduler PURE_IMPORTS_END */ + // Also emit specific events, based on the type of chunk + chunk.file && this.emit('file', chunk.data); + chunk.symlink && this.emit('symlink', chunk.data); + chunk.directory && this.emit('directory', chunk.data); + } + + /** + * Determines whether the given directory meets the user-specified recursion criteria. + * If the user didn't specify recursion criteria, then this function will default to true. + * + * @param {fs.Stats} stats - The directory's {@link fs.Stats} object + * @param {string} posixPath - The item's POSIX path (used for glob matching) + * @param {boolean} maxDepthReached - Whether we've already crawled the user-specified depth + * @returns {boolean} + */ + shouldRecurse (stats, posixPath, maxDepthReached) { + let options = this.options; + if (maxDepthReached) { + // We've already crawled to the maximum depth. So no more recursion. + return false; + } + else if (!stats.isDirectory()) { + // It's not a directory. So don't try to crawl it. + return false; + } + else if (options.recurseGlob) { + // Glob patterns are always tested against the POSIX path, even on Windows + // https://github.com/isaacs/node-glob#windows + return options.recurseGlob.test(posixPath); + } + else if (options.recurseRegExp) { + // Regular expressions are tested against the normal path + // (based on the OS or options.sep) + return options.recurseRegExp.test(stats.path); + } + else if (options.recurseFn) { + try { + // Run the user-specified recursion criteria + return options.recurseFn.call(null, stats); + } + catch (err) { + // An error occurred in the user's code. + // In Sync and Async modes, this will return an error. + // In Streaming mode, we emit an "error" event, but continue processing + this.emit('error', err); + } + } + else { + // No recursion function was specified, and we're within the maximum depth. + // So crawl this directory. + return true; + } + } + /** + * Determines whether the given item meets the user-specified filter criteria. + * If the user didn't specify a filter, then this function will always return true. + * + * @param {string|fs.Stats} value - Either the item's path, or the item's {@link fs.Stats} object + * @param {string} posixPath - The item's POSIX path (used for glob matching) + * @returns {boolean} + */ + filter (value, posixPath) { + let options = this.options; + if (options.filterGlob) { + // Glob patterns are always tested against the POSIX path, even on Windows + // https://github.com/isaacs/node-glob#windows + return options.filterGlob.test(posixPath); + } + else if (options.filterRegExp) { + // Regular expressions are tested against the normal path + // (based on the OS or options.sep) + return options.filterRegExp.test(value.path || value); + } + else if (options.filterFn) { + try { + // Run the user-specified filter function + return options.filterFn.call(null, value); + } + catch (err) { + // An error occurred in the user's code. + // In Sync and Async modes, this will return an error. + // In Streaming mode, we emit an "error" event, but continue processing + this.emit('error', err); + } + } + else { + // No filter was specified, so match everything + return true; + } + } + /** + * Emits an event. If one of the event listeners throws an error, + * then an "error" event is emitted. + * + * @param {string} eventName + * @param {*} data + */ + emit (eventName, data) { + let stream = this.stream; -function startWith() { - var array = []; - for (var _i = 0; _i < arguments.length; _i++) { - array[_i] = arguments[_i]; + try { + stream.emit(eventName, data); } - return function (source) { - var scheduler = array[array.length - 1]; - if (Object(isScheduler["a" /* isScheduler */])(scheduler)) { - array.pop(); - } - else { - scheduler = null; - } - var len = array.length; - if (len === 1 && !scheduler) { - return Object(concat["a" /* concat */])(Object(scalar["a" /* scalar */])(array[0]), source); - } - else if (len > 0) { - return Object(concat["a" /* concat */])(Object(fromArray["a" /* fromArray */])(array, scheduler), source); - } - else { - return Object(concat["a" /* concat */])(Object(empty["b" /* empty */])(scheduler), source); - } - }; + catch (err) { + if (eventName === 'error') { + // Don't recursively emit "error" events. + // If the first one fails, then just throw + throw err; + } + else { + stream.emit('error', err); + } + } + } } -//# sourceMappingURL=startWith.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/asap.js + 3 modules -var asap = __webpack_require__(59); +module.exports = DirectoryReader; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isNumeric.js -var isNumeric = __webpack_require__(38); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js -/** PURE_IMPORTS_START tslib,_Observable,_scheduler_asap,_util_isNumeric PURE_IMPORTS_END */ +/***/ }), +/* 561 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +const path = __webpack_require__(16); +const globToRegExp = __webpack_require__(562); -var SubscribeOnObservable_SubscribeOnObservable = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SubscribeOnObservable, _super); - function SubscribeOnObservable(source, delayTime, scheduler) { - if (delayTime === void 0) { - delayTime = 0; - } - if (scheduler === void 0) { - scheduler = asap["a" /* asap */]; - } - var _this = _super.call(this) || this; - _this.source = source; - _this.delayTime = delayTime; - _this.scheduler = scheduler; - if (!Object(isNumeric["a" /* isNumeric */])(delayTime) || delayTime < 0) { - _this.delayTime = 0; - } - if (!scheduler || typeof scheduler.schedule !== 'function') { - _this.scheduler = asap["a" /* asap */]; - } - return _this; - } - SubscribeOnObservable.create = function (source, delay, scheduler) { - if (delay === void 0) { - delay = 0; - } - if (scheduler === void 0) { - scheduler = asap["a" /* asap */]; - } - return new SubscribeOnObservable(source, delay, scheduler); - }; - SubscribeOnObservable.dispatch = function (arg) { - var source = arg.source, subscriber = arg.subscriber; - return this.add(source.subscribe(subscriber)); - }; - SubscribeOnObservable.prototype._subscribe = function (subscriber) { - var delay = this.delayTime; - var source = this.source; - var scheduler = this.scheduler; - return scheduler.schedule(SubscribeOnObservable.dispatch, delay, { - source: source, subscriber: subscriber - }); - }; - return SubscribeOnObservable; -}(Observable["a" /* Observable */])); +module.exports = normalizeOptions; -//# sourceMappingURL=SubscribeOnObservable.js.map +let isWindows = /^win/.test(process.platform); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js -/** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */ +/** + * @typedef {Object} FSFacade + * @property {fs.readdir} readdir + * @property {fs.stat} stat + * @property {fs.lstat} lstat + */ -function subscribeOn(scheduler, delay) { - if (delay === void 0) { - delay = 0; +/** + * Validates and normalizes the options argument + * + * @param {object} [options] - User-specified options, if any + * @param {object} internalOptions - Internal options that aren't part of the public API + * + * @param {number|boolean|function} [options.deep] + * The number of directories to recursively traverse. Any falsy value or negative number will + * default to zero, so only the top-level contents will be returned. Set to `true` or `Infinity` + * to traverse all subdirectories. Or provide a function that accepts a {@link fs.Stats} object + * and returns a truthy value if the directory's contents should be crawled. + * + * @param {function|string|RegExp} [options.filter] + * A function that accepts a {@link fs.Stats} object and returns a truthy value if the data should + * be returned. Or a RegExp or glob string pattern, to filter by file name. + * + * @param {string} [options.sep] + * The path separator to use. By default, the OS-specific separator will be used, but this can be + * set to a specific value to ensure consistency across platforms. + * + * @param {string} [options.basePath] + * The base path to prepend to each result. If empty, then all results will be relative to `dir`. + * + * @param {FSFacade} [options.fs] + * Synchronous or asynchronous facades for Node.js File System module + * + * @param {object} [internalOptions.facade] + * Synchronous or asynchronous facades for various methods, including for the Node.js File System module + * + * @param {boolean} [internalOptions.emit] + * Indicates whether the reader should emit "file", "directory", and "symlink" events + * + * @param {boolean} [internalOptions.stats] + * Indicates whether the reader should emit {@link fs.Stats} objects instead of path strings + * + * @returns {object} + */ +function normalizeOptions (options, internalOptions) { + if (options === null || options === undefined) { + options = {}; + } + else if (typeof options !== 'object') { + throw new TypeError('options must be an object'); + } + + let recurseDepth, recurseFn, recurseRegExp, recurseGlob, deep = options.deep; + if (deep === null || deep === undefined) { + recurseDepth = 0; + } + else if (typeof deep === 'boolean') { + recurseDepth = deep ? Infinity : 0; + } + else if (typeof deep === 'number') { + if (deep < 0 || isNaN(deep)) { + throw new Error('options.deep must be a positive number'); } - return function subscribeOnOperatorFunction(source) { - return source.lift(new subscribeOn_SubscribeOnOperator(scheduler, delay)); - }; -} -var subscribeOn_SubscribeOnOperator = /*@__PURE__*/ (function () { - function SubscribeOnOperator(scheduler, delay) { - this.scheduler = scheduler; - this.delay = delay; + else if (Math.floor(deep) !== deep) { + throw new Error('options.deep must be an integer'); } - SubscribeOnOperator.prototype.call = function (subscriber, source) { - return new SubscribeOnObservable_SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber); - }; - return SubscribeOnOperator; -}()); -//# sourceMappingURL=subscribeOn.js.map - -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/switchMap.js -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */ + else { + recurseDepth = deep; + } + } + else if (typeof deep === 'function') { + recurseDepth = Infinity; + recurseFn = deep; + } + else if (deep instanceof RegExp) { + recurseDepth = Infinity; + recurseRegExp = deep; + } + else if (typeof deep === 'string' && deep.length > 0) { + recurseDepth = Infinity; + recurseGlob = globToRegExp(deep, { extended: true, globstar: true }); + } + else { + throw new TypeError('options.deep must be a boolean, number, function, regular expression, or glob pattern'); + } + let filterFn, filterRegExp, filterGlob, filter = options.filter; + if (filter !== null && filter !== undefined) { + if (typeof filter === 'function') { + filterFn = filter; + } + else if (filter instanceof RegExp) { + filterRegExp = filter; + } + else if (typeof filter === 'string' && filter.length > 0) { + filterGlob = globToRegExp(filter, { extended: true, globstar: true }); + } + else { + throw new TypeError('options.filter must be a function, regular expression, or glob pattern'); + } + } + let sep = options.sep; + if (sep === null || sep === undefined) { + sep = path.sep; + } + else if (typeof sep !== 'string') { + throw new TypeError('options.sep must be a string'); + } + let basePath = options.basePath; + if (basePath === null || basePath === undefined) { + basePath = ''; + } + else if (typeof basePath === 'string') { + // Append a path separator to the basePath, if necessary + if (basePath && basePath.substr(-1) !== sep) { + basePath += sep; + } + } + else { + throw new TypeError('options.basePath must be a string'); + } + // Convert the basePath to POSIX (forward slashes) + // so that glob pattern matching works consistently, even on Windows + let posixBasePath = basePath; + if (posixBasePath && sep !== '/') { + posixBasePath = posixBasePath.replace(new RegExp('\\' + sep, 'g'), '/'); -function switchMap(project, resultSelector) { - if (typeof resultSelector === 'function') { - return function (source) { return source.pipe(switchMap(function (a, i) { return Object(from["a" /* from */])(project(a, i)).pipe(Object(map["a" /* map */])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; - } - return function (source) { return source.lift(new SwitchMapOperator(project)); }; -} -var SwitchMapOperator = /*@__PURE__*/ (function () { - function SwitchMapOperator(project) { - this.project = project; - } - SwitchMapOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new switchMap_SwitchMapSubscriber(subscriber, this.project)); - }; - return SwitchMapOperator; -}()); -var switchMap_SwitchMapSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](SwitchMapSubscriber, _super); - function SwitchMapSubscriber(destination, project) { - var _this = _super.call(this, destination) || this; - _this.project = project; - _this.index = 0; - return _this; + /* istanbul ignore if */ + if (isWindows) { + // Convert Windows root paths (C:\) and UNCs (\\) to POSIX root paths + posixBasePath = posixBasePath.replace(/^([a-zA-Z]\:\/|\/\/)/, '/'); } - SwitchMapSubscriber.prototype._next = function (value) { - var result; - var index = this.index++; - try { - result = this.project(value, index); - } - catch (error) { - this.destination.error(error); - return; - } - this._innerSub(result, value, index); - }; - SwitchMapSubscriber.prototype._innerSub = function (result, value, index) { - var innerSubscription = this.innerSubscription; - if (innerSubscription) { - innerSubscription.unsubscribe(); - } - this.add(this.innerSubscription = Object(subscribeToResult["a" /* subscribeToResult */])(this, result, value, index)); - }; - SwitchMapSubscriber.prototype._complete = function () { - var innerSubscription = this.innerSubscription; - if (!innerSubscription || innerSubscription.closed) { - _super.prototype._complete.call(this); - } - }; - SwitchMapSubscriber.prototype._unsubscribe = function () { - this.innerSubscription = null; - }; - SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) { - this.remove(innerSub); - this.innerSubscription = null; - if (this.isStopped) { - _super.prototype._complete.call(this); - } - }; - SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(innerValue); - }; - return SwitchMapSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=switchMap.js.map - -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/switchAll.js -/** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */ + } + // Determine which facade methods to use + let facade; + if (options.fs === null || options.fs === undefined) { + // The user didn't provide their own facades, so use our internal ones + facade = internalOptions.facade; + } + else if (typeof options.fs === 'object') { + // Merge the internal facade methods with the user-provided `fs` facades + facade = Object.assign({}, internalOptions.facade); + facade.fs = Object.assign({}, internalOptions.facade.fs, options.fs); + } + else { + throw new TypeError('options.fs must be an object'); + } -function switchAll() { - return switchMap(identity["a" /* identity */]); + return { + recurseDepth, + recurseFn, + recurseRegExp, + recurseGlob, + filterFn, + filterRegExp, + filterGlob, + sep, + basePath, + posixBasePath, + facade, + emit: !!internalOptions.emit, + stats: !!internalOptions.stats, + }; } -//# sourceMappingURL=switchAll.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js -/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */ -function switchMapTo(innerObservable, resultSelector) { - return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; }); -} -//# sourceMappingURL=switchMapTo.js.map +/***/ }), +/* 562 */ +/***/ (function(module, exports) { -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/takeUntil.js -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +module.exports = function (glob, opts) { + if (typeof glob !== 'string') { + throw new TypeError('Expected a string'); + } + var str = String(glob); + // The regexp we are building, as a string. + var reStr = ""; -function takeUntil(notifier) { - return function (source) { return source.lift(new takeUntil_TakeUntilOperator(notifier)); }; -} -var takeUntil_TakeUntilOperator = /*@__PURE__*/ (function () { - function TakeUntilOperator(notifier) { - this.notifier = notifier; - } - TakeUntilOperator.prototype.call = function (subscriber, source) { - var takeUntilSubscriber = new takeUntil_TakeUntilSubscriber(subscriber); - var notifierSubscription = Object(subscribeToResult["a" /* subscribeToResult */])(takeUntilSubscriber, this.notifier); - if (notifierSubscription && !notifierSubscription.closed) { - takeUntilSubscriber.add(notifierSubscription); - return source.subscribe(takeUntilSubscriber); - } - return takeUntilSubscriber; - }; - return TakeUntilOperator; -}()); -var takeUntil_TakeUntilSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](TakeUntilSubscriber, _super); - function TakeUntilSubscriber(destination) { - return _super.call(this, destination) || this; - } - TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.complete(); - }; - TakeUntilSubscriber.prototype.notifyComplete = function () { - }; - return TakeUntilSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=takeUntil.js.map + // Whether we are matching so called "extended" globs (like bash) and should + // support single character matching, matching ranges of characters, group + // matching, etc. + var extended = opts ? !!opts.extended : false; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/takeWhile.js -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + // When globstar is _false_ (default), '/foo/*' is translated a regexp like + // '^\/foo\/.*$' which will match any string beginning with '/foo/' + // When globstar is _true_, '/foo/*' is translated to regexp like + // '^\/foo\/[^/]*$' which will match any string beginning with '/foo/' BUT + // which does not have a '/' to the right of it. + // E.g. with '/foo/*' these will match: '/foo/bar', '/foo/bar.txt' but + // these will not '/foo/bar/baz', '/foo/bar/baz.txt' + // Lastely, when globstar is _true_, '/foo/**' is equivelant to '/foo/*' when + // globstar is _false_ + var globstar = opts ? !!opts.globstar : false; + // If we are doing extended matching, this boolean is true when we are inside + // a group (eg {*.html,*.js}), and false otherwise. + var inGroup = false; -function takeWhile(predicate) { - return function (source) { return source.lift(new TakeWhileOperator(predicate)); }; -} -var TakeWhileOperator = /*@__PURE__*/ (function () { - function TakeWhileOperator(predicate) { - this.predicate = predicate; - } - TakeWhileOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new takeWhile_TakeWhileSubscriber(subscriber, this.predicate)); - }; - return TakeWhileOperator; -}()); -var takeWhile_TakeWhileSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](TakeWhileSubscriber, _super); - function TakeWhileSubscriber(destination, predicate) { - var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.index = 0; - return _this; - } - TakeWhileSubscriber.prototype._next = function (value) { - var destination = this.destination; - var result; - try { - result = this.predicate(value, this.index++); - } - catch (err) { - destination.error(err); - return; - } - this.nextOrComplete(value, result); - }; - TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) { - var destination = this.destination; - if (Boolean(predicateResult)) { - destination.next(value); - } - else { - destination.complete(); - } - }; - return TakeWhileSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=takeWhile.js.map + // RegExp flags (eg "i" ) to pass in to RegExp constructor. + var flags = opts && typeof( opts.flags ) === "string" ? opts.flags : ""; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/throttle.js -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ + var c; + for (var i = 0, len = str.length; i < len; i++) { + c = str[i]; + switch (c) { + case "\\": + case "/": + case "$": + case "^": + case "+": + case ".": + case "(": + case ")": + case "=": + case "!": + case "|": + reStr += "\\" + c; + break; + case "?": + if (extended) { + reStr += "."; + break; + } -var defaultThrottleConfig = { - leading: true, - trailing: false -}; -function throttle(durationSelector, config) { - if (config === void 0) { - config = defaultThrottleConfig; - } - return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); }; -} -var ThrottleOperator = /*@__PURE__*/ (function () { - function ThrottleOperator(durationSelector, leading, trailing) { - this.durationSelector = durationSelector; - this.leading = leading; - this.trailing = trailing; - } - ThrottleOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new throttle_ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing)); - }; - return ThrottleOperator; -}()); -var throttle_ThrottleSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](ThrottleSubscriber, _super); - function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) { - var _this = _super.call(this, destination) || this; - _this.destination = destination; - _this.durationSelector = durationSelector; - _this._leading = _leading; - _this._trailing = _trailing; - _this._hasValue = false; - return _this; - } - ThrottleSubscriber.prototype._next = function (value) { - this._hasValue = true; - this._sendValue = value; - if (!this._throttled) { - if (this._leading) { - this.send(); - } - else { - this.throttle(value); - } - } - }; - ThrottleSubscriber.prototype.send = function () { - var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue; - if (_hasValue) { - this.destination.next(_sendValue); - this.throttle(_sendValue); - } - this._hasValue = false; - this._sendValue = null; - }; - ThrottleSubscriber.prototype.throttle = function (value) { - var duration = this.tryDurationSelector(value); - if (duration) { - this.add(this._throttled = Object(subscribeToResult["a" /* subscribeToResult */])(this, duration)); - } - }; - ThrottleSubscriber.prototype.tryDurationSelector = function (value) { - try { - return this.durationSelector(value); - } - catch (err) { - this.destination.error(err); - return null; - } - }; - ThrottleSubscriber.prototype.throttlingDone = function () { - var _a = this, _throttled = _a._throttled, _trailing = _a._trailing; - if (_throttled) { - _throttled.unsubscribe(); - } - this._throttled = null; - if (_trailing) { - this.send(); - } - }; - ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.throttlingDone(); - }; - ThrottleSubscriber.prototype.notifyComplete = function () { - this.throttlingDone(); - }; - return ThrottleSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=throttle.js.map + case "[": + case "]": + if (extended) { + reStr += c; + break; + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/throttleTime.js -/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */ + case "{": + if (extended) { + inGroup = true; + reStr += "("; + break; + } + case "}": + if (extended) { + inGroup = false; + reStr += ")"; + break; + } + case ",": + if (inGroup) { + reStr += "|"; + break; + } + reStr += "\\" + c; + break; + case "*": + // Move over all consecutive "*"'s. + // Also store the previous and next characters + var prevChar = str[i - 1]; + var starCount = 1; + while(str[i + 1] === "*") { + starCount++; + i++; + } + var nextChar = str[i + 1]; -function throttleTime(duration, scheduler, config) { - if (scheduler === void 0) { - scheduler = scheduler_async["a" /* async */]; - } - if (config === void 0) { - config = defaultThrottleConfig; - } - return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); }; -} -var ThrottleTimeOperator = /*@__PURE__*/ (function () { - function ThrottleTimeOperator(duration, scheduler, leading, trailing) { - this.duration = duration; - this.scheduler = scheduler; - this.leading = leading; - this.trailing = trailing; - } - ThrottleTimeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new throttleTime_ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing)); - }; - return ThrottleTimeOperator; -}()); -var throttleTime_ThrottleTimeSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](ThrottleTimeSubscriber, _super); - function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) { - var _this = _super.call(this, destination) || this; - _this.duration = duration; - _this.scheduler = scheduler; - _this.leading = leading; - _this.trailing = trailing; - _this._hasTrailingValue = false; - _this._trailingValue = null; - return _this; - } - ThrottleTimeSubscriber.prototype._next = function (value) { - if (this.throttled) { - if (this.trailing) { - this._trailingValue = value; - this._hasTrailingValue = true; - } - } - else { - this.add(this.throttled = this.scheduler.schedule(throttleTime_dispatchNext, this.duration, { subscriber: this })); - if (this.leading) { - this.destination.next(value); - } - } - }; - ThrottleTimeSubscriber.prototype._complete = function () { - if (this._hasTrailingValue) { - this.destination.next(this._trailingValue); - this.destination.complete(); - } - else { - this.destination.complete(); - } - }; - ThrottleTimeSubscriber.prototype.clearThrottle = function () { - var throttled = this.throttled; - if (throttled) { - if (this.trailing && this._hasTrailingValue) { - this.destination.next(this._trailingValue); - this._trailingValue = null; - this._hasTrailingValue = false; - } - throttled.unsubscribe(); - this.remove(throttled); - this.throttled = null; - } - }; - return ThrottleTimeSubscriber; -}(Subscriber["a" /* Subscriber */])); -function throttleTime_dispatchNext(arg) { - var subscriber = arg.subscriber; - subscriber.clearThrottle(); -} -//# sourceMappingURL=throttleTime.js.map + if (!globstar) { + // globstar is disabled, so treat any number of "*" as one + reStr += ".*"; + } else { + // globstar is enabled, so determine if this is a globstar segment + var isGlobstar = starCount > 1 // multiple "*"'s + && (prevChar === "/" || prevChar === undefined) // from the start of the segment + && (nextChar === "/" || nextChar === undefined) // to the end of the segment -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/defer.js -var defer = __webpack_require__(56); + if (isGlobstar) { + // it's a globstar, so match zero or more path segments + reStr += "(?:[^/]*(?:\/|$))*"; + i++; // move over the "/" + } else { + // it's not a globstar, so only match one path segment + reStr += "[^/]*"; + } + } + break; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/timeInterval.js -/** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */ + default: + reStr += c; + } + } + // When regexp 'g' flag is specified don't + // constrain the regular expression with ^ & $ + if (!flags || !~flags.indexOf('g')) { + reStr = "^" + reStr + "$"; + } + return new RegExp(reStr, flags); +}; -function timeInterval(scheduler) { - if (scheduler === void 0) { - scheduler = scheduler_async["a" /* async */]; - } - return function (source) { - return Object(defer["a" /* defer */])(function () { - return source.pipe(scan(function (_a, value) { - var current = _a.current; - return ({ value: value, current: scheduler.now(), last: current }); - }, { current: scheduler.now(), value: undefined, last: undefined }), Object(map["a" /* map */])(function (_a) { - var current = _a.current, last = _a.last, value = _a.value; - return new TimeInterval(value, current - last); - })); - }); - }; -} -var TimeInterval = /*@__PURE__*/ (function () { - function TimeInterval(value, interval) { - this.value = value; - this.interval = interval; - } - return TimeInterval; -}()); +/***/ }), +/* 563 */ +/***/ (function(module, exports, __webpack_require__) { -//# sourceMappingURL=timeInterval.js.map +"use strict"; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/TimeoutError.js -var TimeoutError = __webpack_require__(83); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js -/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +const call = __webpack_require__(564); +module.exports = stat; +/** + * Retrieves the {@link fs.Stats} for the given path. If the path is a symbolic link, + * then the Stats of the symlink's target are returned instead. If the symlink is broken, + * then the Stats of the symlink itself are returned. + * + * @param {object} fs - Synchronous or Asynchronouse facade for the "fs" module + * @param {string} path - The path to return stats for + * @param {function} callback + */ +function stat (fs, path, callback) { + let isSymLink = false; + call.safe(fs.lstat, path, (err, lstats) => { + if (err) { + // fs.lstat threw an eror + return callback(err); + } + try { + isSymLink = lstats.isSymbolicLink(); + } + catch (err2) { + // lstats.isSymbolicLink() threw an error + // (probably because fs.lstat returned an invalid result) + return callback(err2); + } -function timeoutWith(due, withObservable, scheduler) { - if (scheduler === void 0) { - scheduler = scheduler_async["a" /* async */]; + if (isSymLink) { + // Try to resolve the symlink + symlinkStat(fs, path, lstats, callback); } - return function (source) { - var absoluteTimeout = isDate(due); - var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due); - return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler)); - }; + else { + // It's not a symlink, so return the stats as-is + callback(null, lstats); + } + }); } -var TimeoutWithOperator = /*@__PURE__*/ (function () { - function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) { - this.waitFor = waitFor; - this.absoluteTimeout = absoluteTimeout; - this.withObservable = withObservable; - this.scheduler = scheduler; + +/** + * Retrieves the {@link fs.Stats} for the target of the given symlink. + * If the symlink is broken, then the Stats of the symlink itself are returned. + * + * @param {object} fs - Synchronous or Asynchronouse facade for the "fs" module + * @param {string} path - The path of the symlink to return stats for + * @param {object} lstats - The stats of the symlink + * @param {function} callback + */ +function symlinkStat (fs, path, lstats, callback) { + call.safe(fs.stat, path, (err, stats) => { + if (err) { + // The symlink is broken, so return the stats for the link itself + return callback(null, lstats); } - TimeoutWithOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new timeoutWith_TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler)); - }; - return TimeoutWithOperator; -}()); -var timeoutWith_TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](TimeoutWithSubscriber, _super); - function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) { - var _this = _super.call(this, destination) || this; - _this.absoluteTimeout = absoluteTimeout; - _this.waitFor = waitFor; - _this.withObservable = withObservable; - _this.scheduler = scheduler; - _this.action = null; - _this.scheduleTimeout(); - return _this; + + try { + // Return the stats for the resolved symlink target, + // and override the `isSymbolicLink` method to indicate that it's a symlink + stats.isSymbolicLink = () => true; + } + catch (err2) { + // Setting stats.isSymbolicLink threw an error + // (probably because fs.stat returned an invalid result) + return callback(err2); } - TimeoutWithSubscriber.dispatchTimeout = function (subscriber) { - var withObservable = subscriber.withObservable; - subscriber._unsubscribeAndRecycle(); - subscriber.add(Object(subscribeToResult["a" /* subscribeToResult */])(subscriber, withObservable)); - }; - TimeoutWithSubscriber.prototype.scheduleTimeout = function () { - var action = this.action; - if (action) { - this.action = action.schedule(this, this.waitFor); - } - else { - this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this)); - } - }; - TimeoutWithSubscriber.prototype._next = function (value) { - if (!this.absoluteTimeout) { - this.scheduleTimeout(); - } - _super.prototype._next.call(this, value); - }; - TimeoutWithSubscriber.prototype._unsubscribe = function () { - this.action = null; - this.scheduler = null; - this.withObservable = null; - }; - return TimeoutWithSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=timeoutWith.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/throwError.js -var throwError = __webpack_require__(53); + callback(null, stats); + }); +} -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/timeout.js -/** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */ +/***/ }), +/* 564 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; -function timeout(due, scheduler) { - if (scheduler === void 0) { - scheduler = scheduler_async["a" /* async */]; - } - return timeoutWith(due, Object(throwError["a" /* throwError */])(new TimeoutError["a" /* TimeoutError */]()), scheduler); -} -//# sourceMappingURL=timeout.js.map +let call = module.exports = { + safe: safeCall, + once: callOnce, +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/timestamp.js -/** PURE_IMPORTS_START _scheduler_async,_map PURE_IMPORTS_END */ +/** + * Calls a function with the given arguments, and ensures that the error-first callback is _always_ + * invoked exactly once, even if the function throws an error. + * + * @param {function} fn - The function to invoke + * @param {...*} args - The arguments to pass to the function. The final argument must be a callback function. + */ +function safeCall (fn, args) { + // Get the function arguments as an array + args = Array.prototype.slice.call(arguments, 1); + // Replace the callback function with a wrapper that ensures it will only be called once + let callback = call.once(args.pop()); + args.push(callback); -function timestamp(scheduler) { - if (scheduler === void 0) { - scheduler = scheduler_async["a" /* async */]; - } - return Object(map["a" /* map */])(function (value) { return new Timestamp(value, scheduler.now()); }); + try { + fn.apply(null, args); + } + catch (err) { + callback(err); + } } -var Timestamp = /*@__PURE__*/ (function () { - function Timestamp(value, timestamp) { - this.value = value; - this.timestamp = timestamp; - } - return Timestamp; -}()); - -//# sourceMappingURL=timestamp.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/toArray.js -/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ +/** + * Returns a wrapper function that ensures the given callback function is only called once. + * Subsequent calls are ignored, unless the first argument is an Error, in which case the + * error is thrown. + * + * @param {function} fn - The function that should only be called once + * @returns {function} + */ +function callOnce (fn) { + let fulfilled = false; -function toArrayReducer(arr, item, index) { - if (index === 0) { - return [item]; + return function onceWrapper (err) { + if (!fulfilled) { + fulfilled = true; + return fn.apply(this, arguments); } - arr.push(item); - return arr; -} -function toArray() { - return reduce(toArrayReducer, []); + else if (err) { + // The callback has already been called, but now an error has occurred + // (most likely inside the callback function). So re-throw the error, + // so it gets handled further up the call stack + throw err; + } + }; } -//# sourceMappingURL=toArray.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/window.js -/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/***/ }), +/* 565 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; -function window_window(windowBoundaries) { - return function windowOperatorFunction(source) { - return source.lift(new window_WindowOperator(windowBoundaries)); - }; -} -var window_WindowOperator = /*@__PURE__*/ (function () { - function WindowOperator(windowBoundaries) { - this.windowBoundaries = windowBoundaries; - } - WindowOperator.prototype.call = function (subscriber, source) { - var windowSubscriber = new window_WindowSubscriber(subscriber); - var sourceSubscription = source.subscribe(windowSubscriber); - if (!sourceSubscription.closed) { - windowSubscriber.add(Object(subscribeToResult["a" /* subscribeToResult */])(windowSubscriber, this.windowBoundaries)); - } - return sourceSubscription; - }; - return WindowOperator; -}()); -var window_WindowSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](WindowSubscriber, _super); - function WindowSubscriber(destination) { - var _this = _super.call(this, destination) || this; - _this.window = new Subject["a" /* Subject */](); - destination.next(_this.window); - return _this; - } - WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.openWindow(); - }; - WindowSubscriber.prototype.notifyError = function (error, innerSub) { - this._error(error); - }; - WindowSubscriber.prototype.notifyComplete = function (innerSub) { - this._complete(); - }; - WindowSubscriber.prototype._next = function (value) { - this.window.next(value); - }; - WindowSubscriber.prototype._error = function (err) { - this.window.error(err); - this.destination.error(err); - }; - WindowSubscriber.prototype._complete = function () { - this.window.complete(); - this.destination.complete(); - }; - WindowSubscriber.prototype._unsubscribe = function () { - this.window = null; - }; - WindowSubscriber.prototype.openWindow = function () { - var prevWindow = this.window; - if (prevWindow) { - prevWindow.complete(); - } - var destination = this.destination; - var newWindow = this.window = new Subject["a" /* Subject */](); - destination.next(newWindow); - }; - return WindowSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=window.js.map +const fs = __webpack_require__(23); +const call = __webpack_require__(564); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/windowCount.js -/** PURE_IMPORTS_START tslib,_Subscriber,_Subject PURE_IMPORTS_END */ +/** + * A facade around {@link fs.readdirSync} that allows it to be called + * the same way as {@link fs.readdir}. + * + * @param {string} dir + * @param {function} callback + */ +exports.readdir = function (dir, callback) { + // Make sure the callback is only called once + callback = call.once(callback); + try { + let items = fs.readdirSync(dir); + callback(null, items); + } + catch (err) { + callback(err); + } +}; +/** + * A facade around {@link fs.statSync} that allows it to be called + * the same way as {@link fs.stat}. + * + * @param {string} path + * @param {function} callback + */ +exports.stat = function (path, callback) { + // Make sure the callback is only called once + callback = call.once(callback); -function windowCount(windowSize, startWindowEvery) { - if (startWindowEvery === void 0) { - startWindowEvery = 0; - } - return function windowCountOperatorFunction(source) { - return source.lift(new WindowCountOperator(windowSize, startWindowEvery)); - }; -} -var WindowCountOperator = /*@__PURE__*/ (function () { - function WindowCountOperator(windowSize, startWindowEvery) { - this.windowSize = windowSize; - this.startWindowEvery = startWindowEvery; - } - WindowCountOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new windowCount_WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery)); - }; - return WindowCountOperator; -}()); -var windowCount_WindowCountSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](WindowCountSubscriber, _super); - function WindowCountSubscriber(destination, windowSize, startWindowEvery) { - var _this = _super.call(this, destination) || this; - _this.destination = destination; - _this.windowSize = windowSize; - _this.startWindowEvery = startWindowEvery; - _this.windows = [new Subject["a" /* Subject */]()]; - _this.count = 0; - destination.next(_this.windows[0]); - return _this; - } - WindowCountSubscriber.prototype._next = function (value) { - var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize; - var destination = this.destination; - var windowSize = this.windowSize; - var windows = this.windows; - var len = windows.length; - for (var i = 0; i < len && !this.closed; i++) { - windows[i].next(value); - } - var c = this.count - windowSize + 1; - if (c >= 0 && c % startWindowEvery === 0 && !this.closed) { - windows.shift().complete(); - } - if (++this.count % startWindowEvery === 0 && !this.closed) { - var window_1 = new Subject["a" /* Subject */](); - windows.push(window_1); - destination.next(window_1); - } - }; - WindowCountSubscriber.prototype._error = function (err) { - var windows = this.windows; - if (windows) { - while (windows.length > 0 && !this.closed) { - windows.shift().error(err); - } - } - this.destination.error(err); - }; - WindowCountSubscriber.prototype._complete = function () { - var windows = this.windows; - if (windows) { - while (windows.length > 0 && !this.closed) { - windows.shift().complete(); - } - } - this.destination.complete(); - }; - WindowCountSubscriber.prototype._unsubscribe = function () { - this.count = 0; - this.windows = null; - }; - return WindowCountSubscriber; -}(Subscriber["a" /* Subscriber */])); -//# sourceMappingURL=windowCount.js.map + try { + let stats = fs.statSync(path); + callback(null, stats); + } + catch (err) { + callback(err); + } +}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/windowTime.js -/** PURE_IMPORTS_START tslib,_Subject,_scheduler_async,_Subscriber,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */ +/** + * A facade around {@link fs.lstatSync} that allows it to be called + * the same way as {@link fs.lstat}. + * + * @param {string} path + * @param {function} callback + */ +exports.lstat = function (path, callback) { + // Make sure the callback is only called once + callback = call.once(callback); + try { + let stats = fs.lstatSync(path); + callback(null, stats); + } + catch (err) { + callback(err); + } +}; +/***/ }), +/* 566 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; -function windowTime_windowTime(windowTimeSpan) { - var scheduler = scheduler_async["a" /* async */]; - var windowCreationInterval = null; - var maxWindowSize = Number.POSITIVE_INFINITY; - if (Object(isScheduler["a" /* isScheduler */])(arguments[3])) { - scheduler = arguments[3]; - } - if (Object(isScheduler["a" /* isScheduler */])(arguments[2])) { - scheduler = arguments[2]; - } - else if (Object(isNumeric["a" /* isNumeric */])(arguments[2])) { - maxWindowSize = arguments[2]; - } - if (Object(isScheduler["a" /* isScheduler */])(arguments[1])) { - scheduler = arguments[1]; - } - else if (Object(isNumeric["a" /* isNumeric */])(arguments[1])) { - windowCreationInterval = arguments[1]; - } - return function windowTimeOperatorFunction(source) { - return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler)); - }; -} -var WindowTimeOperator = /*@__PURE__*/ (function () { - function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { - this.windowTimeSpan = windowTimeSpan; - this.windowCreationInterval = windowCreationInterval; - this.maxWindowSize = maxWindowSize; - this.scheduler = scheduler; - } - WindowTimeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new windowTime_WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler)); - }; - return WindowTimeOperator; -}()); -var windowTime_CountedSubject = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](CountedSubject, _super); - function CountedSubject() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._numberOfNextedValues = 0; - return _this; - } - CountedSubject.prototype.next = function (value) { - this._numberOfNextedValues++; - _super.prototype.next.call(this, value); - }; - Object.defineProperty(CountedSubject.prototype, "numberOfNextedValues", { - get: function () { - return this._numberOfNextedValues; - }, - enumerable: true, - configurable: true - }); - return CountedSubject; -}(Subject["a" /* Subject */])); -var windowTime_WindowTimeSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](WindowTimeSubscriber, _super); - function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { - var _this = _super.call(this, destination) || this; - _this.destination = destination; - _this.windowTimeSpan = windowTimeSpan; - _this.windowCreationInterval = windowCreationInterval; - _this.maxWindowSize = maxWindowSize; - _this.scheduler = scheduler; - _this.windows = []; - var window = _this.openWindow(); - if (windowCreationInterval !== null && windowCreationInterval >= 0) { - var closeState = { subscriber: _this, window: window, context: null }; - var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler }; - _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState)); - _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState)); - } - else { - var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan }; - _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState)); - } - return _this; - } - WindowTimeSubscriber.prototype._next = function (value) { - var windows = this.windows; - var len = windows.length; - for (var i = 0; i < len; i++) { - var window_1 = windows[i]; - if (!window_1.closed) { - window_1.next(value); - if (window_1.numberOfNextedValues >= this.maxWindowSize) { - this.closeWindow(window_1); - } - } - } - }; - WindowTimeSubscriber.prototype._error = function (err) { - var windows = this.windows; - while (windows.length > 0) { - windows.shift().error(err); - } - this.destination.error(err); - }; - WindowTimeSubscriber.prototype._complete = function () { - var windows = this.windows; - while (windows.length > 0) { - var window_2 = windows.shift(); - if (!window_2.closed) { - window_2.complete(); - } - } - this.destination.complete(); - }; - WindowTimeSubscriber.prototype.openWindow = function () { - var window = new windowTime_CountedSubject(); - this.windows.push(window); - var destination = this.destination; - destination.next(window); - return window; - }; - WindowTimeSubscriber.prototype.closeWindow = function (window) { - window.complete(); - var windows = this.windows; - windows.splice(windows.indexOf(window), 1); - }; - return WindowTimeSubscriber; -}(Subscriber["a" /* Subscriber */])); -function dispatchWindowTimeSpanOnly(state) { - var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window; - if (window) { - subscriber.closeWindow(window); - } - state.window = subscriber.openWindow(); - this.schedule(state, windowTimeSpan); +module.exports = syncForEach; + +/** + * A facade that allows {@link Array.forEach} to be called as though it were asynchronous. + * + * @param {array} array - The array to iterate over + * @param {function} iterator - The function to call for each item in the array + * @param {function} done - The function to call when all iterators have completed + */ +function syncForEach (array, iterator, done) { + array.forEach(item => { + iterator(item, () => { + // Note: No error-handling here because this is currently only ever called + // by DirectoryReader, which never passes an `error` parameter to the callback. + // Instead, DirectoryReader emits an "error" event if an error occurs. + }); + }); + + done(); } -function dispatchWindowCreation(state) { - var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval; - var window = subscriber.openWindow(); - var action = this; - var context = { action: action, subscription: null }; - var timeSpanState = { subscriber: subscriber, window: window, context: context }; - context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState); - action.add(context.subscription); - action.schedule(state, windowCreationInterval); + + +/***/ }), +/* 567 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = readdirAsync; + +const maybe = __webpack_require__(568); +const DirectoryReader = __webpack_require__(560); + +let asyncFacade = { + fs: __webpack_require__(23), + forEach: __webpack_require__(569), + async: true +}; + +/** + * Returns the buffered output from an asynchronous {@link DirectoryReader}, + * via an error-first callback or a {@link Promise}. + * + * @param {string} dir + * @param {object} [options] + * @param {function} [callback] + * @param {object} internalOptions + */ +function readdirAsync (dir, options, callback, internalOptions) { + if (typeof options === 'function') { + callback = options; + options = undefined; + } + + return maybe(callback, new Promise(((resolve, reject) => { + let results = []; + + internalOptions.facade = asyncFacade; + + let reader = new DirectoryReader(dir, options, internalOptions); + let stream = reader.stream; + + stream.on('error', err => { + reject(err); + stream.pause(); + }); + stream.on('data', result => { + results.push(result); + }); + stream.on('end', () => { + resolve(results); + }); + }))); } -function dispatchWindowClose(state) { - var subscriber = state.subscriber, window = state.window, context = state.context; - if (context && context.action && context.subscription) { - context.action.remove(context.subscription); - } - subscriber.closeWindow(window); + + +/***/ }), +/* 568 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var next = (global.process && process.nextTick) || global.setImmediate || function (f) { + setTimeout(f, 0) } -//# sourceMappingURL=windowTime.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/windowToggle.js -/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +module.exports = function maybe (cb, promise) { + if (cb) { + promise + .then(function (result) { + next(function () { cb(null, result) }) + }, function (err) { + next(function () { cb(err) }) + }) + return undefined + } + else { + return promise + } +} +/***/ }), +/* 569 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +module.exports = asyncForEach; +/** + * Simultaneously processes all items in the given array. + * + * @param {array} array - The array to iterate over + * @param {function} iterator - The function to call for each item in the array + * @param {function} done - The function to call when all iterators have completed + */ +function asyncForEach (array, iterator, done) { + if (array.length === 0) { + // NOTE: Normally a bad idea to mix sync and async, but it's safe here because + // of the way that this method is currently used by DirectoryReader. + done(); + return; + } -function windowToggle(openings, closingSelector) { - return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); }; + // Simultaneously process all items in the array. + let pending = array.length; + array.forEach(item => { + iterator(item, () => { + if (--pending === 0) { + done(); + } + }); + }); } -var WindowToggleOperator = /*@__PURE__*/ (function () { - function WindowToggleOperator(openings, closingSelector) { - this.openings = openings; - this.closingSelector = closingSelector; - } - WindowToggleOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new windowToggle_WindowToggleSubscriber(subscriber, this.openings, this.closingSelector)); - }; - return WindowToggleOperator; -}()); -var windowToggle_WindowToggleSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](WindowToggleSubscriber, _super); - function WindowToggleSubscriber(destination, openings, closingSelector) { - var _this = _super.call(this, destination) || this; - _this.openings = openings; - _this.closingSelector = closingSelector; - _this.contexts = []; - _this.add(_this.openSubscription = Object(subscribeToResult["a" /* subscribeToResult */])(_this, openings, openings)); - return _this; - } - WindowToggleSubscriber.prototype._next = function (value) { - var contexts = this.contexts; - if (contexts) { - var len = contexts.length; - for (var i = 0; i < len; i++) { - contexts[i].window.next(value); - } - } - }; - WindowToggleSubscriber.prototype._error = function (err) { - var contexts = this.contexts; - this.contexts = null; - if (contexts) { - var len = contexts.length; - var index = -1; - while (++index < len) { - var context_1 = contexts[index]; - context_1.window.error(err); - context_1.subscription.unsubscribe(); - } - } - _super.prototype._error.call(this, err); - }; - WindowToggleSubscriber.prototype._complete = function () { - var contexts = this.contexts; - this.contexts = null; - if (contexts) { - var len = contexts.length; - var index = -1; - while (++index < len) { - var context_2 = contexts[index]; - context_2.window.complete(); - context_2.subscription.unsubscribe(); - } - } - _super.prototype._complete.call(this); - }; - WindowToggleSubscriber.prototype._unsubscribe = function () { - var contexts = this.contexts; - this.contexts = null; - if (contexts) { - var len = contexts.length; - var index = -1; - while (++index < len) { - var context_3 = contexts[index]; - context_3.window.unsubscribe(); - context_3.subscription.unsubscribe(); - } - } - }; - WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - if (outerValue === this.openings) { - var closingSelector = this.closingSelector; - var closingNotifier = Object(tryCatch["a" /* tryCatch */])(closingSelector)(innerValue); - if (closingNotifier === errorObject["a" /* errorObject */]) { - return this.error(errorObject["a" /* errorObject */].e); - } - else { - var window_1 = new Subject["a" /* Subject */](); - var subscription = new Subscription["a" /* Subscription */](); - var context_4 = { window: window_1, subscription: subscription }; - this.contexts.push(context_4); - var innerSubscription = Object(subscribeToResult["a" /* subscribeToResult */])(this, closingNotifier, context_4); - if (innerSubscription.closed) { - this.closeWindow(this.contexts.length - 1); - } - else { - innerSubscription.context = context_4; - subscription.add(innerSubscription); - } - this.destination.next(window_1); - } - } - else { - this.closeWindow(this.contexts.indexOf(outerValue)); - } - }; - WindowToggleSubscriber.prototype.notifyError = function (err) { - this.error(err); - }; - WindowToggleSubscriber.prototype.notifyComplete = function (inner) { - if (inner !== this.openSubscription) { - this.closeWindow(this.contexts.indexOf(inner.context)); - } - }; - WindowToggleSubscriber.prototype.closeWindow = function (index) { - if (index === -1) { - return; - } - var contexts = this.contexts; - var context = contexts[index]; - var window = context.window, subscription = context.subscription; - contexts.splice(index, 1); - window.complete(); - subscription.unsubscribe(); - }; - return WindowToggleSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=windowToggle.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/windowWhen.js -/** PURE_IMPORTS_START tslib,_Subject,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/***/ }), +/* 570 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +module.exports = readdirStream; +const DirectoryReader = __webpack_require__(560); -function windowWhen(closingSelector) { - return function windowWhenOperatorFunction(source) { - return source.lift(new windowWhen_WindowOperator(closingSelector)); - }; +let streamFacade = { + fs: __webpack_require__(23), + forEach: __webpack_require__(569), + async: true +}; + +/** + * Returns the {@link stream.Readable} of an asynchronous {@link DirectoryReader}. + * + * @param {string} dir + * @param {object} [options] + * @param {object} internalOptions + */ +function readdirStream (dir, options, internalOptions) { + internalOptions.facade = streamFacade; + + let reader = new DirectoryReader(dir, options, internalOptions); + return reader.stream; } -var windowWhen_WindowOperator = /*@__PURE__*/ (function () { - function WindowOperator(closingSelector) { - this.closingSelector = closingSelector; - } - WindowOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new windowWhen_WindowSubscriber(subscriber, this.closingSelector)); - }; - return WindowOperator; -}()); -var windowWhen_WindowSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](WindowSubscriber, _super); - function WindowSubscriber(destination, closingSelector) { - var _this = _super.call(this, destination) || this; - _this.destination = destination; - _this.closingSelector = closingSelector; - _this.openWindow(); - return _this; + + +/***/ }), +/* 571 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var path = __webpack_require__(16); +var deep_1 = __webpack_require__(572); +var entry_1 = __webpack_require__(575); +var Reader = /** @class */ (function () { + function Reader(options) { + this.options = options; + this.micromatchOptions = this.getMicromatchOptions(); + this.entryFilter = new entry_1.default(options, this.micromatchOptions); + this.deepFilter = new deep_1.default(options, this.micromatchOptions); } - WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.openWindow(innerSub); - }; - WindowSubscriber.prototype.notifyError = function (error, innerSub) { - this._error(error); - }; - WindowSubscriber.prototype.notifyComplete = function (innerSub) { - this.openWindow(innerSub); - }; - WindowSubscriber.prototype._next = function (value) { - this.window.next(value); - }; - WindowSubscriber.prototype._error = function (err) { - this.window.error(err); - this.destination.error(err); - this.unsubscribeClosingNotification(); + /** + * Returns root path to scanner. + */ + Reader.prototype.getRootDirectory = function (task) { + return path.resolve(this.options.cwd, task.base); }; - WindowSubscriber.prototype._complete = function () { - this.window.complete(); - this.destination.complete(); - this.unsubscribeClosingNotification(); + /** + * Returns options for reader. + */ + Reader.prototype.getReaderOptions = function (task) { + return { + basePath: task.base === '.' ? '' : task.base, + filter: this.entryFilter.getFilter(task.positive, task.negative), + deep: this.deepFilter.getFilter(task.positive, task.negative), + sep: '/' + }; }; - WindowSubscriber.prototype.unsubscribeClosingNotification = function () { - if (this.closingNotification) { - this.closingNotification.unsubscribe(); - } + /** + * Returns options for micromatch. + */ + Reader.prototype.getMicromatchOptions = function () { + return { + dot: this.options.dot, + nobrace: this.options.nobrace, + noglobstar: this.options.noglobstar, + noext: this.options.noext, + nocase: this.options.nocase, + matchBase: this.options.matchBase + }; }; - WindowSubscriber.prototype.openWindow = function (innerSub) { - if (innerSub === void 0) { - innerSub = null; - } - if (innerSub) { - this.remove(innerSub); - innerSub.unsubscribe(); - } - var prevWindow = this.window; - if (prevWindow) { - prevWindow.complete(); + /** + * Returns transformed entry. + */ + Reader.prototype.transform = function (entry) { + if (this.options.markDirectories && entry.isDirectory()) { + entry.path += '/'; } - var window = this.window = new Subject["a" /* Subject */](); - this.destination.next(window); - var closingNotifier = Object(tryCatch["a" /* tryCatch */])(this.closingSelector)(); - if (closingNotifier === errorObject["a" /* errorObject */]) { - var err = errorObject["a" /* errorObject */].e; - this.destination.error(err); - this.window.error(err); + if (this.options.absolute && !path.isAbsolute(entry.path)) { + entry.path = path.resolve(this.options.cwd, entry.path); } - else { - this.add(this.closingNotification = Object(subscribeToResult["a" /* subscribeToResult */])(this, closingNotifier)); + var item = this.options.stats ? entry : entry.path; + if (this.options.transform === null) { + return item; } + return this.options.transform(item); }; - return WindowSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=windowWhen.js.map + /** + * Returns true if error has ENOENT code. + */ + Reader.prototype.isEnoentCodeError = function (err) { + return err.code === 'ENOENT'; + }; + return Reader; +}()); +exports.default = Reader; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/***/ }), +/* 572 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; -function withLatestFrom() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return function (source) { - var project; - if (typeof args[args.length - 1] === 'function') { - project = args.pop(); - } - var observables = args; - return source.lift(new WithLatestFromOperator(observables, project)); - }; -} -var WithLatestFromOperator = /*@__PURE__*/ (function () { - function WithLatestFromOperator(observables, project) { - this.observables = observables; - this.project = project; +Object.defineProperty(exports, "__esModule", { value: true }); +var arrayUtils = __webpack_require__(573); +var pathUtils = __webpack_require__(574); +var patternUtils = __webpack_require__(383); +var DeepFilter = /** @class */ (function () { + function DeepFilter(options, micromatchOptions) { + this.options = options; + this.micromatchOptions = micromatchOptions; } - WithLatestFromOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new withLatestFrom_WithLatestFromSubscriber(subscriber, this.observables, this.project)); + /** + * Returns filter for directories. + */ + DeepFilter.prototype.getFilter = function (positive, negative) { + var _this = this; + var depth = this.getMaxDeth(positive); + var negativeRe = patternUtils.convertPatternsToRe(negative, this.micromatchOptions); + return function (entry) { return _this.filter(entry, negativeRe, depth); }; }; - return WithLatestFromOperator; -}()); -var withLatestFrom_WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](WithLatestFromSubscriber, _super); - function WithLatestFromSubscriber(destination, observables, project) { - var _this = _super.call(this, destination) || this; - _this.observables = observables; - _this.project = project; - _this.toRespond = []; - var len = observables.length; - _this.values = new Array(len); - for (var i = 0; i < len; i++) { - _this.toRespond.push(i); + /** + * Returns true if directory must be read. + */ + DeepFilter.prototype.filter = function (entry, negativeRe, depth) { + // Skip reading, depending on the nesting level + if (!this.options.deep || this.skipByDeepOption(entry) || this.skipByPatternDepth(entry, depth)) { + return false; } - for (var i = 0; i < len; i++) { - var observable = observables[i]; - _this.add(Object(subscribeToResult["a" /* subscribeToResult */])(_this, observable, observable, i)); + // Skip reading if the directory is symlink and we don't want expand symlinks + if (this.isFollowedSymlink(entry)) { + return false; } - return _this; - } - WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.values[outerIndex] = innerValue; - var toRespond = this.toRespond; - if (toRespond.length > 0) { - var found = toRespond.indexOf(outerIndex); - if (found !== -1) { - toRespond.splice(found, 1); - } + // Skip reading if the directory name starting with a period and is not expected + if (this.isFollowedDotDirectory(entry)) { + return false; + } + // Skip by negative patterns + if (patternUtils.matchAny(entry.path, negativeRe)) { + return false; } + return true; }; - WithLatestFromSubscriber.prototype.notifyComplete = function () { + /** + * Returns max depth for reading. + */ + DeepFilter.prototype.getMaxDeth = function (positive) { + var globstar = positive.some(patternUtils.hasGlobStar); + var patternDepths = positive.map(patternUtils.getDepth); + return globstar ? Infinity : arrayUtils.max(patternDepths); }; - WithLatestFromSubscriber.prototype._next = function (value) { - if (this.toRespond.length === 0) { - var args = [value].concat(this.values); - if (this.project) { - this._tryProject(args); - } - else { - this.destination.next(args); - } - } + /** + * Returns true for dot directories if the «dot» option is enabled. + */ + DeepFilter.prototype.isFollowedDotDirectory = function (entry) { + return !this.options.dot && pathUtils.isDotDirectory(entry.path); }; - WithLatestFromSubscriber.prototype._tryProject = function (args) { - var result; - try { - result = this.project.apply(this, args); - } - catch (err) { - this.destination.error(err); - return; - } - this.destination.next(result); + /** + * Returns true for symlinked directories if the «followSymlinks» option is enabled. + */ + DeepFilter.prototype.isFollowedSymlink = function (entry) { + return !this.options.followSymlinkedDirectories && entry.isSymbolicLink(); + }; + /** + * Returns true when the «deep» options is number and entry depth greater that the option value. + */ + DeepFilter.prototype.skipByDeepOption = function (entry) { + return typeof this.options.deep === 'number' && entry.depth > this.options.deep; + }; + /** + * Return true when depth parameter is not an Infinity and entry depth greater that the parameter value. + */ + DeepFilter.prototype.skipByPatternDepth = function (entry, depth) { + return depth !== Infinity && entry.depth > depth; }; - return WithLatestFromSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=withLatestFrom.js.map - -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/zip.js -var zip = __webpack_require__(57); + return DeepFilter; +}()); +exports.default = DeepFilter; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/zip.js -/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */ -function zip_zip() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - return function zipOperatorFunction(source) { - return source.lift.call(zip["b" /* zip */].apply(void 0, [source].concat(observables))); - }; -} -//# sourceMappingURL=zip.js.map +/***/ }), +/* 573 */ +/***/ (function(module, exports, __webpack_require__) { -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/zipAll.js -/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */ +"use strict"; -function zipAll(project) { - return function (source) { return source.lift(new zip["a" /* ZipOperator */](project)); }; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Flatten nested arrays (max depth is 2) into a non-nested array of non-array items. + */ +function flatten(items) { + return items.reduce(function (collection, item) { return [].concat(collection, item); }, []); } -//# sourceMappingURL=zipAll.js.map - -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/operators/index.js -/* concated harmony reexport audit */__webpack_require__.d(__webpack_exports__, "audit", function() { return audit; }); -/* concated harmony reexport auditTime */__webpack_require__.d(__webpack_exports__, "auditTime", function() { return auditTime; }); -/* concated harmony reexport buffer */__webpack_require__.d(__webpack_exports__, "buffer", function() { return buffer_buffer; }); -/* concated harmony reexport bufferCount */__webpack_require__.d(__webpack_exports__, "bufferCount", function() { return bufferCount; }); -/* concated harmony reexport bufferTime */__webpack_require__.d(__webpack_exports__, "bufferTime", function() { return bufferTime; }); -/* concated harmony reexport bufferToggle */__webpack_require__.d(__webpack_exports__, "bufferToggle", function() { return bufferToggle; }); -/* concated harmony reexport bufferWhen */__webpack_require__.d(__webpack_exports__, "bufferWhen", function() { return bufferWhen; }); -/* concated harmony reexport catchError */__webpack_require__.d(__webpack_exports__, "catchError", function() { return catchError; }); -/* concated harmony reexport combineAll */__webpack_require__.d(__webpack_exports__, "combineAll", function() { return combineAll; }); -/* concated harmony reexport combineLatest */__webpack_require__.d(__webpack_exports__, "combineLatest", function() { return combineLatest_combineLatest; }); -/* concated harmony reexport concat */__webpack_require__.d(__webpack_exports__, "concat", function() { return concat_concat; }); -/* concated harmony reexport concatAll */__webpack_require__.d(__webpack_exports__, "concatAll", function() { return concatAll["a" /* concatAll */]; }); -/* concated harmony reexport concatMap */__webpack_require__.d(__webpack_exports__, "concatMap", function() { return concatMap; }); -/* concated harmony reexport concatMapTo */__webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return concatMapTo; }); -/* concated harmony reexport count */__webpack_require__.d(__webpack_exports__, "count", function() { return count_count; }); -/* concated harmony reexport debounce */__webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; }); -/* concated harmony reexport debounceTime */__webpack_require__.d(__webpack_exports__, "debounceTime", function() { return debounceTime; }); -/* concated harmony reexport defaultIfEmpty */__webpack_require__.d(__webpack_exports__, "defaultIfEmpty", function() { return defaultIfEmpty; }); -/* concated harmony reexport delay */__webpack_require__.d(__webpack_exports__, "delay", function() { return delay_delay; }); -/* concated harmony reexport delayWhen */__webpack_require__.d(__webpack_exports__, "delayWhen", function() { return delayWhen; }); -/* concated harmony reexport dematerialize */__webpack_require__.d(__webpack_exports__, "dematerialize", function() { return dematerialize; }); -/* concated harmony reexport distinct */__webpack_require__.d(__webpack_exports__, "distinct", function() { return distinct; }); -/* concated harmony reexport distinctUntilChanged */__webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return distinctUntilChanged; }); -/* concated harmony reexport distinctUntilKeyChanged */__webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return distinctUntilKeyChanged; }); -/* concated harmony reexport elementAt */__webpack_require__.d(__webpack_exports__, "elementAt", function() { return elementAt; }); -/* concated harmony reexport endWith */__webpack_require__.d(__webpack_exports__, "endWith", function() { return endWith; }); -/* concated harmony reexport every */__webpack_require__.d(__webpack_exports__, "every", function() { return every; }); -/* concated harmony reexport exhaust */__webpack_require__.d(__webpack_exports__, "exhaust", function() { return exhaust; }); -/* concated harmony reexport exhaustMap */__webpack_require__.d(__webpack_exports__, "exhaustMap", function() { return exhaustMap; }); -/* concated harmony reexport expand */__webpack_require__.d(__webpack_exports__, "expand", function() { return expand; }); -/* concated harmony reexport filter */__webpack_require__.d(__webpack_exports__, "filter", function() { return filter; }); -/* concated harmony reexport finalize */__webpack_require__.d(__webpack_exports__, "finalize", function() { return finalize; }); -/* concated harmony reexport find */__webpack_require__.d(__webpack_exports__, "find", function() { return find; }); -/* concated harmony reexport findIndex */__webpack_require__.d(__webpack_exports__, "findIndex", function() { return findIndex; }); -/* concated harmony reexport first */__webpack_require__.d(__webpack_exports__, "first", function() { return first; }); -/* concated harmony reexport groupBy */__webpack_require__.d(__webpack_exports__, "groupBy", function() { return groupBy["b" /* groupBy */]; }); -/* concated harmony reexport ignoreElements */__webpack_require__.d(__webpack_exports__, "ignoreElements", function() { return ignoreElements; }); -/* concated harmony reexport isEmpty */__webpack_require__.d(__webpack_exports__, "isEmpty", function() { return isEmpty; }); -/* concated harmony reexport last */__webpack_require__.d(__webpack_exports__, "last", function() { return last; }); -/* concated harmony reexport map */__webpack_require__.d(__webpack_exports__, "map", function() { return map["a" /* map */]; }); -/* concated harmony reexport mapTo */__webpack_require__.d(__webpack_exports__, "mapTo", function() { return mapTo; }); -/* concated harmony reexport materialize */__webpack_require__.d(__webpack_exports__, "materialize", function() { return materialize; }); -/* concated harmony reexport max */__webpack_require__.d(__webpack_exports__, "max", function() { return max_max; }); -/* concated harmony reexport merge */__webpack_require__.d(__webpack_exports__, "merge", function() { return merge_merge; }); -/* concated harmony reexport mergeAll */__webpack_require__.d(__webpack_exports__, "mergeAll", function() { return mergeAll["a" /* mergeAll */]; }); -/* concated harmony reexport mergeMap */__webpack_require__.d(__webpack_exports__, "mergeMap", function() { return mergeMap["a" /* mergeMap */]; }); -/* concated harmony reexport flatMap */__webpack_require__.d(__webpack_exports__, "flatMap", function() { return mergeMap["a" /* mergeMap */]; }); -/* concated harmony reexport mergeMapTo */__webpack_require__.d(__webpack_exports__, "mergeMapTo", function() { return mergeMapTo; }); -/* concated harmony reexport mergeScan */__webpack_require__.d(__webpack_exports__, "mergeScan", function() { return mergeScan; }); -/* concated harmony reexport min */__webpack_require__.d(__webpack_exports__, "min", function() { return min_min; }); -/* concated harmony reexport multicast */__webpack_require__.d(__webpack_exports__, "multicast", function() { return multicast; }); -/* concated harmony reexport observeOn */__webpack_require__.d(__webpack_exports__, "observeOn", function() { return observeOn["b" /* observeOn */]; }); -/* concated harmony reexport onErrorResumeNext */__webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return onErrorResumeNext; }); -/* concated harmony reexport pairwise */__webpack_require__.d(__webpack_exports__, "pairwise", function() { return pairwise; }); -/* concated harmony reexport partition */__webpack_require__.d(__webpack_exports__, "partition", function() { return partition; }); -/* concated harmony reexport pluck */__webpack_require__.d(__webpack_exports__, "pluck", function() { return pluck; }); -/* concated harmony reexport publish */__webpack_require__.d(__webpack_exports__, "publish", function() { return publish; }); -/* concated harmony reexport publishBehavior */__webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return publishBehavior; }); -/* concated harmony reexport publishLast */__webpack_require__.d(__webpack_exports__, "publishLast", function() { return publishLast; }); -/* concated harmony reexport publishReplay */__webpack_require__.d(__webpack_exports__, "publishReplay", function() { return publishReplay; }); -/* concated harmony reexport race */__webpack_require__.d(__webpack_exports__, "race", function() { return race_race; }); -/* concated harmony reexport reduce */__webpack_require__.d(__webpack_exports__, "reduce", function() { return reduce; }); -/* concated harmony reexport repeat */__webpack_require__.d(__webpack_exports__, "repeat", function() { return repeat; }); -/* concated harmony reexport repeatWhen */__webpack_require__.d(__webpack_exports__, "repeatWhen", function() { return repeatWhen; }); -/* concated harmony reexport retry */__webpack_require__.d(__webpack_exports__, "retry", function() { return retry; }); -/* concated harmony reexport retryWhen */__webpack_require__.d(__webpack_exports__, "retryWhen", function() { return retryWhen; }); -/* concated harmony reexport refCount */__webpack_require__.d(__webpack_exports__, "refCount", function() { return operators_refCount["a" /* refCount */]; }); -/* concated harmony reexport sample */__webpack_require__.d(__webpack_exports__, "sample", function() { return sample; }); -/* concated harmony reexport sampleTime */__webpack_require__.d(__webpack_exports__, "sampleTime", function() { return sampleTime; }); -/* concated harmony reexport scan */__webpack_require__.d(__webpack_exports__, "scan", function() { return scan; }); -/* concated harmony reexport sequenceEqual */__webpack_require__.d(__webpack_exports__, "sequenceEqual", function() { return sequenceEqual; }); -/* concated harmony reexport share */__webpack_require__.d(__webpack_exports__, "share", function() { return share; }); -/* concated harmony reexport shareReplay */__webpack_require__.d(__webpack_exports__, "shareReplay", function() { return shareReplay; }); -/* concated harmony reexport single */__webpack_require__.d(__webpack_exports__, "single", function() { return single; }); -/* concated harmony reexport skip */__webpack_require__.d(__webpack_exports__, "skip", function() { return skip; }); -/* concated harmony reexport skipLast */__webpack_require__.d(__webpack_exports__, "skipLast", function() { return skipLast; }); -/* concated harmony reexport skipUntil */__webpack_require__.d(__webpack_exports__, "skipUntil", function() { return skipUntil; }); -/* concated harmony reexport skipWhile */__webpack_require__.d(__webpack_exports__, "skipWhile", function() { return skipWhile; }); -/* concated harmony reexport startWith */__webpack_require__.d(__webpack_exports__, "startWith", function() { return startWith; }); -/* concated harmony reexport subscribeOn */__webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return subscribeOn; }); -/* concated harmony reexport switchAll */__webpack_require__.d(__webpack_exports__, "switchAll", function() { return switchAll; }); -/* concated harmony reexport switchMap */__webpack_require__.d(__webpack_exports__, "switchMap", function() { return switchMap; }); -/* concated harmony reexport switchMapTo */__webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return switchMapTo; }); -/* concated harmony reexport take */__webpack_require__.d(__webpack_exports__, "take", function() { return take; }); -/* concated harmony reexport takeLast */__webpack_require__.d(__webpack_exports__, "takeLast", function() { return takeLast; }); -/* concated harmony reexport takeUntil */__webpack_require__.d(__webpack_exports__, "takeUntil", function() { return takeUntil; }); -/* concated harmony reexport takeWhile */__webpack_require__.d(__webpack_exports__, "takeWhile", function() { return takeWhile; }); -/* concated harmony reexport tap */__webpack_require__.d(__webpack_exports__, "tap", function() { return tap; }); -/* concated harmony reexport throttle */__webpack_require__.d(__webpack_exports__, "throttle", function() { return throttle; }); -/* concated harmony reexport throttleTime */__webpack_require__.d(__webpack_exports__, "throttleTime", function() { return throttleTime; }); -/* concated harmony reexport throwIfEmpty */__webpack_require__.d(__webpack_exports__, "throwIfEmpty", function() { return throwIfEmpty; }); -/* concated harmony reexport timeInterval */__webpack_require__.d(__webpack_exports__, "timeInterval", function() { return timeInterval; }); -/* concated harmony reexport timeout */__webpack_require__.d(__webpack_exports__, "timeout", function() { return timeout; }); -/* concated harmony reexport timeoutWith */__webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return timeoutWith; }); -/* concated harmony reexport timestamp */__webpack_require__.d(__webpack_exports__, "timestamp", function() { return timestamp; }); -/* concated harmony reexport toArray */__webpack_require__.d(__webpack_exports__, "toArray", function() { return toArray; }); -/* concated harmony reexport window */__webpack_require__.d(__webpack_exports__, "window", function() { return window_window; }); -/* concated harmony reexport windowCount */__webpack_require__.d(__webpack_exports__, "windowCount", function() { return windowCount; }); -/* concated harmony reexport windowTime */__webpack_require__.d(__webpack_exports__, "windowTime", function() { return windowTime_windowTime; }); -/* concated harmony reexport windowToggle */__webpack_require__.d(__webpack_exports__, "windowToggle", function() { return windowToggle; }); -/* concated harmony reexport windowWhen */__webpack_require__.d(__webpack_exports__, "windowWhen", function() { return windowWhen; }); -/* concated harmony reexport withLatestFrom */__webpack_require__.d(__webpack_exports__, "withLatestFrom", function() { return withLatestFrom; }); -/* concated harmony reexport zip */__webpack_require__.d(__webpack_exports__, "zip", function() { return zip_zip; }); -/* concated harmony reexport zipAll */__webpack_require__.d(__webpack_exports__, "zipAll", function() { return zipAll; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ - - - - - - - - +exports.flatten = flatten; +/** + * Returns max number from array. + */ +function max(items) { + return Math.max.apply(null, items); +} +exports.max = max; +/***/ }), +/* 574 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Returns true if the last partial of the path starting with a period. + */ +function isDotDirectory(path) { + var pathPartials = path.split('/'); + var lastPathPartial = pathPartials[pathPartials.length - 1]; + return lastPathPartial.startsWith('.'); +} +exports.isDotDirectory = isDotDirectory; +/***/ }), +/* 575 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var patternUtils = __webpack_require__(383); +var DeepFilter = /** @class */ (function () { + function DeepFilter(options, micromatchOptions) { + this.options = options; + this.micromatchOptions = micromatchOptions; + this.index = new Map(); + } + /** + * Returns filter for directories. + */ + DeepFilter.prototype.getFilter = function (positive, negative) { + var _this = this; + var positiveRe = patternUtils.convertPatternsToRe(positive, this.micromatchOptions); + var negativeRe = patternUtils.convertPatternsToRe(negative, this.micromatchOptions); + return function (entry) { return _this.filter(entry, positiveRe, negativeRe); }; + }; + /** + * Returns true if entry must be added to result. + */ + DeepFilter.prototype.filter = function (entry, positiveRe, negativeRe) { + var entryPath = entry.path; + // Exclude duplicate results + if (this.options.unique) { + if (this.isDuplicateEntry(entry)) { + return false; + } + this.createIndexRecord(entry); + } + // Mark directory by the final slash. Need to micromatch to support «directory/**» patterns + if (entry.isDirectory()) { + entryPath += '/'; + } + // Filter directories that will be excluded by deep filter + if (entry.isDirectory() && patternUtils.matchAny(entryPath, negativeRe)) { + return false; + } + // Filter files and directories by options + if (this.onlyFileFilter(entry) || this.onlyDirectoryFilter(entry)) { + return false; + } + return patternUtils.match(entryPath, positiveRe, negativeRe); + }; + /** + * Return true if the entry already has in the cross reader index. + */ + DeepFilter.prototype.isDuplicateEntry = function (entry) { + return this.index.has(entry.path); + }; + /** + * Create record in the cross reader index. + */ + DeepFilter.prototype.createIndexRecord = function (entry) { + this.index.set(entry.path, undefined); + }; + /** + * Returns true for non-files if the «onlyFiles» option is enabled. + */ + DeepFilter.prototype.onlyFileFilter = function (entry) { + return this.options.onlyFiles && !entry.isFile(); + }; + /** + * Returns true for non-directories if the «onlyDirectories» option is enabled. + */ + DeepFilter.prototype.onlyDirectoryFilter = function (entry) { + return this.options.onlyDirectories && !entry.isDirectory(); + }; + return DeepFilter; +}()); +exports.default = DeepFilter; +/***/ }), +/* 576 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var stream = __webpack_require__(28); +var readdir = __webpack_require__(558); +var reader_1 = __webpack_require__(571); +var TransformStream = /** @class */ (function (_super) { + __extends(TransformStream, _super); + function TransformStream(reader) { + var _this = _super.call(this, { objectMode: true }) || this; + _this.reader = reader; + return _this; + } + TransformStream.prototype._transform = function (entry, _encoding, callback) { + callback(null, this.reader.transform(entry)); + }; + return TransformStream; +}(stream.Transform)); +var ReaderStream = /** @class */ (function (_super) { + __extends(ReaderStream, _super); + function ReaderStream() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns founded paths. + */ + ReaderStream.prototype.api = function (root, options) { + return readdir.readdirStreamStat(root, options); + }; + /** + * Use stream API to read entries for Task. + */ + ReaderStream.prototype.read = function (task) { + var _this = this; + var root = this.getRootDirectory(task); + var options = this.getReaderOptions(task); + var transform = new TransformStream(this); + var readable = this.api(root, options); + return readable + .once('error', function (err) { return _this.isEnoentCodeError(err) ? null : transform.emit('error', err); }) + .pipe(transform); + }; + return ReaderStream; +}(reader_1.default)); +exports.default = ReaderStream; +/***/ }), +/* 577 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var readdir = __webpack_require__(558); +var reader_1 = __webpack_require__(571); +var ReaderSync = /** @class */ (function (_super) { + __extends(ReaderSync, _super); + function ReaderSync() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns founded paths. + */ + ReaderSync.prototype.api = function (root, options) { + return readdir.readdirSyncStat(root, options); + }; + /** + * Use sync API to read entries for Task. + */ + ReaderSync.prototype.read = function (task) { + var root = this.getRootDirectory(task); + var options = this.getReaderOptions(task); + try { + var entries = this.api(root, options); + return entries.map(this.transform, this); + } + catch (err) { + if (this.isEnoentCodeError(err)) { + return []; + } + throw err; + } + }; + return ReaderSync; +}(reader_1.default)); +exports.default = ReaderSync; +/***/ }), +/* 578 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +const path = __webpack_require__(16); +const arrify = __webpack_require__(375); +const pathType = __webpack_require__(63); +const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; +const getPath = filepath => filepath[0] === '!' ? filepath.slice(1) : filepath; +const addExtensions = (file, extensions) => { + if (path.extname(file)) { + return `**/${file}`; + } + return `**/${file}.${getExtensions(extensions)}`; +}; +const getGlob = (dir, opts) => { + opts = Object.assign({}, opts); + if (opts.files && !Array.isArray(opts.files)) { + throw new TypeError(`\`options.files\` must be an \`Array\`, not \`${typeof opts.files}\``); + } + if (opts.extensions && !Array.isArray(opts.extensions)) { + throw new TypeError(`\`options.extensions\` must be an \`Array\`, not \`${typeof opts.extensions}\``); + } + if (opts.files && opts.extensions) { + return opts.files.map(x => path.join(dir, addExtensions(x, opts.extensions))); + } else if (opts.files) { + return opts.files.map(x => path.join(dir, `**/${x}`)); + } else if (opts.extensions) { + return [path.join(dir, `**/*.${getExtensions(opts.extensions)}`)]; + } + return [path.join(dir, '**')]; +}; +module.exports = (input, opts) => { + return Promise.all(arrify(input).map(x => pathType.dir(getPath(x)) + .then(isDir => isDir ? getGlob(x, opts) : x))) + .then(globs => [].concat.apply([], globs)); +}; +module.exports.sync = (input, opts) => { + const globs = arrify(input).map(x => pathType.dirSync(getPath(x)) ? getGlob(x, opts) : x); + return [].concat.apply([], globs); +}; +/***/ }), +/* 579 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +const fs = __webpack_require__(23); +const path = __webpack_require__(16); +const fastGlob = __webpack_require__(377); +const gitIgnore = __webpack_require__(580); +const pify = __webpack_require__(581); +const slash = __webpack_require__(582); +const DEFAULT_IGNORE = [ + '**/node_modules/**', + '**/bower_components/**', + '**/flow-typed/**', + '**/coverage/**', + '**/.git' +]; +const readFileP = pify(fs.readFile); +const mapGitIgnorePatternTo = base => ignore => { + if (ignore.startsWith('!')) { + return '!' + path.posix.join(base, ignore.substr(1)); + } + return path.posix.join(base, ignore); +}; +const parseGitIgnore = (content, opts) => { + const base = slash(path.relative(opts.cwd, path.dirname(opts.fileName))); + return content + .split(/\r?\n/) + .filter(Boolean) + .filter(l => l.charAt(0) !== '#') + .map(mapGitIgnorePatternTo(base)); +}; +const reduceIgnore = files => { + return files.reduce((ignores, file) => { + ignores.add(parseGitIgnore(file.content, { + cwd: file.cwd, + fileName: file.filePath + })); + return ignores; + }, gitIgnore()); +}; +const getIsIgnoredPredecate = (ignores, cwd) => { + return p => ignores.ignores(slash(path.relative(cwd, p))); +}; +const getFile = (file, cwd) => { + const filePath = path.join(cwd, file); + return readFileP(filePath, 'utf8') + .then(content => ({ + content, + cwd, + filePath + })); +}; +const getFileSync = (file, cwd) => { + const filePath = path.join(cwd, file); + const content = fs.readFileSync(filePath, 'utf8'); + return { + content, + cwd, + filePath + }; +}; +const normalizeOpts = opts => { + opts = opts || {}; + const ignore = opts.ignore || []; + const cwd = opts.cwd || process.cwd(); + return {ignore, cwd}; +}; +module.exports = o => { + const opts = normalizeOpts(o); + return fastGlob('**/.gitignore', {ignore: DEFAULT_IGNORE.concat(opts.ignore), cwd: opts.cwd}) + .then(paths => Promise.all(paths.map(file => getFile(file, opts.cwd)))) + .then(files => reduceIgnore(files)) + .then(ignores => getIsIgnoredPredecate(ignores, opts.cwd)); +}; +module.exports.sync = o => { + const opts = normalizeOpts(o); + const paths = fastGlob.sync('**/.gitignore', {ignore: DEFAULT_IGNORE.concat(opts.ignore), cwd: opts.cwd}); + const files = paths.map(file => getFileSync(file, opts.cwd)); + const ignores = reduceIgnore(files); + return getIsIgnoredPredecate(ignores, opts.cwd); +}; +/***/ }), +/* 580 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +module.exports = function () { + return new IgnoreBase(); +}; +// A simple implementation of make-array +function make_array(subject) { + return Array.isArray(subject) ? subject : [subject]; +} +var REGEX_BLANK_LINE = /^\s+$/; +var REGEX_LEADING_EXCAPED_EXCLAMATION = /^\\\!/; +var REGEX_LEADING_EXCAPED_HASH = /^\\#/; +var SLASH = '/'; +var KEY_IGNORE = typeof Symbol !== 'undefined' ? Symbol.for('node-ignore') +/* istanbul ignore next */ +: 'node-ignore'; +var IgnoreBase = function () { + function IgnoreBase() { + _classCallCheck(this, IgnoreBase); + this._rules = []; + this[KEY_IGNORE] = true; + this._initCache(); + } + _createClass(IgnoreBase, [{ + key: '_initCache', + value: function _initCache() { + this._cache = {}; + } + // @param {Array.|string|Ignore} pattern + }, { + key: 'add', + value: function add(pattern) { + this._added = false; + if (typeof pattern === 'string') { + pattern = pattern.split(/\r?\n/g); + } + make_array(pattern).forEach(this._addPattern, this); + // Some rules have just added to the ignore, + // making the behavior changed. + if (this._added) { + this._initCache(); + } + return this; + } + // legacy + }, { + key: 'addPattern', + value: function addPattern(pattern) { + return this.add(pattern); + } + }, { + key: '_addPattern', + value: function _addPattern(pattern) { + // #32 + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules); + this._added = true; + return; + } + if (this._checkPattern(pattern)) { + var rule = this._createRule(pattern); + this._added = true; + this._rules.push(rule); + } + } + }, { + key: '_checkPattern', + value: function _checkPattern(pattern) { + // > A blank line matches no files, so it can serve as a separator for readability. + return pattern && typeof pattern === 'string' && !REGEX_BLANK_LINE.test(pattern) + // > A line starting with # serves as a comment. + && pattern.indexOf('#') !== 0; + } + }, { + key: 'filter', + value: function filter(paths) { + var _this = this; + return make_array(paths).filter(function (path) { + return _this._filter(path); + }); + } + }, { + key: 'createFilter', + value: function createFilter() { + var _this2 = this; + return function (path) { + return _this2._filter(path); + }; + } + }, { + key: 'ignores', + value: function ignores(path) { + return !this._filter(path); + } + }, { + key: '_createRule', + value: function _createRule(pattern) { + var origin = pattern; + var negative = false; + // > An optional prefix "!" which negates the pattern; + if (pattern.indexOf('!') === 0) { + negative = true; + pattern = pattern.substr(1); + } + pattern = pattern + // > Put a backslash ("\") in front of the first "!" for patterns that begin with a literal "!", for example, `"\!important!.txt"`. + .replace(REGEX_LEADING_EXCAPED_EXCLAMATION, '!') + // > Put a backslash ("\") in front of the first hash for patterns that begin with a hash. + .replace(REGEX_LEADING_EXCAPED_HASH, '#'); + var regex = make_regex(pattern, negative); + return { + origin: origin, + pattern: pattern, + negative: negative, + regex: regex + }; + } + // @returns `Boolean` true if the `path` is NOT ignored + }, { + key: '_filter', + value: function _filter(path, slices) { + if (!path) { + return false; + } + if (path in this._cache) { + return this._cache[path]; + } + if (!slices) { + // path/to/a.js + // ['path', 'to', 'a.js'] + slices = path.split(SLASH); + } + slices.pop(); + return this._cache[path] = slices.length + // > It is not possible to re-include a file if a parent directory of that file is excluded. + // If the path contains a parent directory, check the parent first + ? this._filter(slices.join(SLASH) + SLASH, slices) && this._test(path) + // Or only test the path + : this._test(path); + } + // @returns {Boolean} true if a file is NOT ignored + }, { + key: '_test', + value: function _test(path) { + // Explicitly define variable type by setting matched to `0` + var matched = 0; + this._rules.forEach(function (rule) { + // if matched = true, then we only test negative rules + // if matched = false, then we test non-negative rules + if (!(matched ^ rule.negative)) { + matched = rule.negative ^ rule.regex.test(path); + } + }); + return !matched; + } + }]); + return IgnoreBase; +}(); +// > If the pattern ends with a slash, +// > it is removed for the purpose of the following description, +// > but it would only find a match with a directory. +// > In other words, foo/ will match a directory foo and paths underneath it, +// > but will not match a regular file or a symbolic link foo +// > (this is consistent with the way how pathspec works in general in Git). +// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' +// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call +// you could use option `mark: true` with `glob` +// '`foo/`' should not continue with the '`..`' +var DEFAULT_REPLACER_PREFIX = [ +// > Trailing spaces are ignored unless they are quoted with backslash ("\") +[ +// (a\ ) -> (a ) +// (a ) -> (a) +// (a \ ) -> (a ) +/\\?\s+$/, function (match) { + return match.indexOf('\\') === 0 ? ' ' : ''; +}], -//# sourceMappingURL=index.js.map +// replace (\ ) with ' ' +[/\\\s/g, function () { + return ' '; +}], +// Escape metacharacters +// which is written down by users but means special for regular expressions. -/***/ }), -/* 462 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +// > There are 12 characters with special meanings: +// > - the backslash \, +// > - the caret ^, +// > - the dollar sign $, +// > - the period or dot ., +// > - the vertical bar or pipe symbol |, +// > - the question mark ?, +// > - the asterisk or star *, +// > - the plus sign +, +// > - the opening parenthesis (, +// > - the closing parenthesis ), +// > - and the opening square bracket [, +// > - the opening curly brace {, +// > These special characters are often called "metacharacters". +[/[\\\^$.|?*+()\[{]/g, function (match) { + return '\\' + match; +}], -"use strict"; -__webpack_require__.r(__webpack_exports__); +// leading slash +[ -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Observable.js + 1 modules -var Observable = __webpack_require__(2); +// > A leading slash matches the beginning of the pathname. +// > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". +// A leading slash matches the beginning of the pathname +/^\//, function () { + return '^'; +}], -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js -var ConnectableObservable = __webpack_require__(80); +// replace special metacharacter slash after the leading slash +[/\//g, function () { + return '\\/'; +}], [ +// > A leading "**" followed by a slash means match in all directories. +// > For example, "**/foo" matches file or directory "foo" anywhere, +// > the same as pattern "foo". +// > "**/foo/bar" matches file or directory "bar" anywhere that is directly under directory "foo". +// Notice that the '*'s have been replaced as '\\*' +/^\^*\\\*\\\*\\\//, -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/groupBy.js -var groupBy = __webpack_require__(73); +// '**/foo' <-> 'foo' +function () { + return '^(?:.*\\/)?'; +}]]; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/symbol/observable.js -var observable = __webpack_require__(27); +var DEFAULT_REPLACER_SUFFIX = [ +// starting +[ +// there will be no leading '/' (which has been replaced by section "leading slash") +// If starts with '**', adding a '^' to the regular expression also works +/^(?=[^\^])/, function () { + return !/\/(?!$)/.test(this) + // > If the pattern does not contain a slash /, Git treats it as a shell glob pattern + // Actually, if there is only a trailing slash, git also treats it as a shell glob pattern + ? '(?:^|\\/)' -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Subject.js -var Subject = __webpack_require__(8); + // > Otherwise, Git treats the pattern as a shell glob suitable for consumption by fnmatch(3) + : '^'; +}], -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/BehaviorSubject.js -var BehaviorSubject = __webpack_require__(81); +// two globstars +[ +// Use lookahead assertions so that we could match more than one `'/**'` +/\\\/\\\*\\\*(?=\\\/|$)/g, -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/ReplaySubject.js -var ReplaySubject = __webpack_require__(51); +// Zero, one or several directories +// should not use '*', or it will be replaced by the next replacer -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/AsyncSubject.js -var AsyncSubject = __webpack_require__(36); +// Check if it is not the last `'/**'` +function (match, index, str) { + return index + 6 < str.length -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/asap.js + 3 modules -var asap = __webpack_require__(59); + // case: /**/ + // > A slash followed by two consecutive asterisks then a slash matches zero or more directories. + // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. + // '/**/' + ? '(?:\\/[^\\/]+)*' -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/async.js -var scheduler_async = __webpack_require__(10); + // case: /** + // > A trailing `"/**"` matches everything inside. -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/queue.js + 2 modules -var queue = __webpack_require__(88); + // #21: everything inside but it should not include the current folder + : '\\/.+'; +}], -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/tslib/tslib.es6.js -var tslib_es6 = __webpack_require__(0); +// intermediate wildcards +[ +// Never replace escaped '*' +// ignore rule '\*' will match the path '*' -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js + 1 modules -var AsyncAction = __webpack_require__(37); +// 'abc.*/' -> go +// 'abc.*' -> skip this rule +/(^|[^\\]+)\\\*(?=.+)/g, -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js -/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */ +// '*.js' matches '.js' +// '*.js' doesn't match 'abc' +function (match, p1) { + return p1 + '[^\\/]*'; +}], +// trailing wildcard +[/(\^|\\\/)?\\\*$/, function (match, p1) { + return (p1 + // '\^': + // '/*' does not match '' + // '/*' does not match everything -var AnimationFrameAction_AnimationFrameAction = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](AnimationFrameAction, _super); - function AnimationFrameAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - return _this; - } - AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - if (delay !== null && delay > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); - } - scheduler.actions.push(this); - return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); })); - }; - AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { - return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); - } - if (scheduler.actions.length === 0) { - cancelAnimationFrame(id); - scheduler.scheduled = undefined; - } - return undefined; - }; - return AnimationFrameAction; -}(AsyncAction["a" /* AsyncAction */])); + // '\\\/': + // 'abc/*' does not match 'abc/' + ? p1 + '[^/]+' -//# sourceMappingURL=AnimationFrameAction.js.map + // 'a*' matches 'a' + // 'a*' matches 'aa' + : '[^/]*') + '(?=$|\\/$)'; +}], [ +// unescape +/\\\\\\/g, function () { + return '\\'; +}]]; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js -var AsyncScheduler = __webpack_require__(35); +var POSITIVE_REPLACERS = [].concat(DEFAULT_REPLACER_PREFIX, [ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js -/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ +// 'f' +// matches +// - /f(end) +// - /f/ +// - (start)f(end) +// - (start)f/ +// doesn't match +// - oof +// - foo +// pseudo: +// -> (^|/)f(/|$) +// ending +[ +// 'js' will not match 'js.' +// 'ab' will not match 'abc' +/(?:[^*\/])$/, -var AnimationFrameScheduler_AnimationFrameScheduler = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](AnimationFrameScheduler, _super); - function AnimationFrameScheduler() { - return _super !== null && _super.apply(this, arguments) || this; - } - AnimationFrameScheduler.prototype.flush = function (action) { - this.active = true; - this.scheduled = undefined; - var actions = this.actions; - var error; - var index = -1; - var count = actions.length; - action = action || actions.shift(); - do { - if (error = action.execute(action.state, action.delay)) { - break; - } - } while (++index < count && (action = actions.shift())); - this.active = false; - if (error) { - while (++index < count && (action = actions.shift())) { - action.unsubscribe(); - } - throw error; - } - }; - return AnimationFrameScheduler; -}(AsyncScheduler["a" /* AsyncScheduler */])); +// 'js*' will not match 'a.js' +// 'js/' will not match 'a.js' +// 'js' will match 'a.js' and 'a.js/' +function (match) { + return match + '(?=$|\\/)'; +}]], DEFAULT_REPLACER_SUFFIX); -//# sourceMappingURL=AnimationFrameScheduler.js.map +var NEGATIVE_REPLACERS = [].concat(DEFAULT_REPLACER_PREFIX, [ -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js -/** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */ +// #24, #38 +// The MISSING rule of [gitignore docs](https://git-scm.com/docs/gitignore) +// A negative pattern without a trailing wildcard should not +// re-include the things inside that directory. +// eg: +// ['node_modules/*', '!node_modules'] +// should ignore `node_modules/a.js` +[/(?:[^*])$/, function (match) { + return match + '(?=$|\\/$)'; +}]], DEFAULT_REPLACER_SUFFIX); -var animationFrame = /*@__PURE__*/ new AnimationFrameScheduler_AnimationFrameScheduler(AnimationFrameAction_AnimationFrameAction); -//# sourceMappingURL=animationFrame.js.map +// A simple cache, because an ignore rule only has only one certain meaning +var cache = {}; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js -/** PURE_IMPORTS_START tslib,_AsyncAction,_AsyncScheduler PURE_IMPORTS_END */ +// @param {pattern} +function make_regex(pattern, negative) { + var r = cache[pattern]; + if (r) { + return r; + } + var replacers = negative ? NEGATIVE_REPLACERS : POSITIVE_REPLACERS; + var source = replacers.reduce(function (prev, current) { + return prev.replace(current[0], current[1].bind(pattern)); + }, pattern); -var VirtualTimeScheduler_VirtualTimeScheduler = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](VirtualTimeScheduler, _super); - function VirtualTimeScheduler(SchedulerAction, maxFrames) { - if (SchedulerAction === void 0) { - SchedulerAction = VirtualTimeScheduler_VirtualAction; - } - if (maxFrames === void 0) { - maxFrames = Number.POSITIVE_INFINITY; - } - var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this; - _this.maxFrames = maxFrames; - _this.frame = 0; - _this.index = -1; - return _this; - } - VirtualTimeScheduler.prototype.flush = function () { - var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; - var error, action; - while ((action = actions.shift()) && (this.frame = action.delay) <= maxFrames) { - if (error = action.execute(action.state, action.delay)) { - break; - } - } - if (error) { - while (action = actions.shift()) { - action.unsubscribe(); - } - throw error; - } - }; - VirtualTimeScheduler.frameTimeFactor = 10; - return VirtualTimeScheduler; -}(AsyncScheduler["a" /* AsyncScheduler */])); + return cache[pattern] = new RegExp(source, 'i'); +} -var VirtualTimeScheduler_VirtualAction = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](VirtualAction, _super); - function VirtualAction(scheduler, work, index) { - if (index === void 0) { - index = scheduler.index += 1; - } - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - _this.index = index; - _this.active = true; - _this.index = scheduler.index = index; - return _this; - } - VirtualAction.prototype.schedule = function (state, delay) { - if (delay === void 0) { - delay = 0; - } - if (!this.id) { - return _super.prototype.schedule.call(this, state, delay); - } - this.active = false; - var action = new VirtualAction(this.scheduler, this.work); - this.add(action); - return action.schedule(state, delay); - }; - VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - this.delay = scheduler.frame + delay; - var actions = scheduler.actions; - actions.push(this); - actions.sort(VirtualAction.sortActions); - return true; - }; - VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - return undefined; - }; - VirtualAction.prototype._execute = function (state, delay) { - if (this.active === true) { - return _super.prototype._execute.call(this, state, delay); - } - }; - VirtualAction.sortActions = function (a, b) { - if (a.delay === b.delay) { - if (a.index === b.index) { - return 0; - } - else if (a.index > b.index) { - return 1; - } - else { - return -1; - } - } - else if (a.delay > b.delay) { - return 1; - } - else { - return -1; - } - }; - return VirtualAction; -}(AsyncAction["a" /* AsyncAction */])); +// Windows +// -------------------------------------------------------------- +/* istanbul ignore if */ +if ( +// Detect `process` so that it can run in browsers. +typeof process !== 'undefined' && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === 'win32')) { -//# sourceMappingURL=VirtualTimeScheduler.js.map + var filter = IgnoreBase.prototype._filter; + var make_posix = function make_posix(str) { + return (/^\\\\\?\\/.test(str) || /[^\x00-\x80]+/.test(str) ? str : str.replace(/\\/g, '/') + ); + }; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Scheduler.js -var Scheduler = __webpack_require__(69); + IgnoreBase.prototype._filter = function (path, slices) { + path = make_posix(path); + return filter.call(this, path, slices); + }; +} -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Subscription.js -var Subscription = __webpack_require__(6); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Subscriber.js -var Subscriber = __webpack_require__(1); +/***/ }), +/* 581 */ +/***/ (function(module, exports, __webpack_require__) { -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/Notification.js -var Notification = __webpack_require__(24); +"use strict"; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/pipe.js -var pipe = __webpack_require__(45); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/noop.js -var noop = __webpack_require__(21); +const processFn = (fn, opts) => function () { + const P = opts.promiseModule; + const args = new Array(arguments.length); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/identity.js -var identity = __webpack_require__(23); + for (let i = 0; i < arguments.length; i++) { + args[i] = arguments[i]; + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isObservable.js -/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ + return new P((resolve, reject) => { + if (opts.errorFirst) { + args.push(function (err, result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); -function isObservable(obj) { - return !!obj && (obj instanceof Observable["a" /* Observable */] || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function')); -} -//# sourceMappingURL=isObservable.js.map + for (let i = 1; i < arguments.length; i++) { + results[i - 1] = arguments[i]; + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js -var ArgumentOutOfRangeError = __webpack_require__(32); + if (err) { + results.unshift(err); + reject(results); + } else { + resolve(results); + } + } else if (err) { + reject(err); + } else { + resolve(result); + } + }); + } else { + args.push(function (result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/EmptyError.js -var EmptyError = __webpack_require__(34); + for (let i = 0; i < arguments.length; i++) { + results[i] = arguments[i]; + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js -var ObjectUnsubscribedError = __webpack_require__(28); + resolve(results); + } else { + resolve(result); + } + }); + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js -var UnsubscriptionError = __webpack_require__(46); + fn.apply(this, args); + }); +}; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/TimeoutError.js -var TimeoutError = __webpack_require__(83); +module.exports = (obj, opts) => { + opts = Object.assign({ + exclude: [/.+(Sync|Stream)$/], + errorFirst: true, + promiseModule: Promise + }, opts); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/operators/map.js -var map = __webpack_require__(15); + const filter = key => { + const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); + return opts.include ? opts.include.some(match) : !opts.exclude.some(match); + }; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isArray.js -var isArray = __webpack_require__(11); + let ret; + if (typeof obj === 'function') { + ret = function () { + if (opts.excludeMain) { + return obj.apply(this, arguments); + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isScheduler.js -var isScheduler = __webpack_require__(12); + return processFn(obj, opts).apply(this, arguments); + }; + } else { + ret = Object.create(Object.getPrototypeOf(obj)); + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/bindCallback.js -/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_isArray,_util_isScheduler PURE_IMPORTS_END */ + for (const key in obj) { // eslint-disable-line guard-for-in + const x = obj[key]; + ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; + } + return ret; +}; +/***/ }), +/* 582 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; -function bindCallback(callbackFunc, resultSelector, scheduler) { - if (resultSelector) { - if (Object(isScheduler["a" /* isScheduler */])(resultSelector)) { - scheduler = resultSelector; - } - else { - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(map["a" /* map */])(function (args) { return Object(isArray["a" /* isArray */])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); - }; - } - } - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var context = this; - var subject; - var params = { - context: context, - subject: subject, - callbackFunc: callbackFunc, - scheduler: scheduler, - }; - return new Observable["a" /* Observable */](function (subscriber) { - if (!scheduler) { - if (!subject) { - subject = new AsyncSubject["a" /* AsyncSubject */](); - var handler = function () { - var innerArgs = []; - for (var _i = 0; _i < arguments.length; _i++) { - innerArgs[_i] = arguments[_i]; - } - subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); - subject.complete(); - }; - try { - callbackFunc.apply(context, args.concat([handler])); - } - catch (err) { - subject.error(err); - } - } - return subject.subscribe(subscriber); - } - else { - var state = { - args: args, subscriber: subscriber, params: params, - }; - return scheduler.schedule(dispatch, 0, state); - } - }); - }; -} -function dispatch(state) { - var _this = this; - var self = this; - var args = state.args, subscriber = state.subscriber, params = state.params; - var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler; - var subject = params.subject; - if (!subject) { - subject = params.subject = new AsyncSubject["a" /* AsyncSubject */](); - var handler = function () { - var innerArgs = []; - for (var _i = 0; _i < arguments.length; _i++) { - innerArgs[_i] = arguments[_i]; - } - var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; - _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject })); - }; - try { - callbackFunc.apply(context, args.concat([handler])); - } - catch (err) { - subject.error(err); - } - } - this.add(subject.subscribe(subscriber)); -} -function dispatchNext(state) { - var value = state.value, subject = state.subject; - subject.next(value); - subject.complete(); -} -function dispatchError(state) { - var err = state.err, subject = state.subject; - subject.error(err); -} -//# sourceMappingURL=bindCallback.js.map +module.exports = function (str) { + var isExtendedLengthPath = /^\\\\\?\\/.test(str); + var hasNonAscii = /[^\x00-\x80]+/.test(str); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js -/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_isScheduler,_util_isArray PURE_IMPORTS_END */ + if (isExtendedLengthPath || hasNonAscii) { + return str; + } + return str.replace(/\\/g, '/'); +}; +/***/ }), +/* 583 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; -function bindNodeCallback(callbackFunc, resultSelector, scheduler) { - if (resultSelector) { - if (Object(isScheduler["a" /* isScheduler */])(resultSelector)) { - scheduler = resultSelector; - } - else { - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(map["a" /* map */])(function (args) { return Object(isArray["a" /* isArray */])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); - }; - } - } - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var params = { - subject: undefined, - args: args, - callbackFunc: callbackFunc, - scheduler: scheduler, - context: this, - }; - return new Observable["a" /* Observable */](function (subscriber) { - var context = params.context; - var subject = params.subject; - if (!scheduler) { - if (!subject) { - subject = params.subject = new AsyncSubject["a" /* AsyncSubject */](); - var handler = function () { - var innerArgs = []; - for (var _i = 0; _i < arguments.length; _i++) { - innerArgs[_i] = arguments[_i]; - } - var err = innerArgs.shift(); - if (err) { - subject.error(err); - return; - } - subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); - subject.complete(); - }; - try { - callbackFunc.apply(context, args.concat([handler])); - } - catch (err) { - subject.error(err); - } - } - return subject.subscribe(subscriber); - } - else { - return scheduler.schedule(bindNodeCallback_dispatch, 0, { params: params, subscriber: subscriber, context: context }); - } - }); - }; -} -function bindNodeCallback_dispatch(state) { - var _this = this; - var params = state.params, subscriber = state.subscriber, context = state.context; - var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler; - var subject = params.subject; - if (!subject) { - subject = params.subject = new AsyncSubject["a" /* AsyncSubject */](); - var handler = function () { - var innerArgs = []; - for (var _i = 0; _i < arguments.length; _i++) { - innerArgs[_i] = arguments[_i]; - } - var err = innerArgs.shift(); - if (err) { - _this.add(scheduler.schedule(bindNodeCallback_dispatchError, 0, { err: err, subject: subject })); - } - else { - var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; - _this.add(scheduler.schedule(bindNodeCallback_dispatchNext, 0, { value: value, subject: subject })); - } - }; - try { - callbackFunc.apply(context, args.concat([handler])); - } - catch (err) { - this.add(scheduler.schedule(bindNodeCallback_dispatchError, 0, { err: err, subject: subject })); - } - } - this.add(subject.subscribe(subscriber)); -} -function bindNodeCallback_dispatchNext(arg) { - var value = arg.value, subject = arg.subject; - subject.next(value); - subject.complete(); -} -function bindNodeCallback_dispatchError(arg) { - var err = arg.err, subject = arg.subject; - subject.error(err); -} -//# sourceMappingURL=bindNodeCallback.js.map +const path = __webpack_require__(16); +const fsConstants = __webpack_require__(23).constants; +const {Buffer} = __webpack_require__(584); +const CpFileError = __webpack_require__(586); +const fs = __webpack_require__(588); +const ProgressEmitter = __webpack_require__(590); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/combineLatest.js -var combineLatest = __webpack_require__(54); +module.exports = (src, dest, opts) => { + if (!src || !dest) { + return Promise.reject(new CpFileError('`src` and `dest` required')); + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/concat.js -var concat = __webpack_require__(29); + opts = Object.assign({overwrite: true}, opts); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/defer.js -var defer = __webpack_require__(56); + const progressEmitter = new ProgressEmitter(path.resolve(src), path.resolve(dest)); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/empty.js -var empty = __webpack_require__(9); + const promise = fs + .stat(src) + .then(stat => { + progressEmitter.size = stat.size; + }) + .then(() => fs.createReadStream(src)) + .then(read => fs.makeDir(path.dirname(dest)).then(() => read)) + .then(read => new Promise((resolve, reject) => { + const write = fs.createWriteStream(dest, {flags: opts.overwrite ? 'w' : 'wx'}); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js + 1 modules -var subscribeToResult = __webpack_require__(3); + read.on('data', () => { + progressEmitter.written = write.bytesWritten; + }); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/OuterSubscriber.js -var OuterSubscriber = __webpack_require__(4); + write.on('error', err => { + if (!opts.overwrite && err.code === 'EEXIST') { + resolve(false); + return; + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/forkJoin.js -/** PURE_IMPORTS_START tslib,_Observable,_util_isArray,_empty,_util_subscribeToResult,_OuterSubscriber,_operators_map PURE_IMPORTS_END */ + reject(new CpFileError(`Cannot write to \`${dest}\`: ${err.message}`, err)); + }); + write.on('close', () => { + progressEmitter.written = progressEmitter.size; + resolve(true); + }); + read.pipe(write); + })) + .then(updateStats => { + if (updateStats) { + return fs.lstat(src).then(stats => Promise.all([ + fs.utimes(dest, stats.atime, stats.mtime), + fs.chmod(dest, stats.mode), + fs.chown(dest, stats.uid, stats.gid) + ])); + } + }); + promise.on = (...args) => { + progressEmitter.on(...args); + return promise; + }; + return promise; +}; +const checkSrcIsFile = (stat, src) => { + if (stat.isDirectory()) { + throw Object.assign(new CpFileError(`EISDIR: illegal operation on a directory '${src}'`), { + errno: -21, + code: 'EISDIR', + src + }); + } +}; +const fixupAttributes = (dest, stat) => { + fs.chmodSync(dest, stat.mode); + fs.chownSync(dest, stat.uid, stat.gid); +}; -function forkJoin() { - var sources = []; - for (var _i = 0; _i < arguments.length; _i++) { - sources[_i] = arguments[_i]; - } - var resultSelector; - if (typeof sources[sources.length - 1] === 'function') { - resultSelector = sources.pop(); - } - if (sources.length === 1 && Object(isArray["a" /* isArray */])(sources[0])) { - sources = sources[0]; - } - if (sources.length === 0) { - return empty["a" /* EMPTY */]; - } - if (resultSelector) { - return forkJoin(sources).pipe(Object(map["a" /* map */])(function (args) { return resultSelector.apply(void 0, args); })); - } - return new Observable["a" /* Observable */](function (subscriber) { - return new forkJoin_ForkJoinSubscriber(subscriber, sources); - }); -} -var forkJoin_ForkJoinSubscriber = /*@__PURE__*/ (function (_super) { - tslib_es6["a" /* __extends */](ForkJoinSubscriber, _super); - function ForkJoinSubscriber(destination, sources) { - var _this = _super.call(this, destination) || this; - _this.sources = sources; - _this.completed = 0; - _this.haveValues = 0; - var len = sources.length; - _this.values = new Array(len); - for (var i = 0; i < len; i++) { - var source = sources[i]; - var innerSubscription = Object(subscribeToResult["a" /* subscribeToResult */])(_this, source, null, i); - if (innerSubscription) { - _this.add(innerSubscription); - } - } - return _this; - } - ForkJoinSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.values[outerIndex] = innerValue; - if (!innerSub._hasValue) { - innerSub._hasValue = true; - this.haveValues++; - } - }; - ForkJoinSubscriber.prototype.notifyComplete = function (innerSub) { - var _a = this, destination = _a.destination, haveValues = _a.haveValues, values = _a.values; - var len = values.length; - if (!innerSub._hasValue) { - destination.complete(); - return; - } - this.completed++; - if (this.completed !== len) { - return; - } - if (haveValues === len) { - destination.next(values); - } - destination.complete(); - }; - return ForkJoinSubscriber; -}(OuterSubscriber["a" /* OuterSubscriber */])); -//# sourceMappingURL=forkJoin.js.map +const copySyncNative = (src, dest, opts) => { + const stat = fs.statSync(src); + checkSrcIsFile(stat, src); + fs.makeDirSync(path.dirname(dest)); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/from.js + 5 modules -var from = __webpack_require__(17); + const flags = opts.overwrite ? null : fsConstants.COPYFILE_EXCL; + try { + fs.copyFileSync(src, dest, flags); + } catch (err) { + if (!opts.overwrite && err.code === 'EEXIST') { + return; + } -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isFunction.js -var isFunction = __webpack_require__(33); + throw err; + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/fromEvent.js -/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ + fs.utimesSync(dest, stat.atime, stat.mtime); + fixupAttributes(dest, stat); +}; +const copySyncFallback = (src, dest, opts) => { + let read; // eslint-disable-line prefer-const + let bytesRead; + let pos; + let write; + const BUF_LENGTH = 100 * 1024; + const buf = Buffer.alloc(BUF_LENGTH); + const readSync = pos => fs.readSync(read, buf, 0, BUF_LENGTH, pos, src); + const writeSync = () => fs.writeSync(write, buf, 0, bytesRead, undefined, dest); + read = fs.openSync(src, 'r'); + bytesRead = readSync(0); + pos = bytesRead; + fs.makeDirSync(path.dirname(dest)); + try { + write = fs.openSync(dest, opts.overwrite ? 'w' : 'wx'); + } catch (err) { + if (!opts.overwrite && err.code === 'EEXIST') { + return; + } -var fromEvent_toString = Object.prototype.toString; -function fromEvent(target, eventName, options, resultSelector) { - if (Object(isFunction["a" /* isFunction */])(options)) { - resultSelector = options; - options = undefined; - } - if (resultSelector) { - return fromEvent(target, eventName, options).pipe(Object(map["a" /* map */])(function (args) { return Object(isArray["a" /* isArray */])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); - } - return new Observable["a" /* Observable */](function (subscriber) { - function handler(e) { - if (arguments.length > 1) { - subscriber.next(Array.prototype.slice.call(arguments)); - } - else { - subscriber.next(e); - } - } - setupSubscription(target, eventName, handler, subscriber, options); - }); -} -function setupSubscription(sourceObj, eventName, handler, subscriber, options) { - var unsubscribe; - if (isEventTarget(sourceObj)) { - var source_1 = sourceObj; - sourceObj.addEventListener(eventName, handler, options); - unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); }; - } - else if (isJQueryStyleEventEmitter(sourceObj)) { - var source_2 = sourceObj; - sourceObj.on(eventName, handler); - unsubscribe = function () { return source_2.off(eventName, handler); }; - } - else if (isNodeStyleEventEmitter(sourceObj)) { - var source_3 = sourceObj; - sourceObj.addListener(eventName, handler); - unsubscribe = function () { return source_3.removeListener(eventName, handler); }; - } - else if (sourceObj && sourceObj.length) { - for (var i = 0, len = sourceObj.length; i < len; i++) { - setupSubscription(sourceObj[i], eventName, handler, subscriber, options); - } - } - else { - throw new TypeError('Invalid event target'); - } - subscriber.add(unsubscribe); -} -function isNodeStyleEventEmitter(sourceObj) { - return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function'; -} -function isJQueryStyleEventEmitter(sourceObj) { - return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function'; -} -function isEventTarget(sourceObj) { - return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function'; -} -//# sourceMappingURL=fromEvent.js.map + throw err; + } -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js -/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ + writeSync(); + + while (bytesRead === BUF_LENGTH) { + bytesRead = readSync(pos); + writeSync(); + pos += bytesRead; + } + + const stat = fs.fstatSync(read, src); + fs.futimesSync(write, stat.atime, stat.mtime, dest); + fs.closeSync(read); + fs.closeSync(write); + fixupAttributes(dest, stat); +}; +module.exports.sync = (src, dest, opts) => { + if (!src || !dest) { + throw new CpFileError('`src` and `dest` required'); + } + opts = Object.assign({overwrite: true}, opts); + if (fs.copyFileSync) { + copySyncNative(src, dest, opts); + } else { + copySyncFallback(src, dest, opts); + } +}; -function fromEventPattern(addHandler, removeHandler, resultSelector) { - if (resultSelector) { - return fromEventPattern(addHandler, removeHandler).pipe(Object(map["a" /* map */])(function (args) { return Object(isArray["a" /* isArray */])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); - } - return new Observable["a" /* Observable */](function (subscriber) { - var handler = function () { - var e = []; - for (var _i = 0; _i < arguments.length; _i++) { - e[_i] = arguments[_i]; - } - return subscriber.next(e.length === 1 ? e[0] : e); - }; - var retValue; - try { - retValue = addHandler(handler); - } - catch (err) { - subscriber.error(err); - return undefined; - } - if (!Object(isFunction["a" /* isFunction */])(removeHandler)) { - return undefined; - } - return function () { return removeHandler(handler, retValue); }; - }); + +/***/ }), +/* 584 */ +/***/ (function(module, exports, __webpack_require__) { + +/* eslint-disable node/no-deprecated-api */ +var buffer = __webpack_require__(585) +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer } -//# sourceMappingURL=fromEventPattern.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/generate.js -/** PURE_IMPORTS_START _Observable,_util_identity,_util_isScheduler PURE_IMPORTS_END */ +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} -function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) { - var resultSelector; - var initialState; - if (arguments.length == 1) { - var options = initialStateOrOptions; - initialState = options.initialState; - condition = options.condition; - iterate = options.iterate; - resultSelector = options.resultSelector || identity["a" /* identity */]; - scheduler = options.scheduler; - } - else if (resultSelectorOrObservable === undefined || Object(isScheduler["a" /* isScheduler */])(resultSelectorOrObservable)) { - initialState = initialStateOrOptions; - resultSelector = identity["a" /* identity */]; - scheduler = resultSelectorOrObservable; - } - else { - initialState = initialStateOrOptions; - resultSelector = resultSelectorOrObservable; +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) } - return new Observable["a" /* Observable */](function (subscriber) { - var state = initialState; - if (scheduler) { - return scheduler.schedule(generate_dispatch, 0, { - subscriber: subscriber, - iterate: iterate, - condition: condition, - resultSelector: resultSelector, - state: state - }); - } - do { - if (condition) { - var conditionResult = void 0; - try { - conditionResult = condition(state); - } - catch (err) { - subscriber.error(err); - return undefined; - } - if (!conditionResult) { - subscriber.complete(); - break; - } - } - var value = void 0; - try { - value = resultSelector(state); - } - catch (err) { - subscriber.error(err); - return undefined; - } - subscriber.next(value); - if (subscriber.closed) { - break; - } - try { - state = iterate(state); - } - catch (err) { - subscriber.error(err); - return undefined; - } - } while (true); - return undefined; - }); + } else { + buf.fill(0) + } + return buf } -function generate_dispatch(state) { - var subscriber = state.subscriber, condition = state.condition; - if (subscriber.closed) { - return undefined; - } - if (state.needIterate) { - try { - state.state = state.iterate(state.state); - } - catch (err) { - subscriber.error(err); - return undefined; - } - } - else { - state.needIterate = true; - } - if (condition) { - var conditionResult = void 0; - try { - conditionResult = condition(state.state); - } - catch (err) { - subscriber.error(err); - return undefined; - } - if (!conditionResult) { - subscriber.complete(); - return undefined; - } - if (subscriber.closed) { - return undefined; - } - } - var value; - try { - value = state.resultSelector(state.state); - } - catch (err) { - subscriber.error(err); - return undefined; - } - if (subscriber.closed) { - return undefined; - } - subscriber.next(value); - if (subscriber.closed) { - return undefined; - } - return this.schedule(state); + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) } -//# sourceMappingURL=generate.js.map -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/iif.js -/** PURE_IMPORTS_START _defer,_empty PURE_IMPORTS_END */ +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} -function iif(condition, trueResult, falseResult) { - if (trueResult === void 0) { - trueResult = empty["a" /* EMPTY */]; - } - if (falseResult === void 0) { - falseResult = empty["a" /* EMPTY */]; - } - return Object(defer["a" /* defer */])(function () { return condition() ? trueResult : falseResult; }); +/***/ }), +/* 585 */ +/***/ (function(module, exports) { + +module.exports = require("buffer"); + +/***/ }), +/* 586 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const NestedError = __webpack_require__(587); + +class CpFileError extends NestedError { + constructor(message, nested) { + super(message, nested); + Object.assign(this, nested); + this.name = 'CpFileError'; + } } -//# sourceMappingURL=iif.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/util/isNumeric.js -var isNumeric = __webpack_require__(38); +module.exports = CpFileError; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/interval.js -/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric PURE_IMPORTS_END */ +/***/ }), +/* 587 */ +/***/ (function(module, exports, __webpack_require__) { +var inherits = __webpack_require__(43); -function interval(period, scheduler) { - if (period === void 0) { - period = 0; - } - if (scheduler === void 0) { - scheduler = scheduler_async["a" /* async */]; - } - if (!Object(isNumeric["a" /* isNumeric */])(period) || period < 0) { - period = 0; +var NestedError = function (message, nested) { + this.nested = nested; + + if (typeof message !== 'undefined') { + Object.defineProperty(this, 'message', { + value: message, + writable: true, + enumerable: false, + configurable: true + }); } - if (!scheduler || typeof scheduler.schedule !== 'function') { - scheduler = scheduler_async["a" /* async */]; + + Error.captureStackTrace(this, this.constructor); + var oldStackDescriptor = Object.getOwnPropertyDescriptor(this, 'stack'); + var stackDescriptor = buildStackDescriptor(oldStackDescriptor, nested); + Object.defineProperty(this, 'stack', stackDescriptor); +}; + +function buildStackDescriptor(oldStackDescriptor, nested) { + if (oldStackDescriptor.get) { + return { + get: function () { + var stack = oldStackDescriptor.get.call(this); + return buildCombinedStacks(stack, this.nested); + } + }; + } else { + var stack = oldStackDescriptor.value; + return { + value: buildCombinedStacks(stack, nested) + }; } - return new Observable["a" /* Observable */](function (subscriber) { - subscriber.add(scheduler.schedule(interval_dispatch, period, { subscriber: subscriber, counter: 0, period: period })); - return subscriber; - }); } -function interval_dispatch(state) { - var subscriber = state.subscriber, counter = state.counter, period = state.period; - subscriber.next(counter); - this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period); + +function buildCombinedStacks(stack, nested) { + if (nested) { + stack += '\nCaused By: ' + nested.stack; + } + return stack; } -//# sourceMappingURL=interval.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/merge.js -var merge = __webpack_require__(85); +inherits(NestedError, Error); +NestedError.prototype.name = 'NestedError'; -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/never.js -/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */ +module.exports = NestedError; -var NEVER = /*@__PURE__*/ new Observable["a" /* Observable */](noop["a" /* noop */]); -function never() { - return NEVER; -} -//# sourceMappingURL=never.js.map -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/of.js -var of = __webpack_require__(52); +/***/ }), +/* 588 */ +/***/ (function(module, exports, __webpack_require__) { -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js -/** PURE_IMPORTS_START _Observable,_from,_util_isArray,_empty PURE_IMPORTS_END */ +"use strict"; +const fs = __webpack_require__(22); +const makeDir = __webpack_require__(91); +const pify = __webpack_require__(589); +const CpFileError = __webpack_require__(586); +const fsP = pify(fs); +exports.closeSync = fs.closeSync.bind(fs); +exports.createWriteStream = fs.createWriteStream.bind(fs); -function onErrorResumeNext() { - var sources = []; - for (var _i = 0; _i < arguments.length; _i++) { - sources[_i] = arguments[_i]; - } - if (sources.length === 0) { - return empty["a" /* EMPTY */]; - } - var first = sources[0], remainder = sources.slice(1); - if (sources.length === 1 && Object(isArray["a" /* isArray */])(first)) { - return onErrorResumeNext.apply(void 0, first); - } - return new Observable["a" /* Observable */](function (subscriber) { - var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); }; - return Object(from["a" /* from */])(first).subscribe({ - next: function (value) { subscriber.next(value); }, - error: subNext, - complete: subNext, - }); - }); -} -//# sourceMappingURL=onErrorResumeNext.js.map +exports.createReadStream = (path, options) => new Promise((resolve, reject) => { + const read = fs.createReadStream(path, options); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/pairs.js -/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ + read.once('error', err => { + reject(new CpFileError(`Cannot read from \`${path}\`: ${err.message}`, err)); + }); + read.once('readable', () => { + resolve(read); + }); -function pairs(obj, scheduler) { - if (!scheduler) { - return new Observable["a" /* Observable */](function (subscriber) { - var keys = Object.keys(obj); - for (var i = 0; i < keys.length && !subscriber.closed; i++) { - var key = keys[i]; - if (obj.hasOwnProperty(key)) { - subscriber.next([key, obj[key]]); - } - } - subscriber.complete(); - }); - } - else { - return new Observable["a" /* Observable */](function (subscriber) { - var keys = Object.keys(obj); - var subscription = new Subscription["a" /* Subscription */](); - subscription.add(scheduler.schedule(pairs_dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj })); - return subscription; - }); - } -} -function pairs_dispatch(state) { - var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj; - if (!subscriber.closed) { - if (index < keys.length) { - var key = keys[index]; - subscriber.next([key, obj[key]]); - subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj })); - } - else { - subscriber.complete(); - } - } -} -//# sourceMappingURL=pairs.js.map + read.once('end', () => { + resolve(read); + }); +}); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/race.js -var race = __webpack_require__(86); +exports.stat = path => fsP.stat(path).catch(err => { + throw new CpFileError(`Cannot stat path \`${path}\`: ${err.message}`, err); +}); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/range.js -/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ +exports.lstat = path => fsP.lstat(path).catch(err => { + throw new CpFileError(`lstat \`${path}\` failed: ${err.message}`, err); +}); -function range(start, count, scheduler) { - if (start === void 0) { - start = 0; - } - if (count === void 0) { - count = 0; - } - return new Observable["a" /* Observable */](function (subscriber) { - var index = 0; - var current = start; - if (scheduler) { - return scheduler.schedule(range_dispatch, 0, { - index: index, count: count, start: start, subscriber: subscriber - }); - } - else { - do { - if (index++ >= count) { - subscriber.complete(); - break; - } - subscriber.next(current++); - if (subscriber.closed) { - break; - } - } while (true); - } - return undefined; - }); -} -function range_dispatch(state) { - var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber; - if (index >= count) { - subscriber.complete(); - return; - } - subscriber.next(start); - if (subscriber.closed) { - return; - } - state.index = index + 1; - state.start = start + 1; - this.schedule(state); -} -//# sourceMappingURL=range.js.map +exports.utimes = (path, atime, mtime) => fsP.utimes(path, atime, mtime).catch(err => { + throw new CpFileError(`utimes \`${path}\` failed: ${err.message}`, err); +}); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/throwError.js -var throwError = __webpack_require__(53); +exports.chmod = (path, mode) => fsP.chmod(path, mode).catch(err => { + throw new CpFileError(`chmod \`${path}\` failed: ${err.message}`, err); +}); -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/timer.js -var timer = __webpack_require__(87); +exports.chown = (path, uid, gid) => fsP.chown(path, uid, gid).catch(err => { + throw new CpFileError(`chown \`${path}\` failed: ${err.message}`, err); +}); -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/using.js -/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ +exports.openSync = (path, flags, mode) => { + try { + return fs.openSync(path, flags, mode); + } catch (err) { + if (flags.includes('w')) { + throw new CpFileError(`Cannot write to \`${path}\`: ${err.message}`, err); + } + throw new CpFileError(`Cannot open \`${path}\`: ${err.message}`, err); + } +}; +// eslint-disable-next-line max-params +exports.readSync = (fd, buffer, offset, length, position, path) => { + try { + return fs.readSync(fd, buffer, offset, length, position); + } catch (err) { + throw new CpFileError(`Cannot read from \`${path}\`: ${err.message}`, err); + } +}; -function using(resourceFactory, observableFactory) { - return new Observable["a" /* Observable */](function (subscriber) { - var resource; - try { - resource = resourceFactory(); - } - catch (err) { - subscriber.error(err); - return undefined; - } - var result; - try { - result = observableFactory(resource); - } - catch (err) { - subscriber.error(err); - return undefined; - } - var source = result ? Object(from["a" /* from */])(result) : empty["a" /* EMPTY */]; - var subscription = source.subscribe(subscriber); - return function () { - subscription.unsubscribe(); - if (resource) { - resource.unsubscribe(); - } - }; - }); -} -//# sourceMappingURL=using.js.map +// eslint-disable-next-line max-params +exports.writeSync = (fd, buffer, offset, length, position, path) => { + try { + return fs.writeSync(fd, buffer, offset, length, position); + } catch (err) { + throw new CpFileError(`Cannot write to \`${path}\`: ${err.message}`, err); + } +}; -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/observable/zip.js -var zip = __webpack_require__(57); - -// EXTERNAL MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/internal/config.js -var config = __webpack_require__(19); - -// CONCATENATED MODULE: /Users/tiagocosta/elastic/kibana/node_modules/rxjs/_esm5/index.js -/* concated harmony reexport Observable */__webpack_require__.d(__webpack_exports__, "Observable", function() { return Observable["a" /* Observable */]; }); -/* concated harmony reexport ConnectableObservable */__webpack_require__.d(__webpack_exports__, "ConnectableObservable", function() { return ConnectableObservable["a" /* ConnectableObservable */]; }); -/* concated harmony reexport GroupedObservable */__webpack_require__.d(__webpack_exports__, "GroupedObservable", function() { return groupBy["a" /* GroupedObservable */]; }); -/* concated harmony reexport observable */__webpack_require__.d(__webpack_exports__, "observable", function() { return observable["a" /* observable */]; }); -/* concated harmony reexport Subject */__webpack_require__.d(__webpack_exports__, "Subject", function() { return Subject["a" /* Subject */]; }); -/* concated harmony reexport BehaviorSubject */__webpack_require__.d(__webpack_exports__, "BehaviorSubject", function() { return BehaviorSubject["a" /* BehaviorSubject */]; }); -/* concated harmony reexport ReplaySubject */__webpack_require__.d(__webpack_exports__, "ReplaySubject", function() { return ReplaySubject["a" /* ReplaySubject */]; }); -/* concated harmony reexport AsyncSubject */__webpack_require__.d(__webpack_exports__, "AsyncSubject", function() { return AsyncSubject["a" /* AsyncSubject */]; }); -/* concated harmony reexport asapScheduler */__webpack_require__.d(__webpack_exports__, "asapScheduler", function() { return asap["a" /* asap */]; }); -/* concated harmony reexport asyncScheduler */__webpack_require__.d(__webpack_exports__, "asyncScheduler", function() { return scheduler_async["a" /* async */]; }); -/* concated harmony reexport queueScheduler */__webpack_require__.d(__webpack_exports__, "queueScheduler", function() { return queue["a" /* queue */]; }); -/* concated harmony reexport animationFrameScheduler */__webpack_require__.d(__webpack_exports__, "animationFrameScheduler", function() { return animationFrame; }); -/* concated harmony reexport VirtualTimeScheduler */__webpack_require__.d(__webpack_exports__, "VirtualTimeScheduler", function() { return VirtualTimeScheduler_VirtualTimeScheduler; }); -/* concated harmony reexport VirtualAction */__webpack_require__.d(__webpack_exports__, "VirtualAction", function() { return VirtualTimeScheduler_VirtualAction; }); -/* concated harmony reexport Scheduler */__webpack_require__.d(__webpack_exports__, "Scheduler", function() { return Scheduler["a" /* Scheduler */]; }); -/* concated harmony reexport Subscription */__webpack_require__.d(__webpack_exports__, "Subscription", function() { return Subscription["a" /* Subscription */]; }); -/* concated harmony reexport Subscriber */__webpack_require__.d(__webpack_exports__, "Subscriber", function() { return Subscriber["a" /* Subscriber */]; }); -/* concated harmony reexport Notification */__webpack_require__.d(__webpack_exports__, "Notification", function() { return Notification["a" /* Notification */]; }); -/* concated harmony reexport pipe */__webpack_require__.d(__webpack_exports__, "pipe", function() { return pipe["a" /* pipe */]; }); -/* concated harmony reexport noop */__webpack_require__.d(__webpack_exports__, "noop", function() { return noop["a" /* noop */]; }); -/* concated harmony reexport identity */__webpack_require__.d(__webpack_exports__, "identity", function() { return identity["a" /* identity */]; }); -/* concated harmony reexport isObservable */__webpack_require__.d(__webpack_exports__, "isObservable", function() { return isObservable; }); -/* concated harmony reexport ArgumentOutOfRangeError */__webpack_require__.d(__webpack_exports__, "ArgumentOutOfRangeError", function() { return ArgumentOutOfRangeError["a" /* ArgumentOutOfRangeError */]; }); -/* concated harmony reexport EmptyError */__webpack_require__.d(__webpack_exports__, "EmptyError", function() { return EmptyError["a" /* EmptyError */]; }); -/* concated harmony reexport ObjectUnsubscribedError */__webpack_require__.d(__webpack_exports__, "ObjectUnsubscribedError", function() { return ObjectUnsubscribedError["a" /* ObjectUnsubscribedError */]; }); -/* concated harmony reexport UnsubscriptionError */__webpack_require__.d(__webpack_exports__, "UnsubscriptionError", function() { return UnsubscriptionError["a" /* UnsubscriptionError */]; }); -/* concated harmony reexport TimeoutError */__webpack_require__.d(__webpack_exports__, "TimeoutError", function() { return TimeoutError["a" /* TimeoutError */]; }); -/* concated harmony reexport bindCallback */__webpack_require__.d(__webpack_exports__, "bindCallback", function() { return bindCallback; }); -/* concated harmony reexport bindNodeCallback */__webpack_require__.d(__webpack_exports__, "bindNodeCallback", function() { return bindNodeCallback; }); -/* concated harmony reexport combineLatest */__webpack_require__.d(__webpack_exports__, "combineLatest", function() { return combineLatest["b" /* combineLatest */]; }); -/* concated harmony reexport concat */__webpack_require__.d(__webpack_exports__, "concat", function() { return concat["a" /* concat */]; }); -/* concated harmony reexport defer */__webpack_require__.d(__webpack_exports__, "defer", function() { return defer["a" /* defer */]; }); -/* concated harmony reexport empty */__webpack_require__.d(__webpack_exports__, "empty", function() { return empty["b" /* empty */]; }); -/* concated harmony reexport forkJoin */__webpack_require__.d(__webpack_exports__, "forkJoin", function() { return forkJoin; }); -/* concated harmony reexport from */__webpack_require__.d(__webpack_exports__, "from", function() { return from["a" /* from */]; }); -/* concated harmony reexport fromEvent */__webpack_require__.d(__webpack_exports__, "fromEvent", function() { return fromEvent; }); -/* concated harmony reexport fromEventPattern */__webpack_require__.d(__webpack_exports__, "fromEventPattern", function() { return fromEventPattern; }); -/* concated harmony reexport generate */__webpack_require__.d(__webpack_exports__, "generate", function() { return generate; }); -/* concated harmony reexport iif */__webpack_require__.d(__webpack_exports__, "iif", function() { return iif; }); -/* concated harmony reexport interval */__webpack_require__.d(__webpack_exports__, "interval", function() { return interval; }); -/* concated harmony reexport merge */__webpack_require__.d(__webpack_exports__, "merge", function() { return merge["a" /* merge */]; }); -/* concated harmony reexport never */__webpack_require__.d(__webpack_exports__, "never", function() { return never; }); -/* concated harmony reexport of */__webpack_require__.d(__webpack_exports__, "of", function() { return of["a" /* of */]; }); -/* concated harmony reexport onErrorResumeNext */__webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return onErrorResumeNext; }); -/* concated harmony reexport pairs */__webpack_require__.d(__webpack_exports__, "pairs", function() { return pairs; }); -/* concated harmony reexport race */__webpack_require__.d(__webpack_exports__, "race", function() { return race["a" /* race */]; }); -/* concated harmony reexport range */__webpack_require__.d(__webpack_exports__, "range", function() { return range; }); -/* concated harmony reexport throwError */__webpack_require__.d(__webpack_exports__, "throwError", function() { return throwError["a" /* throwError */]; }); -/* concated harmony reexport timer */__webpack_require__.d(__webpack_exports__, "timer", function() { return timer["a" /* timer */]; }); -/* concated harmony reexport using */__webpack_require__.d(__webpack_exports__, "using", function() { return using; }); -/* concated harmony reexport zip */__webpack_require__.d(__webpack_exports__, "zip", function() { return zip["b" /* zip */]; }); -/* concated harmony reexport EMPTY */__webpack_require__.d(__webpack_exports__, "EMPTY", function() { return empty["a" /* EMPTY */]; }); -/* concated harmony reexport NEVER */__webpack_require__.d(__webpack_exports__, "NEVER", function() { return NEVER; }); -/* concated harmony reexport config */__webpack_require__.d(__webpack_exports__, "config", function() { return config["a" /* config */]; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ +exports.statSync = path => { + try { + return fs.statSync(path); + } catch (err) { + throw new CpFileError(`stat \`${path}\` failed: ${err.message}`, err); + } +}; +exports.fstatSync = (fd, path) => { + try { + return fs.fstatSync(fd); + } catch (err) { + throw new CpFileError(`fstat \`${path}\` failed: ${err.message}`, err); + } +}; +exports.futimesSync = (fd, atime, mtime, path) => { + try { + return fs.futimesSync(fd, atime, mtime, path); + } catch (err) { + throw new CpFileError(`futimes \`${path}\` failed: ${err.message}`, err); + } +}; +exports.utimesSync = (path, atime, mtime) => { + try { + return fs.utimesSync(path, atime, mtime); + } catch (err) { + throw new CpFileError(`utimes \`${path}\` failed: ${err.message}`, err); + } +}; +exports.chmodSync = (path, mode) => { + try { + return fs.chmodSync(path, mode); + } catch (err) { + throw new CpFileError(`chmod \`${path}\` failed: ${err.message}`, err); + } +}; +exports.chownSync = (path, uid, gid) => { + try { + return fs.chownSync(path, uid, gid); + } catch (err) { + throw new CpFileError(`chown \`${path}\` failed: ${err.message}`, err); + } +}; +exports.makeDir = path => makeDir(path, {fs}).catch(err => { + throw new CpFileError(`Cannot create directory \`${path}\`: ${err.message}`, err); +}); +exports.makeDirSync = path => { + try { + makeDir.sync(path, {fs}); + } catch (err) { + throw new CpFileError(`Cannot create directory \`${path}\`: ${err.message}`, err); + } +}; +if (fs.copyFileSync) { + exports.copyFileSync = (src, dest, flags) => { + try { + fs.copyFileSync(src, dest, flags); + } catch (err) { + throw new CpFileError(`Cannot copy from \`${src}\` to \`${dest}\`: ${err.message}`, err); + } + }; +} +/***/ }), +/* 589 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +const processFn = (fn, opts) => function () { + const P = opts.promiseModule; + const args = new Array(arguments.length); + for (let i = 0; i < arguments.length; i++) { + args[i] = arguments[i]; + } + return new P((resolve, reject) => { + if (opts.errorFirst) { + args.push(function (err, result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); + for (let i = 1; i < arguments.length; i++) { + results[i - 1] = arguments[i]; + } + if (err) { + results.unshift(err); + reject(results); + } else { + resolve(results); + } + } else if (err) { + reject(err); + } else { + resolve(result); + } + }); + } else { + args.push(function (result) { + if (opts.multiArgs) { + const results = new Array(arguments.length - 1); + for (let i = 0; i < arguments.length; i++) { + results[i] = arguments[i]; + } + resolve(results); + } else { + resolve(result); + } + }); + } + fn.apply(this, args); + }); +}; +module.exports = (obj, opts) => { + opts = Object.assign({ + exclude: [/.+(Sync|Stream)$/], + errorFirst: true, + promiseModule: Promise + }, opts); + const filter = key => { + const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); + return opts.include ? opts.include.some(match) : !opts.exclude.some(match); + }; + let ret; + if (typeof obj === 'function') { + ret = function () { + if (opts.excludeMain) { + return obj.apply(this, arguments); + } + return processFn(obj, opts).apply(this, arguments); + }; + } else { + ret = Object.create(Object.getPrototypeOf(obj)); + } + for (const key in obj) { // eslint-disable-line guard-for-in + const x = obj[key]; + ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x; + } + return ret; +}; +/***/ }), +/* 590 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +const EventEmitter = __webpack_require__(45); +const written = new WeakMap(); +class ProgressEmitter extends EventEmitter { + constructor(src, dest) { + super(); + this.src = src; + this.dest = dest; + } + set written(value) { + written.set(this, value); + this.emitProgress(); + } + get written() { + return written.get(this); + } + emitProgress() { + const {size, written} = this; + this.emit('progress', { + src: this.src, + dest: this.dest, + size, + written, + percent: written === size ? 1 : written / size + }); + } +} +module.exports = ProgressEmitter; +/***/ }), +/* 591 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +const NestedError = __webpack_require__(587); +class CpyError extends NestedError { + constructor(message, nested) { + super(message, nested); + Object.assign(this, nested); + this.name = 'CpyError'; + } +} +module.exports = CpyError; +/***/ }), +/* 592 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.prepareExternalProjectDependencies = undefined; +/** + * This prepares the dependencies for an _external_ project. + */ +let prepareExternalProjectDependencies = exports.prepareExternalProjectDependencies = (() => { + var _ref = _asyncToGenerator(function* (projectPath) { + const project = yield _project.Project.fromPath(projectPath); + if (!project.hasDependencies()) { + return; + } + const deps = project.allDependencies; + for (const depName of Object.keys(deps)) { + const depVersion = deps[depName]; + // Kibana currently only supports `link:` dependencies on Kibana's own + // packages, as these are packaged into the `node_modules` folder when + // Kibana is built, so we don't need to take any action to enable + // `require(...)` to resolve for these packages. + if ((0, _package_json.isLinkDependency)(depVersion) && !isKibanaDep(depVersion)) { + // For non-Kibana packages we need to set up symlinks during the + // installation process, but this is not something we support yet. + throw new Error('This plugin is using `link:` dependencies for non-Kibana packages'); + } + } + }); + return function prepareExternalProjectDependencies(_x) { + return _ref.apply(this, arguments); + }; +})(); +var _package_json = __webpack_require__(54); +var _project = __webpack_require__(53); +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ -//# sourceMappingURL=index.js.map +/** + * All external projects are located within `../kibana-extra/{plugin}` relative + * to Kibana itself. + */ +const isKibanaDep = depVersion => depVersion.includes('../../kibana/'); /***/ }) /******/ ]); \ No newline at end of file diff --git a/packages/kbn-pm/webpack.config.js b/packages/kbn-pm/webpack.config.js index b1c8a1bf1d8f7..1424850265e07 100644 --- a/packages/kbn-pm/webpack.config.js +++ b/packages/kbn-pm/webpack.config.js @@ -20,7 +20,7 @@ const path = require('path'); module.exports = { - mode: 'production', + mode: 'none', entry: { index: './src/index.ts', }, @@ -99,8 +99,4 @@ module.exports = { watchOptions: { ignored: [/node_modules/, /vendor/], }, - - optimization: { - minimize: false, - }, }; diff --git a/src/legacy/core_plugins/console/public/src/output.js b/src/legacy/core_plugins/console/public/src/output.js index 16dbfc063c374..1c2781e13333e 100644 --- a/src/legacy/core_plugins/console/public/src/output.js +++ b/src/legacy/core_plugins/console/public/src/output.js @@ -58,8 +58,6 @@ export function initializeOutput($el) { const lastLine = session.getLength(); if (foldPrevious) { output.moveCursorTo(Math.max(0, lastLine - 1), 0); - session.toggleFold(false); - } session.insert({ row: lastLine, column: 0 }, '\n' + val); output.moveCursorTo(lastLine + 1, 0); diff --git a/src/legacy/core_plugins/kibana/public/visualize/wizard/type_selection/vis_type_icon.tsx b/src/legacy/core_plugins/kibana/public/visualize/wizard/type_selection/vis_type_icon.tsx index 2468069c77bb9..6b43b2b98e7e5 100644 --- a/src/legacy/core_plugins/kibana/public/visualize/wizard/type_selection/vis_type_icon.tsx +++ b/src/legacy/core_plugins/kibana/public/visualize/wizard/type_selection/vis_type_icon.tsx @@ -42,7 +42,13 @@ export const VisTypeIcon = ({ visType }: VisTypeIconProps) => { return ( {visType.image && ( - + )} {!visType.image && visType.legacyIcon && } {!visType.image && !visType.legacyIcon && ( diff --git a/src/ui/public/chrome/directives/global_nav/global_nav_link/global_nav_link.less b/src/ui/public/chrome/directives/global_nav/global_nav_link/global_nav_link.less index 644496a91991c..3c8400fa75ad1 100644 --- a/src/ui/public/chrome/directives/global_nav/global_nav_link/global_nav_link.less +++ b/src/ui/public/chrome/directives/global_nav/global_nav_link/global_nav_link.less @@ -49,6 +49,8 @@ .global-nav-link__anchor { display: block; height: 100%; + width: 100%; + line-height: inherit; color: @globalColorWhite; &:focus, &:hover { diff --git a/src/ui/public/chrome/directives/header_global_nav/components/header.tsx b/src/ui/public/chrome/directives/header_global_nav/components/header.tsx index 62a32824e8778..e5a13e9720d50 100644 --- a/src/ui/public/chrome/directives/header_global_nav/components/header.tsx +++ b/src/ui/public/chrome/directives/header_global_nav/components/header.tsx @@ -78,14 +78,14 @@ class HeaderUI extends Component { return ( - + {this.renderLogo()} - - + + diff --git a/src/ui/public/query_bar/components/__snapshots__/query_bar.test.tsx.snap b/src/ui/public/query_bar/components/__snapshots__/query_bar.test.tsx.snap index 006c99730be0f..fb092e9f684c0 100644 --- a/src/ui/public/query_bar/components/__snapshots__/query_bar.test.tsx.snap +++ b/src/ui/public/query_bar/components/__snapshots__/query_bar.test.tsx.snap @@ -18,6 +18,7 @@ exports[`QueryBar Should disable autoFocus on EuiFieldText when disableAutoFocus onOutsideClick={[Function]} >
{ aria-haspopup="true" aria-expanded={this.state.isSuggestionsVisible} aria-owns="typeahead-items" + aria-controls="typeahead-items" >
diff --git a/src/ui/public/query_bar/components/typeahead/__snapshots__/suggestion_component.test.tsx.snap b/src/ui/public/query_bar/components/typeahead/__snapshots__/suggestion_component.test.tsx.snap index 0e3ce952d69e2..95d0869ac5919 100644 --- a/src/ui/public/query_bar/components/typeahead/__snapshots__/suggestion_component.test.tsx.snap +++ b/src/ui/public/query_bar/components/typeahead/__snapshots__/suggestion_component.test.tsx.snap @@ -2,6 +2,7 @@ exports[`SuggestionComponent Should display the suggestion and use the provided ariaId 1`] = `
= props => { onMouseEnter={props.onMouseEnter} ref={props.innerRef} id={props.ariaId} + aria-selected={props.selected} >
diff --git a/src/ui/public/share/components/__snapshots__/share_context_menu.test.js.snap b/src/ui/public/share/components/__snapshots__/share_context_menu.test.js.snap index cd291871ae71a..df50f1d4a78ba 100644 --- a/src/ui/public/share/components/__snapshots__/share_context_menu.test.js.snap +++ b/src/ui/public/share/components/__snapshots__/share_context_menu.test.js.snap @@ -1,5 +1,60 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`shareContextMenuExtensions should sort ascending on sort order first and then ascending on name 1`] = ` +, + "id": 1, + "title": "Permalink", + }, + Object { + "content":
+ panel content +
, + "id": 2, + "title": "AAA panel", + }, + Object { + "content":
+ panel content +
, + "id": 3, + "title": "ZZZ panel", + }, + Object { + "id": 4, + "items": Array [ + Object { + "data-test-subj": "sharePanel-Permalinks", + "icon": "link", + "name": "Permalinks", + "panel": 1, + }, + Object { + "data-test-subj": "sharePanel-ZZZpanel", + "name": "ZZZ panel", + "panel": 3, + }, + Object { + "data-test-subj": "sharePanel-AAApanel", + "name": "AAA panel", + "panel": 2, + }, + ], + "title": "Share this dashboard", + }, + ] + } +/> +`; + exports[`should only render permalink panel when there are no other panels 1`] = ` , @@ -26,7 +81,7 @@ exports[`should render context menu panel when there are more than one panel 1`] panels={ Array [ Object { - "content": , @@ -34,7 +89,7 @@ exports[`should render context menu panel when there are more than one panel 1`] "title": "Permalink", }, Object { - "content": + } + label={ + + } > - Snapshot + + } position="bottom" type="questionInCircle" /> @@ -66,7 +96,11 @@ exports[`render 1`] = ` component="div" grow={true} > - Saved object + + } position="bottom" type="questionInCircle" /> @@ -106,7 +150,13 @@ exports[`render 1`] = ` + } onChange={[Function]} /> @@ -116,10 +166,16 @@ exports[`render 1`] = ` > + } position="bottom" type="questionInCircle" /> @@ -143,7 +199,13 @@ exports[`should enable saved object export option when objectId is provided 1`] describedByIds={Array []} fullWidth={false} hasEmptyLabelSpace={false} - label="Generate the link as" + label={ + + } > - Snapshot + + } position="bottom" type="questionInCircle" /> @@ -199,7 +275,11 @@ exports[`should enable saved object export option when objectId is provided 1`] component="div" grow={true} > - Saved object + + } position="bottom" type="questionInCircle" /> @@ -239,7 +329,13 @@ exports[`should enable saved object export option when objectId is provided 1`] + } onChange={[Function]} /> @@ -249,10 +345,16 @@ exports[`should enable saved object export option when objectId is provided 1`] > + } position="bottom" type="questionInCircle" /> diff --git a/src/ui/public/share/components/share_context_menu.test.js b/src/ui/public/share/components/share_context_menu.test.js index 385441fef5d8a..5b583420f85e9 100644 --- a/src/ui/public/share/components/share_context_menu.test.js +++ b/src/ui/public/share/components/share_context_menu.test.js @@ -20,14 +20,14 @@ jest.mock('../lib/url_shortener', () => ({})); import React from 'react'; -import { shallow } from 'enzyme'; +import { shallowWithIntl } from 'test_utils/enzyme_helpers'; import { ShareContextMenu, } from './share_context_menu'; test('should render context menu panel when there are more than one panel', () => { - const component = shallow( {}} @@ -36,10 +36,57 @@ test('should render context menu panel when there are more than one panel', () = }); test('should only render permalink panel when there are no other panels', () => { - const component = shallow( {}} />); expect(component).toMatchSnapshot(); }); + +describe('shareContextMenuExtensions', () => { + const shareContextMenuExtensions = [ + { + getShareActions: () => { + return [ + { + panel: { + title: 'AAA panel', + content: (
panel content
), + }, + shareMenuItem: { + name: 'AAA panel', + sortOrder: 5, + } + } + ]; + } + }, + { + getShareActions: () => { + return [ + { + panel: { + title: 'ZZZ panel', + content: (
panel content
), + }, + shareMenuItem: { + name: 'ZZZ panel', + sortOrder: 0, + } + } + ]; + } + } + ]; + + test('should sort ascending on sort order first and then ascending on name', () => { + const component = shallowWithIntl( {}} + shareContextMenuExtensions={shareContextMenuExtensions} + />); + expect(component).toMatchSnapshot(); + }); +}); diff --git a/src/ui/public/share/components/share_context_menu.tsx b/src/ui/public/share/components/share_context_menu.tsx index 3093fe33ae2b6..e31cbad767250 100644 --- a/src/ui/public/share/components/share_context_menu.tsx +++ b/src/ui/public/share/components/share_context_menu.tsx @@ -23,6 +23,7 @@ import './share_panel_content.less'; import { EuiContextMenuPanelDescriptor } from '@elastic/eui'; import { EuiContextMenu } from '@elastic/eui'; +import { InjectedIntl, injectI18n } from '@kbn/i18n/react'; import { ShareAction, ShareActionProvider, ShareContextMenuPanelItem } from 'ui/share/share_action'; import { UrlPanelContent } from './url_panel_content'; @@ -35,9 +36,10 @@ interface Props { sharingData: any; isDirty: boolean; onClose: () => void; + intl: InjectedIntl; } -export class ShareContextMenu extends Component { +class ShareContextMenuUI extends Component { public render() { const { panels, initialPanelId } = this.getPanels(); return ( @@ -52,10 +54,14 @@ export class ShareContextMenu extends Component { private getPanels = () => { const panels: EuiContextMenuPanelDescriptor[] = []; const menuItems: ShareContextMenuPanelItem[] = []; + const { intl } = this.props; const permalinkPanel = { id: panels.length + 1, - title: 'Permalink', + title: intl.formatMessage({ + id: 'common.ui.share.contextMenu.permalinkPanelTitle', + defaultMessage: 'Permalink', + }), content: ( { ), }; menuItems.push({ - name: 'Permalinks', + name: intl.formatMessage({ + id: 'common.ui.share.contextMenu.permalinksLabel', + defaultMessage: 'Permalinks', + }), icon: 'link', panel: permalinkPanel.id, sortOrder: 0, @@ -75,7 +84,10 @@ export class ShareContextMenu extends Component { if (this.props.allowEmbed) { const embedPanel = { id: panels.length + 1, - title: 'Embed Code', + title: intl.formatMessage({ + id: 'common.ui.share.contextMenu.embedCodePanelTitle', + defaultMessage: 'Embed Code', + }), content: ( { }; panels.push(embedPanel); menuItems.push({ - name: 'Embed code', + name: intl.formatMessage({ + id: 'common.ui.share.contextMenu.embedCodeLabel', + defaultMessage: 'Embed code', + }), icon: 'console', panel: embedPanel.id, sortOrder: 0, @@ -130,27 +145,35 @@ export class ShareContextMenu extends Component { if (menuItems.length > 1) { const topLevelMenuPanel = { id: panels.length + 1, - title: `Share this ${this.props.objectType}`, + title: intl.formatMessage( + { + id: 'common.ui.share.contextMenuTitle', + defaultMessage: 'Share this {objectType}', + }, + { + objectType: this.props.objectType, + } + ), items: menuItems - .map(menuItem => { - menuItem['data-test-subj'] = `sharePanel-${menuItem.name.replace(' ', '')}`; - if (!menuItem.sortOrder) { - menuItem.sortOrder = 0; - } - return menuItem; - }) // Sorts ascending on sort order first and then ascending on name .sort((a, b) => { - if (a.sortOrder > b.sortOrder) { + const aSortOrder = a.sortOrder || 0; + const bSortOrder = b.sortOrder || 0; + if (aSortOrder > bSortOrder) { return 1; } - if (a.sortOrder < b.sortOrder) { + if (aSortOrder < bSortOrder) { return -1; } if (a.name.toLowerCase().localeCompare(b.name.toLowerCase()) > 0) { return 1; } return -1; + }) + .map(menuItem => { + menuItem['data-test-subj'] = `sharePanel-${menuItem.name.replace(' ', '')}`; + delete menuItem.sortOrder; + return menuItem; }), }; panels.push(topLevelMenuPanel); @@ -161,3 +184,5 @@ export class ShareContextMenu extends Component { return { panels, initialPanelId }; }; } + +export const ShareContextMenu = injectI18n(ShareContextMenuUI); diff --git a/src/ui/public/share/components/url_panel_content.test.js b/src/ui/public/share/components/url_panel_content.test.js index 025c282c83bc8..550631a47b02c 100644 --- a/src/ui/public/share/components/url_panel_content.test.js +++ b/src/ui/public/share/components/url_panel_content.test.js @@ -20,14 +20,14 @@ jest.mock('../lib/url_shortener', () => ({})); import React from 'react'; -import { shallow } from 'enzyme'; +import { shallowWithIntl } from 'test_utils/enzyme_helpers'; import { UrlPanelContent, } from './url_panel_content'; test('render', () => { - const component = shallow( {}} />); @@ -35,7 +35,7 @@ test('render', () => { }); test('should enable saved object export option when objectId is provided', () => { - const component = shallow( {}} diff --git a/src/ui/public/share/components/url_panel_content.tsx b/src/ui/public/share/components/url_panel_content.tsx index 9e781ceb0f673..6b0109e3967fe 100644 --- a/src/ui/public/share/components/url_panel_content.tsx +++ b/src/ui/public/share/components/url_panel_content.tsx @@ -37,6 +37,8 @@ import { format as formatUrl, parse as parseUrl } from 'url'; import { unhashUrl } from '../../state_management/state_hashing'; import { shortenUrl } from '../lib/url_shortener'; +import { FormattedMessage, InjectedIntl, injectI18n } from '@kbn/i18n/react'; + // TODO: Remove once EuiIconTip supports "content" prop const FixedEuiIconTip = EuiIconTip as React.SFC; @@ -45,6 +47,7 @@ interface Props { objectId?: string; objectType: string; getUnhashableStates: () => object[]; + intl: InjectedIntl; } enum ExportUrlAsType { @@ -60,7 +63,7 @@ interface State { shortUrlErrorMsg?: string; } -export class UrlPanelContent extends Component { +class UrlPanelContentUI extends Component { private mounted?: boolean; private shortUrlCache?: string; @@ -108,7 +111,17 @@ export class UrlPanelContent extends Component { data-test-subj="copyShareUrlButton" size="s" > - Copy {this.props.isEmbedded ? 'iFrame code' : 'link'} + {this.props.isEmbedded ? ( + + ) : ( + + )} )} @@ -250,7 +263,15 @@ export class UrlPanelContent extends Component { { useShortUrl: false, isCreatingShortUrl: false, - shortUrlErrorMsg: `Unable to create short URL. Error: ${fetchError.message}`, + shortUrlErrorMsg: this.props.intl.formatMessage( + { + id: 'common.ui.share.urlPanel.unableCreateShortUrlErrorMessage', + defaultMessage: 'Unable to create short URL. Error: {errorMessage}', + }, + { + errorMessage: fetchError.message, + } + ), }, this.setUrl ); @@ -263,9 +284,16 @@ export class UrlPanelContent extends Component { { id: ExportUrlAsType.EXPORT_URL_AS_SNAPSHOT, label: this.renderWithIconTip( - 'Snapshot', - `Snapshot URLs encode the current state of the ${this.props.objectType} in the URL itself. - Edits to the saved ${this.props.objectType} won't be visible via this URL.` + , + ), ['data-test-subj']: 'exportAsSnapshot', }, @@ -273,10 +301,15 @@ export class UrlPanelContent extends Component { id: ExportUrlAsType.EXPORT_URL_AS_SAVED_OBJECT, disabled: this.isNotSaved(), label: this.renderWithIconTip( - 'Saved object', - `You can share this URL with people to let them load the most recent saved version of this ${ - this.props.objectType - }.` + , + ), ['data-test-subj']: 'exportAsSavedObject', }, @@ -295,11 +328,25 @@ export class UrlPanelContent extends Component { }; private renderExportAsRadioGroup = () => { - const generateLinkAsHelp = this.isNotSaved() - ? `Can't share as saved object until the ${this.props.objectType} has been saved.` - : undefined; + const generateLinkAsHelp = this.isNotSaved() ? ( + + ) : ( + undefined + ); return ( - + + } + helpText={generateLinkAsHelp} + > { if (this.state.exportUrlAs === ExportUrlAsType.EXPORT_URL_AS_SAVED_OBJECT) { return; } - + const shortUrlLabel = ( + + ); const switchLabel = this.state.isCreatingShortUrl ? ( - Short URL + {shortUrlLabel} ) : ( - 'Short URL' + shortUrlLabel ); const switchComponent = ( { data-test-subj="useShortUrl" /> ); - const tipContent = `We recommend sharing shortened snapshot URLs for maximum compatibility. - Internet Explorer has URL length restrictions, - and some wiki and markup parsers don't do well with the full-length version of the snapshot URL, - but the short URL should work great.`; + const tipContent = ( + + ); return ( @@ -341,3 +395,5 @@ export class UrlPanelContent extends Component { ); }; } + +export const UrlPanelContent = injectI18n(UrlPanelContentUI); diff --git a/src/ui/public/vis/__tests__/map/service_settings.js b/src/ui/public/vis/__tests__/map/service_settings.js index a32b75f268902..70c5602f049db 100644 --- a/src/ui/public/vis/__tests__/map/service_settings.js +++ b/src/ui/public/vis/__tests__/map/service_settings.js @@ -321,5 +321,13 @@ describe('service_settings (FKA tilemaptest)', function () { expect(fileLayers).to.eql(expected); }); + it ('should get hotlink', async () => { + mapConfig.emsLandingPageUrl = 'https://foo/bar'; + const fileLayers = await serviceSettings.getFileLayers(); + const hotlink = serviceSettings.getEMSHotLink(fileLayers[0]); + expect(hotlink).to.eql('https://foo/bar#file/US States'); + + }); + }); }); diff --git a/src/ui/public/vis/__tests__/response_handlers/basic.js b/src/ui/public/vis/__tests__/response_handlers/basic.js index 48fe772941613..a8281b95742b6 100644 --- a/src/ui/public/vis/__tests__/response_handlers/basic.js +++ b/src/ui/public/vis/__tests__/response_handlers/basic.js @@ -20,58 +20,26 @@ import ngMock from 'ng_mock'; import expect from 'expect.js'; import { VislibSeriesResponseHandlerProvider } from '../../response_handlers/vislib'; -import { VisProvider } from '../..'; -import fixtures from 'fixtures/fake_hierarchical_data'; -import FixturesStubbedLogstashIndexPatternProvider from 'fixtures/stubbed_logstash_index_pattern'; - -const rowAgg = [ - { id: 'agg_1', type: 'avg', schema: 'metric', params: { field: 'bytes' } }, - { id: 'agg_2', type: 'terms', schema: 'split', params: { field: 'extension', rows: true } }, - { id: 'agg_3', type: 'terms', schema: 'segment', params: { field: 'machine.os' } }, - { id: 'agg_4', type: 'terms', schema: 'segment', params: { field: 'geo.src' } } -]; - describe('Basic Response Handler', function () { let basicResponseHandler; - let indexPattern; - let Vis; beforeEach(ngMock.module('kibana')); beforeEach(ngMock.inject(function (Private) { basicResponseHandler = Private(VislibSeriesResponseHandlerProvider).handler; - Vis = Private(VisProvider); - indexPattern = Private(FixturesStubbedLogstashIndexPatternProvider); })); - it('calls hierarchical converter if isHierarchical is set to true', () => { - const vis = new Vis(indexPattern, { - type: 'pie', - aggs: rowAgg - }); - basicResponseHandler(vis, fixtures.threeTermBuckets).then(data => { - expect(data).to.not.be.an('undefined'); - expect(data.rows[0].slices).to.not.be.an('undefined'); - expect(data.rows[0].series).to.be.an('undefined'); - }); - }); - it('returns empty object if conversion failed', () => { - basicResponseHandler({}, {}).then(data => { + basicResponseHandler({}).then(data => { expect(data).to.not.be.an('undefined'); expect(data.rows).to.equal([]); }); }); - it('returns converted data', () => { - const vis = new Vis(indexPattern, { - type: 'histogram', - aggs: rowAgg.slice(0, 3) - }); - basicResponseHandler(vis, fixtures.threeTermBuckets).then(data => { + it('returns empty object if no data was found', () => { + basicResponseHandler({ columns: [{ id: '1', title: '1', aggConfig: {} }], rows: [] }).then(data => { expect(data).to.not.be.an('undefined'); - expect(data.rows[0].slices).to.be.an('undefined'); - expect(data.rows[0].series).to.not.be.an('undefined'); + expect(data.rows).to.equal([]); }); }); diff --git a/src/ui/public/vis/map/service_settings.js b/src/ui/public/vis/map/service_settings.js index 3b0c2d9302ae2..532e5e210c1bd 100644 --- a/src/ui/public/vis/map/service_settings.js +++ b/src/ui/public/vis/map/service_settings.js @@ -200,7 +200,7 @@ uiModules.get('kibana') } } - async getEMSHotLink(fileLayer) { + getEMSHotLink(fileLayer) { const id = `file/${fileLayer.name}`; return `${mapConfig.emsLandingPageUrl}#${id}`; } diff --git a/src/ui/public/vis/response_handlers/vislib.js b/src/ui/public/vis/response_handlers/vislib.js index 820bb787453be..8af6d87550238 100644 --- a/src/ui/public/vis/response_handlers/vislib.js +++ b/src/ui/public/vis/response_handlers/vislib.js @@ -26,8 +26,9 @@ function convertTableGroup(tableGroup, convertTable) { const tables = tableGroup.tables; const firstChild = tables[0]; - if (firstChild.columns) { + if (!tables.length) return; + if (firstChild.columns) { const chart = convertTable(firstChild); // if chart is within a split, assign group title to its label if (tableGroup.$parent) { @@ -36,8 +37,6 @@ function convertTableGroup(tableGroup, convertTable) { return chart; } - if (!tables.length) return; - const out = {}; let outList; diff --git a/src/ui/public/vislib/visualizations/point_series/line_chart.js b/src/ui/public/vislib/visualizations/point_series/line_chart.js index 478e8fc60ad95..38d79f6e5a1ad 100644 --- a/src/ui/public/vislib/visualizations/point_series/line_chart.js +++ b/src/ui/public/vislib/visualizations/point_series/line_chart.js @@ -75,7 +75,7 @@ export function VislibVisualizationsLineChartProvider(Private) { .selectAll('circle') .data(function appendData() { return data.values.filter(function (d) { - return !_.isNull(d.y); + return !_.isNull(d.y) && (d.y || !d.y0); }); }); diff --git a/x-pack/package.json b/x-pack/package.json index 7371440505021..9198a2441fef9 100644 --- a/x-pack/package.json +++ b/x-pack/package.json @@ -139,7 +139,7 @@ "dependencies": { "@code/esqueue": "link:plugins/code/packages/esqueue", "@elastic/datemath": "5.0.1", - "@elastic/eui": "5.3.0", + "@elastic/eui": "5.6.0", "@elastic/node-crypto": "0.1.2", "@elastic/node-phantom-simple": "2.2.4", "@elastic/numeral": "2.3.2", @@ -297,7 +297,7 @@ "styled-components": "3.3.3", "tar-fs": "1.13.0", "tinycolor2": "1.3.0", - "tinymath": "1.1.0", + "tinymath": "1.1.1", "tslib": "^1.9.3", "typescript-fsa": "^2.5.0", "typescript-fsa-reducers": "^0.4.5", diff --git a/x-pack/plugins/beats_management/common/constants/security.ts b/x-pack/plugins/beats_management/common/constants/security.ts index 4d72e3c9f2ac7..c80b036dddf83 100644 --- a/x-pack/plugins/beats_management/common/constants/security.ts +++ b/x-pack/plugins/beats_management/common/constants/security.ts @@ -6,5 +6,5 @@ export const REQUIRED_ROLES = ['beats_admin']; export const REQUIRED_LICENSES = ['standard', 'gold', 'trial', 'platinum']; -export const LICENSES = ['oss', 'standard', 'gold', 'trial', 'platinum']; -export type LicenseType = 'oss' | 'trial' | 'standard' | 'basic' | 'gold' | 'platinum'; +export const LICENSES = ['oss', 'basic', 'standard', 'gold', 'trial', 'platinum']; +export type LicenseType = 'oss' | 'basic' | 'trial' | 'standard' | 'basic' | 'gold' | 'platinum'; diff --git a/x-pack/plugins/beats_management/public/router.tsx b/x-pack/plugins/beats_management/public/router.tsx index febf5d73ed096..e2d8fffced0d2 100644 --- a/x-pack/plugins/beats_management/public/router.tsx +++ b/x-pack/plugins/beats_management/public/router.tsx @@ -45,8 +45,12 @@ export class AppRouter extends Component { public async componentWillMount() { if (this.state.loadingStatus === 'loading') { - await this.props.beatsContainer.reload(); - await this.props.tagsContainer.reload(); + try { + await this.props.beatsContainer.reload(); + await this.props.tagsContainer.reload(); + } catch (e) { + // TODO in a furture version we will better manage this "error" in a returned arg + } const countOfEverything = this.props.beatsContainer.state.list.length + this.props.tagsContainer.state.list.length; diff --git a/x-pack/plugins/canvas/canvas_plugin_src/templates/index.js b/x-pack/plugins/canvas/canvas_plugin_src/templates/index.js new file mode 100644 index 0000000000000..11c8ac928afbb --- /dev/null +++ b/x-pack/plugins/canvas/canvas_plugin_src/templates/index.js @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +const themeDark = require('./theme_dark.json'); +const themeLight = require('./theme_light.json'); + +// Registry expects a function that returns a spec object +export const templateSpecs = [themeDark, themeLight].map(template => () => template); diff --git a/x-pack/plugins/canvas/canvas_plugin_src/templates/register.js b/x-pack/plugins/canvas/canvas_plugin_src/templates/register.js new file mode 100644 index 0000000000000..4fb06c2102783 --- /dev/null +++ b/x-pack/plugins/canvas/canvas_plugin_src/templates/register.js @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import 'babel-polyfill'; +import { templateSpecs } from './index'; + +templateSpecs.forEach(canvas.register); diff --git a/x-pack/plugins/canvas/canvas_plugin_src/templates/theme_dark.json b/x-pack/plugins/canvas/canvas_plugin_src/templates/theme_dark.json new file mode 100644 index 0000000000000..ab4062225c9d9 --- /dev/null +++ b/x-pack/plugins/canvas/canvas_plugin_src/templates/theme_dark.json @@ -0,0 +1,335 @@ +{ + "name": "Dark Theme", + "id": "workpad-029bdeb3-40a6-4c90-9320-a5566abaf427", + "help": "Dark color themed presentation deck", + "tags": ["presentation"], + "width": 1080, + "height": 720, + "page": 0, + "pages": [ + { + "id": "page-fda26a1f-c096-44e4-a149-cb99e1038a34", + "style": { "background": "#000000" }, + "transition": {}, + "elements": [ + { + "id": "element-ee400dfc-0752-4eeb-86d9-af381f669d25", + "position": { "left": 48, "top": 341, "width": 597, "height": 213, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Title\n## Author Name\n\nMonth Day, Year\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 64px !important;\ncolor: white !important;\n}\n.canvasMarkdown h2,\n.canvasMarkdown p {\ncolor: #C4C4C4;\n}\n.canvasMarkdown p {\nfont-size: 16px;\n}\"" + }, + { + "id": "element-0db94902-9166-49f6-9b53-8b1e704baeac", + "position": { "left": 48, "top": 120, "width": 378, "height": 128, "angle": 0 }, + "expression": "image dataurl={asset \"asset-65395214-ad30-4a5b-9c2f-eaee2338486a\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-484d1552-e969-4ca9-ac44-dd90d2caac87", + "style": { "background": "#000000" }, + "transition": {}, + "elements": [ + { + "id": "element-c23d83a2-a053-4cb4-940b-22c591c89414", + "position": { "left": 32, "top": 215, "width": 1017, "height": 93, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\" \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=14 align=\"center\" color=\"#000000\" weight=\"normal\" underline=false italic=false}\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 64px !important;\ncolor: white !important;\n}\"" + }, + { + "id": "element-bac954f0-cc73-4f76-bed5-3489b3a5e342", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-65395214-ad30-4a5b-9c2f-eaee2338486a\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-e0fe193b-09e6-47b3-a203-787e753c2190", + "style": { "background": "#000000" }, + "transition": {}, + "elements": [ + { + "id": "element-34bddaa0-2228-49af-8b7d-12b7b3115753", + "position": { "left": 32, "top": 215, "width": 1017, "height": 178, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\n## Add subtitle here\" \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=14 align=\"center\" color=\"#000000\" weight=\"normal\" underline=false italic=false}\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 64px !important;\ncolor: white !important;\n}\n.canvasMarkdown h2,\n.canvasMarkdown p {\ncolor: #C4C4C4;\n}\n.canvasMarkdown p {\nfont-size: 16px;\n}\"" + }, + { + "id": "element-e4770404-af5d-4b2f-a79d-1ec3f23f5e5e", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-65395214-ad30-4a5b-9c2f-eaee2338486a\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-29048213-c10c-462f-9561-cab399a96ef3", + "style": { "background": "#000000" }, + "transition": {}, + "elements": [ + { + "id": "element-4aece7e9-9b9f-4a8b-8672-7e609c0b4646", + "position": { "left": 47, "top": 100, "width": 984, "height": 73, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 48px !important;\ncolor: white !important;\n}\"" + }, + { + "id": "element-95ee5462-e4c4-49b0-a884-d5f2de1932a1", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-65395214-ad30-4a5b-9c2f-eaee2338486a\"} mode=\"contain\"\n| render" + }, + { + "id": "element-88c815f5-fca9-4cac-a9c2-5cf53cfe5429", + "position": { "left": 47, "top": 216, "width": 984, "height": 430, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"Add slide content here\n- first item\n- second item\n- third item\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown p,\n.canvasMarkdown li {\ncolor: #C4C4C4;\nfont-size: 24px;\n}\n.canvasMarkdown li {\nmargin-bottom: 16px;\n}\"" + } + ] + }, + { + "id": "page-4b542a89-8d05-486d-bc44-49e02fe476ab", + "style": { "background": "#000000" }, + "transition": {}, + "elements": [ + { + "id": "element-c1fd013a-f95b-4ebe-b6da-b43312672016", + "position": { "left": 47, "top": 100, "width": 984, "height": 73, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 48px !important;\ncolor: white !important;\n}\"" + }, + { + "id": "element-5d2f6707-ddcb-4936-88a1-7fcaccc12d64", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-65395214-ad30-4a5b-9c2f-eaee2338486a\"} mode=\"contain\"\n| render" + }, + { + "id": "element-e434ce4d-09a7-42d0-a149-12ed7a115af3", + "position": { "left": 47, "top": 216, "width": 471, "height": 430, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"Left column\n- first item\n- second item\n- third item\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown p,\n.canvasMarkdown li {\ncolor: #C4C4C4;\nfont-size: 24px;\n}\n.canvasMarkdown li {\nmargin-bottom: 16px;\n}\"" + }, + { + "id": "element-9005be46-47ea-4478-96b1-a51b1c4d06e9", + "position": { "left": 560, "top": 216, "width": 471, "height": 430, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"Right column\n- first item\n- second item\n\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown p,\n.canvasMarkdown li {\ncolor: #C4C4C4;\nfont-size: 24px;\n}\n.canvasMarkdown li {\nmargin-bottom: 16px;\n}\"" + } + ] + }, + { + "id": "page-2d091d46-3954-4360-ad93-294612125616", + "style": { "background": "#000000" }, + "transition": {}, + "elements": [ + { + "id": "element-74c48eba-e007-4258-b47c-e691287aa413", + "position": { "left": 518, "top": 0, "width": 561, "height": 719, "angle": 0 }, + "expression": "shape \"square\" fill=\"#01b2a4\" border=\"rgba(255,255,255,0)\" borderWidth=0 maintainAspect=false\n| render" + }, + { + "id": "element-dd72cc53-56fa-490a-a996-9d76f407608f", + "position": { "left": 47, "top": 100, "width": 984, "height": 73, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 48px !important;\ncolor: white !important;\n}\"" + }, + { + "id": "element-2fb265fa-5730-4bd7-b451-d3da8780962e", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-65395214-ad30-4a5b-9c2f-eaee2338486a\"} mode=\"contain\"\n| render" + }, + { + "id": "element-eb5a1a58-21b1-491e-bf8b-68c207afaae8", + "position": { "left": 47, "top": 216, "width": 471, "height": 430, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"Left column\n- first item\n- second item\n- third item\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown p,\n.canvasMarkdown li {\ncolor: #C4C4C4;\nfont-size: 24px;\n}\n.canvasMarkdown li {\nmargin-bottom: 16px;\n}\"" + }, + { + "id": "element-f52077e5-13db-49e9-842e-a8058b578c79", + "position": { "left": 560, "top": 216, "width": 471, "height": 430, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"Right column\n- first item\n- second item\n\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown p,\n.canvasMarkdown li {\ncolor: #000000;\nfont-size: 24px;\n}\n.canvasMarkdown li {\nmargin-bottom: 16px;\n}\"" + } + ] + }, + { + "id": "page-f742a1eb-cce7-4ffc-bb70-bbbec5760105", + "style": { "background": "#000000" }, + "transition": {}, + "elements": [ + { + "id": "element-f22a65da-6283-4d86-83ae-de753ebbcdc6", + "position": { "left": 47, "top": 100, "width": 984, "height": 73, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 48px !important;\ncolor: white !important;\n}\"" + }, + { + "id": "element-9bc2b537-7022-4a46-8dc2-8f348c4f98fc", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-65395214-ad30-4a5b-9c2f-eaee2338486a\"} mode=\"contain\"\n| render" + }, + { + "id": "element-b91303dd-c046-4492-b97d-67517f1920b8", + "position": { "left": 47, "top": 219, "width": 984, "height": 409, "angle": 0 }, + "expression": "filters\n| demodata\n| pointseries x=\"time\" y=\"mean(price)\"\n| plot defaultStyle={seriesStyle lines=\"2\" fill=1 bars=\"0\" points=\"1\"} \n palette={palette \"#1ea593\" \"#2b70f7\" \"#ce0060\" \"#38007e\" \"#fca5d3\" \"#f37020\" \"#e49e29\" \"#b0916f\" \"#7b000b\" \"#34130c\" gradient=false} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=16 align=\"left\" color=\"#FFFFFF\" weight=\"normal\" underline=false italic=false}\n| render containerStyle={containerStyle backgroundColor=\"rgba(255,255,255,0)\"}" + } + ] + }, + { + "id": "page-c83b8a92-1aa8-4f3d-a926-a9211a329666", + "style": { "background": "#000000" }, + "transition": {}, + "elements": [ + { + "id": "element-ff1e55a5-c0d8-410d-99e0-0a08f4640d57", + "position": { "left": 47, "top": 100, "width": 392, "height": 73, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 48px !important;\ncolor: white !important;\n}\"" + }, + { + "id": "element-e8dc178e-71e8-4f97-a6ad-4a298a144fd0", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-65395214-ad30-4a5b-9c2f-eaee2338486a\"} mode=\"contain\"\n| render" + }, + { + "id": "element-2fbb0b23-85a0-49b1-8d71-8d1b43fb704d", + "position": { "left": 439, "top": 173, "width": 592, "height": 475, "angle": 0 }, + "expression": "filters\n| demodata\n| pointseries color=\"project\" size=\"max(price)\"\n| pie hole=48 labels=true legend=false \n palette={palette \"#1ea593\" \"#2b70f7\" \"#ce0060\" \"#38007e\" \"#fca5d3\" \"#f37020\" \"#e49e29\" \"#b0916f\" \"#7b000b\" \"#34130c\" gradient=false} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=16 align=\"center\" color=\"#FFFFFF\" weight=\"normal\" underline=false italic=false} labelRadius=100 radius=0.7\n| render css=\".canvasRenderEl {\n\n}\n.pieLabel div {\nline-height: 1.4 !important;\n}\n\"" + }, + { + "id": "element-243de880-9a39-4e05-b66a-5123a90fdbfb", + "position": { "left": 47, "top": 205, "width": 392, "height": 384, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"- first item\n- second item\n- third item\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown p,\n.canvasMarkdown li {\ncolor: #C4C4C4;\nfont-size: 24px;\n}\n.canvasMarkdown li {\nmargin-bottom: 16px;\n}\"" + } + ] + }, + { + "id": "page-28a0ce9c-da18-4562-8ec6-995857b3132f", + "style": { "background": "#000000" }, + "transition": {}, + "elements": [ + { + "id": "element-465de560-8884-4de2-ad80-fcc5964320ab", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-65395214-ad30-4a5b-9c2f-eaee2338486a\"} mode=\"contain\"\n| render" + }, + { + "id": "element-853fe6b2-0eba-414a-8c9f-e6930bc53109", + "position": { "left": 744, "top": 264, "width": 200, "height": 200, "angle": 0 }, + "expression": "filters\n| demodata\n| math \"median(percent_uptime)\"\n| progress shape=\"wheel\" label={formatnumber \"0%\"} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=24 align=\"center\" color=\"#FFFFFF\" weight=\"normal\" underline=false italic=false} valueColor=\"#01b2a4\" barColor=\"rgba(255,255,255,0.25)\"\n| render" + }, + { + "id": "element-60fa5d2e-6d06-4e05-b465-29fdaa0c7933", + "position": { "left": 49, "top": 100, "width": 982, "height": 63, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\"\n| render \n css=\".canvasMarkdown h1 {\nfont-size: 48px !important;\ncolor: white !important;\n}\"" + }, + { + "id": "element-a20eae11-2cee-4cee-b2f4-f5d4a56576ba", + "position": { "left": 440, "top": 264, "width": 200, "height": 200, "angle": 0 }, + "expression": "filters\n| demodata\n| math \"mean(percent_uptime)\"\n| progress shape=\"wheel\" label={formatnumber \"0%\"} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=24 align=\"center\" color=\"#FFFFFF\" weight=\"normal\" underline=false italic=false} valueColor=\"#01b2a4\" barColor=\"rgba(255,255,255,0.25)\"\n| render", + "filter": null + }, + { + "id": "element-71d07e0f-5d99-471a-9864-99cb04839ef0", + "position": { "left": 121, "top": 264, "width": 200, "height": 200, "angle": 0 }, + "expression": "filters\n| demodata\n| math \"median(percent_uptime)\"\n| progress shape=\"wheel\" label={formatnumber \"0%\"} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=24 align=\"center\" color=\"#FFFFFF\" weight=\"normal\" underline=false italic=false} valueColor=\"#01b2a4\" barColor=\"rgba(255,255,255,0.25)\" max=1\n| render", + "filter": null + } + ] + }, + { + "id": "page-b5bf0272-9c8a-45f0-acfe-be528524dffa", + "style": { "background": "#000000" }, + "transition": {}, + "elements": [ + { + "id": "element-453dbc7a-09d3-44c8-a3ff-b6bd5acd25db", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-65395214-ad30-4a5b-9c2f-eaee2338486a\"} mode=\"contain\"\n| render" + }, + { + "id": "element-799537e1-7456-4ff0-80fa-d52f0de9a6fe", + "position": { "left": 48, "top": 250, "width": 983, "height": 195, "angle": 0 }, + "expression": "filters\n| demodata\n| pointseries x=\"time\" y=\"mean(price)\"\n| plot defaultStyle={seriesStyle lines=\"1\" fill=1 bars=\"0\" points=\"1\"} \n palette={palette \"#1ea593\" \"#2b70f7\" \"#ce0060\" \"#38007e\" \"#fca5d3\" \"#f37020\" \"#e49e29\" \"#b0916f\" \"#7b000b\" \"#34130c\" gradient=false} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=16 align=\"left\" color=\"#FFFFFF\" weight=\"normal\" underline=false italic=false}\n| render containerStyle={containerStyle backgroundColor=\"rgba(255,255,255,0)\"}" + }, + { + "id": "element-eece5bd6-d25b-4ffb-91ba-49a6c5d9f21b", + "position": { "left": 47, "top": 466, "width": 984, "height": 205, "angle": 0 }, + "expression": "filters\n| demodata\n| pointseries x=\"time\" y=\"mean(price)\"\n| plot defaultStyle={seriesStyle lines=\"1\"} \n palette={palette \"#1ea593\" \"#2b70f7\" \"#ce0060\" \"#38007e\" \"#fca5d3\" \"#f37020\" \"#e49e29\" \"#b0916f\" \"#7b000b\" \"#34130c\" gradient=false} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=16 align=\"left\" color=\"#FFFFFF\" weight=\"normal\" underline=false italic=false}\n| render" + }, + { + "id": "element-7d5b43e6-c90f-4b02-b363-421ab4debd1f", + "position": { "left": 443, "top": 114, "width": 200, "height": 100, "angle": 0 }, + "expression": "filters\n| demodata\n| math \"median(percent_uptime)\"\n| progress shape=\"semicircle\" label={formatnumber \"0%\"} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=24 align=\"center\" color=\"#FFFFFF\" weight=\"normal\" underline=false italic=false} valueColor=\"#01b2a4\" barColor=\"rgba(255,255,255,0.25)\"\n| render" + }, + { + "id": "element-561c433a-cbae-47dd-8082-9ddf627875ac", + "position": { "left": 773.75, "top": 114, "width": 200, "height": 100, "angle": 0 }, + "expression": "filters\n| demodata\n| math \"mean(percent_uptime)\"\n| progress shape=\"semicircle\" label={formatnumber \"0%\"} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=24 align=\"center\" color=\"#FFFFFF\" weight=\"normal\" underline=false italic=false} valueColor=\"#01b2a4\" barColor=\"rgba(255,255,255,0.25)\"\n| render" + }, + { + "id": "element-9f574a47-64cd-4c76-a07e-6a9d8a1a0e93", + "position": { "left": 104.25, "top": 114, "width": 200, "height": 100, "angle": 0 }, + "expression": "filters\n| demodata\n| math \"mean(percent_uptime)\"\n| progress shape=\"semicircle\" label={formatnumber \"0%\"} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=24 align=\"center\" color=\"#FFFFFF\" weight=\"normal\" underline=false italic=false} valueColor=\"#01b2a4\" barColor=\"rgba(255,255,255,0.25)\"\n| render" + } + ] + }, + { + "id": "page-359be632-341a-4d54-a3dd-3c7ddc71dfa5", + "style": { "background": "#000000" }, + "transition": {}, + "elements": [ + { + "id": "element-dbc1766e-3a2b-4959-9e9c-ebc7a3cb0448", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-65395214-ad30-4a5b-9c2f-eaee2338486a\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-c0ecd1ab-f6a8-430e-81f8-cdcb39c826c3", + "style": { "background": "#000000" }, + "transition": {}, + "elements": [ + { + "id": "element-e975cafc-b8a2-4107-938a-134fc860696a", + "position": { "left": 362, "top": 268, "width": 378, "height": 128, "angle": 0 }, + "expression": "image dataurl={asset \"asset-65395214-ad30-4a5b-9c2f-eaee2338486a\"} mode=\"contain\"\n| render" + } + ] + } + ], + "colors": [ + "#37988d", + "#c19628", + "#b83c6f", + "#3f9939", + "#1785b0", + "#ca5f35", + "#45bdb0", + "#f2bc33", + "#e74b8b", + "#4fbf48", + "#1ea6dc", + "#fd7643", + "#72cec3", + "#f5cc5d", + "#ec77a8", + "#7acf74", + "#4cbce4", + "#fd986f", + "#a1ded7", + "#f8dd91", + "#f2a4c5", + "#a6dfa2", + "#86d2ed", + "#fdba9f", + "#000000", + "#444444", + "#777777", + "#BBBBBB", + "#FFFFFF", + "rgba(255,255,255,0)" + ], + "@timestamp": "2018-10-22T18:27:13.637Z", + "@created": "2018-10-19T17:15:13.431Z", + "assets": { + "asset-dc0eae23-c503-4734-a118-52feeb6617e5": { + "id": "asset-dc0eae23-c503-4734-a118-52feeb6617e5", + "@created": "2018-10-19T18:00:19.153Z", + "type": "dataurl", + "value": "data:image/png;base64,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" + }, + "asset-65395214-ad30-4a5b-9c2f-eaee2338486a": { + "id": "asset-65395214-ad30-4a5b-9c2f-eaee2338486a", + "@created": "2018-10-22T17:51:02.623Z", + "type": "dataurl", + "value": "data:image/png;base64,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" + } + } +} diff --git a/x-pack/plugins/canvas/canvas_plugin_src/templates/theme_light.json b/x-pack/plugins/canvas/canvas_plugin_src/templates/theme_light.json new file mode 100644 index 0000000000000..fca72261c75de --- /dev/null +++ b/x-pack/plugins/canvas/canvas_plugin_src/templates/theme_light.json @@ -0,0 +1,342 @@ +{ + "name": "Light Theme", + "id": "workpad-890b80e5-a3eb-431d-b8ed-37587ffd32c3", + "help": "Light color themed presentation deck", + "tags": ["presentation"], + "width": 1080, + "height": 720, + "page": 0, + "pages": [ + { + "id": "page-fda26a1f-c096-44e4-a149-cb99e1038a34", + "style": { "background": "#f5f5f5" }, + "transition": {}, + "elements": [ + { + "id": "element-ee400dfc-0752-4eeb-86d9-af381f669d25", + "position": { "left": 48, "top": 341, "width": 597, "height": 213, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Title\n## Author Name\n\nMonth Day, Year\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 64px !important;\n}\n.canvasMarkdown h2,\n.canvasMarkdown p {\ncolor: #666666;\n}\n.canvasMarkdown p {\nfont-size: 16px;\n}\"" + }, + { + "id": "element-a17f42b3-6b6a-476f-a615-6c2c2f0cdde2", + "position": { "left": 48, "top": 126, "width": 375, "height": 128, "angle": 0 }, + "expression": "image dataurl={asset \"asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-484d1552-e969-4ca9-ac44-dd90d2caac87", + "style": { "background": "#f5f5f5" }, + "transition": {}, + "elements": [ + { + "id": "element-c23d83a2-a053-4cb4-940b-22c591c89414", + "position": { "left": 32, "top": 215, "width": 1017, "height": 93, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\" \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=14 align=\"center\" color=\"#000000\" weight=\"normal\" underline=false italic=false}\n| render css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 64px !important;\n}\"" + }, + { + "id": "element-c4f9c636-d09d-4ea3-afe7-2b75f3cb655a", + "position": { "left": 896, "top": 30, "width": 136, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-e0fe193b-09e6-47b3-a203-787e753c2190", + "style": { "background": "#f5f5f5" }, + "transition": {}, + "elements": [ + { + "id": "element-34bddaa0-2228-49af-8b7d-12b7b3115753", + "position": { "left": 32, "top": 215, "width": 1017, "height": 178, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\n## Add subtitle here\" \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=14 align=\"center\" color=\"#000000\" weight=\"normal\" underline=false italic=false}\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 64px !important;\n}\n.canvasMarkdown h2,\n.canvasMarkdown p {\ncolor: #666666;\n}\n.canvasMarkdown p {\nfont-size: 16px;\n}\"" + }, + { + "id": "element-36922608-fe81-4828-8ec6-f548f42c9914", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-29048213-c10c-462f-9561-cab399a96ef3", + "style": { "background": "#f5f5f5" }, + "transition": {}, + "elements": [ + { + "id": "element-4aece7e9-9b9f-4a8b-8672-7e609c0b4646", + "position": { "left": 47, "top": 100, "width": 984, "height": 73, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\"\n| render css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 48px !important;\n}\"" + }, + { + "id": "element-88c815f5-fca9-4cac-a9c2-5cf53cfe5429", + "position": { "left": 47, "top": 216, "width": 984, "height": 430, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"Add slide content here\n- first item\n- second item\n- third item\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown p,\n.canvasMarkdown li {\ncolor: #666666;\nfont-size: 24px;\n}\n.canvasMarkdown li {\nmargin-bottom: 16px;\n}\"" + }, + { + "id": "element-01f5a69e-0a0a-4f96-af98-56ad51792e7d", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-4b542a89-8d05-486d-bc44-49e02fe476ab", + "style": { "background": "#f5f5f5" }, + "transition": {}, + "elements": [ + { + "id": "element-c1fd013a-f95b-4ebe-b6da-b43312672016", + "position": { "left": 47, "top": 100, "width": 984, "height": 73, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\"\n| render css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 48px !important;\n}\"" + }, + { + "id": "element-e434ce4d-09a7-42d0-a149-12ed7a115af3", + "position": { "left": 47, "top": 216, "width": 471, "height": 430, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"Left column\n- first item\n- second item\n- third item\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown p,\n.canvasMarkdown li {\ncolor: #666666;\nfont-size: 24px;\n}\n.canvasMarkdown li {\nmargin-bottom: 16px;\n}\"" + }, + { + "id": "element-9005be46-47ea-4478-96b1-a51b1c4d06e9", + "position": { "left": 560, "top": 216, "width": 471, "height": 430, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"Right column\n- first item\n- second item\n\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown p,\n.canvasMarkdown li {\ncolor: #666666;\nfont-size: 24px;\n}\n.canvasMarkdown li {\nmargin-bottom: 16px;\n}\"" + }, + { + "id": "element-e9bfa23c-d390-4d44-b717-9936bf0a38d9", + "position": { "left": 896, "top": 29, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-2d091d46-3954-4360-ad93-294612125616", + "style": { "background": "#f5f5f5" }, + "transition": {}, + "elements": [ + { + "id": "element-74c48eba-e007-4258-b47c-e691287aa413", + "position": { "left": 518, "top": 0, "width": 561, "height": 719, "angle": 0 }, + "expression": "shape \"square\" fill=\"#01b2a4\" border=\"rgba(255,255,255,0)\" borderWidth=0 maintainAspect=false\n| render" + }, + { + "id": "element-dd72cc53-56fa-490a-a996-9d76f407608f", + "position": { "left": 47, "top": 100, "width": 984, "height": 73, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\"\n| render css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 48px !important;\n}\"" + }, + { + "id": "element-eb5a1a58-21b1-491e-bf8b-68c207afaae8", + "position": { "left": 47, "top": 216, "width": 471, "height": 430, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"Left column\n- first item\n- second item\n- third item\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown p,\n.canvasMarkdown li {\ncolor: #666666;\nfont-size: 24px;\n}\n.canvasMarkdown li {\nmargin-bottom: 16px;\n}\"" + }, + { + "id": "element-f52077e5-13db-49e9-842e-a8058b578c79", + "position": { "left": 560, "top": 216, "width": 471, "height": 430, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"Right column\n- first item\n- second item\n\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown p,\n.canvasMarkdown li {\ncolor: #000000;\nfont-size: 24px;\n}\n.canvasMarkdown li {\nmargin-bottom: 16px;\n}\"" + }, + { + "id": "element-535e1c15-894e-4c8c-8f49-926b5880c5a6", + "position": { "left": 896, "top": 29, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-f742a1eb-cce7-4ffc-bb70-bbbec5760105", + "style": { "background": "#f5f5f5" }, + "transition": {}, + "elements": [ + { + "id": "element-f22a65da-6283-4d86-83ae-de753ebbcdc6", + "position": { "left": 47, "top": 100, "width": 984, "height": 73, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\"\n| render css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 48px !important;\n}\"" + }, + { + "id": "element-b91303dd-c046-4492-b97d-67517f1920b8", + "position": { "left": 47, "top": 219, "width": 984, "height": 409, "angle": 0 }, + "expression": "filters\n| demodata\n| pointseries x=\"time\" y=\"mean(price)\"\n| plot defaultStyle={seriesStyle lines=\"2\" fill=1 bars=\"0\" points=\"1\"} \n palette={palette \"#1ea593\" \"#2b70f7\" \"#ce0060\" \"#38007e\" \"#fca5d3\" \"#f37020\" \"#e49e29\" \"#b0916f\" \"#7b000b\" \"#34130c\" gradient=false} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=16 align=\"left\" color=\"#666666\" weight=\"normal\" underline=false italic=false}\n| render containerStyle={containerStyle backgroundColor=\"rgba(255,255,255,0)\"}" + }, + { + "id": "element-3e10ec4b-7b81-40f6-b8ae-a2ff607c363f", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-c83b8a92-1aa8-4f3d-a926-a9211a329666", + "style": { "background": "#f5f5f5" }, + "transition": {}, + "elements": [ + { + "id": "element-ff1e55a5-c0d8-410d-99e0-0a08f4640d57", + "position": { "left": 47, "top": 100, "width": 392, "height": 73, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\"\n| render css=\".canvasRenderEl {\n\n}\n.canvasMarkdown h1 {\nfont-size: 48px !important;\n}\"" + }, + { + "id": "element-2fbb0b23-85a0-49b1-8d71-8d1b43fb704d", + "position": { "left": 439, "top": 173, "width": 592, "height": 475, "angle": 0 }, + "expression": "filters\n| demodata\n| pointseries color=\"project\" size=\"max(price)\"\n| pie hole=48 labels=true legend=false \n palette={palette \"#1ea593\" \"#2b70f7\" \"#ce0060\" \"#38007e\" \"#fca5d3\" \"#f37020\" \"#e49e29\" \"#b0916f\" \"#7b000b\" \"#34130c\" gradient=false} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=16 align=\"center\" color=\"#666666\" weight=\"normal\" underline=false italic=false} labelRadius=100 radius=0.7\n| render css=\".canvasRenderEl {\n\n}\n.pieLabel div {\nline-height: 1.4 !important;\n}\n\"" + }, + { + "id": "element-243de880-9a39-4e05-b66a-5123a90fdbfb", + "position": { "left": 47, "top": 205, "width": 392, "height": 384, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"- first item\n- second item\n- third item\"\n| render \n css=\".canvasRenderEl {\n\n}\n.canvasMarkdown p,\n.canvasMarkdown li {\ncolor: #666666;\nfont-size: 24px;\n}\n.canvasMarkdown li {\nmargin-bottom: 16px;\n}\"" + }, + { + "id": "element-bc81daec-a13b-4ab9-94d8-e2fa640149af", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-28a0ce9c-da18-4562-8ec6-995857b3132f", + "style": { "background": "#f5f5f5" }, + "transition": {}, + "elements": [ + { + "id": "element-853fe6b2-0eba-414a-8c9f-e6930bc53109", + "position": { "left": 744, "top": 264, "width": 200, "height": 200, "angle": 0 }, + "expression": "filters\n| demodata\n| math \"median(percent_uptime)\"\n| progress shape=\"wheel\" label={formatnumber \"0%\"} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=24 align=\"center\" color=\"#666666\" weight=\"normal\" underline=false italic=false} valueColor=\"#01b2a4\" barColor=\"rgba(0,0,0,0.1)\"\n| render" + }, + { + "id": "element-60fa5d2e-6d06-4e05-b465-29fdaa0c7933", + "position": { "left": 49, "top": 100, "width": 982, "height": 63, "angle": 0 }, + "expression": "filters\n| demodata\n| markdown \"# Add title here\"\n| render css=\".canvasMarkdown h1 {\nfont-size: 48px !important;\n}\"" + }, + { + "id": "element-a20eae11-2cee-4cee-b2f4-f5d4a56576ba", + "position": { "left": 440, "top": 264, "width": 200, "height": 200, "angle": 0 }, + "expression": "filters\n| demodata\n| math \"mean(percent_uptime)\"\n| progress shape=\"wheel\" label={formatnumber \"0%\"} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=24 align=\"center\" color=\"#666666\" weight=\"normal\" underline=false italic=false} valueColor=\"#01b2a4\" barColor=\"rgba(0,0,0,0.1)\"\n| render", + "filter": null + }, + { + "id": "element-71d07e0f-5d99-471a-9864-99cb04839ef0", + "position": { "left": 121, "top": 264, "width": 200, "height": 200, "angle": 0 }, + "expression": "filters\n| demodata\n| math \"median(percent_uptime)\"\n| progress shape=\"wheel\" label={formatnumber \"0%\"} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=24 align=\"center\" color=\"#666666\" weight=\"normal\" underline=false italic=false} valueColor=\"#01b2a4\" barColor=\"rgba(0,0,0,0.1)\" max=1\n| render", + "filter": null + }, + { + "id": "element-6844a5a8-2781-467b-8ba7-c3546e5908d7", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-b5bf0272-9c8a-45f0-acfe-be528524dffa", + "style": { "background": "#f5f5f5" }, + "transition": {}, + "elements": [ + { + "id": "element-799537e1-7456-4ff0-80fa-d52f0de9a6fe", + "position": { "left": 48, "top": 250, "width": 983, "height": 195, "angle": 0 }, + "expression": "filters\n| demodata\n| pointseries x=\"time\" y=\"mean(price)\"\n| plot defaultStyle={seriesStyle lines=\"1\" fill=1 bars=\"0\" points=\"1\"} \n palette={palette \"#1ea593\" \"#2b70f7\" \"#ce0060\" \"#38007e\" \"#fca5d3\" \"#f37020\" \"#e49e29\" \"#b0916f\" \"#7b000b\" \"#34130c\" gradient=false} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=16 align=\"left\" color=\"#666666\" weight=\"normal\" underline=false italic=false}\n| render containerStyle={containerStyle backgroundColor=\"rgba(255,255,255,0)\"}" + }, + { + "id": "element-eece5bd6-d25b-4ffb-91ba-49a6c5d9f21b", + "position": { "left": 47, "top": 466, "width": 984, "height": 205, "angle": 0 }, + "expression": "filters\n| demodata\n| pointseries x=\"time\" y=\"mean(price)\"\n| plot defaultStyle={seriesStyle lines=\"1\"} \n palette={palette \"#1ea593\" \"#2b70f7\" \"#ce0060\" \"#38007e\" \"#fca5d3\" \"#f37020\" \"#e49e29\" \"#b0916f\" \"#7b000b\" \"#34130c\" gradient=false} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=16 align=\"left\" color=\"#666666\" weight=\"normal\" underline=false italic=false}\n| render" + }, + { + "id": "element-7d5b43e6-c90f-4b02-b363-421ab4debd1f", + "position": { "left": 443, "top": 114, "width": 200, "height": 100, "angle": 0 }, + "expression": "filters\n| demodata\n| math \"median(percent_uptime)\"\n| progress shape=\"semicircle\" label={formatnumber \"0%\"} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=24 align=\"center\" color=\"#666666\" weight=\"normal\" underline=false italic=false} valueColor=\"#01b2a4\" barColor=\"rgba(0,0,0,0.1)\"\n| render" + }, + { + "id": "element-561c433a-cbae-47dd-8082-9ddf627875ac", + "position": { "left": 773.75, "top": 114, "width": 200, "height": 100, "angle": 0 }, + "expression": "filters\n| demodata\n| math \"mean(percent_uptime)\"\n| progress shape=\"semicircle\" label={formatnumber \"0%\"} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=24 align=\"center\" color=\"#666666\" weight=\"normal\" underline=false italic=false} valueColor=\"#01b2a4\" barColor=\"rgba(0,0,0,0.1)\"\n| render" + }, + { + "id": "element-9f574a47-64cd-4c76-a07e-6a9d8a1a0e93", + "position": { "left": 104.25, "top": 114, "width": 200, "height": 100, "angle": 0 }, + "expression": "filters\n| demodata\n| math \"mean(percent_uptime)\"\n| progress shape=\"semicircle\" label={formatnumber \"0%\"} \n font={font family=\"'Open Sans', Helvetica, Arial, sans-serif\" size=24 align=\"center\" color=\"#666666\" weight=\"normal\" underline=false italic=false} valueColor=\"#01b2a4\" barColor=\"rgba(0,0,0,0.1)\"\n| render" + }, + { + "id": "element-a8477a6b-274e-4860-8bfd-38543b4d05f6", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-359be632-341a-4d54-a3dd-3c7ddc71dfa5", + "style": { "background": "#f5f5f5" }, + "transition": {}, + "elements": [ + { + "id": "element-153c7b13-d293-43bb-aa3d-e141475b34ef", + "position": { "left": 896, "top": 30, "width": 135, "height": 45, "angle": 0 }, + "expression": "image dataurl={asset \"asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3\"} mode=\"contain\"\n| render" + } + ] + }, + { + "id": "page-c0ecd1ab-f6a8-430e-81f8-cdcb39c826c3", + "style": { "background": "#f5f5f5" }, + "transition": {}, + "elements": [ + { + "id": "element-d9b6c4f4-ff06-464d-9c26-30359490a16a", + "position": { "left": 363, "top": 277, "width": 375, "height": 128, "angle": 0 }, + "expression": "image dataurl={asset \"asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3\"} mode=\"contain\"\n| render" + } + ] + } + ], + "colors": [ + "#37988d", + "#c19628", + "#b83c6f", + "#3f9939", + "#1785b0", + "#ca5f35", + "#45bdb0", + "#f2bc33", + "#e74b8b", + "#4fbf48", + "#1ea6dc", + "#fd7643", + "#72cec3", + "#f5cc5d", + "#ec77a8", + "#7acf74", + "#4cbce4", + "#fd986f", + "#a1ded7", + "#f8dd91", + "#f2a4c5", + "#a6dfa2", + "#86d2ed", + "#fdba9f", + "#000000", + "#444444", + "#777777", + "#BBBBBB", + "#FFFFFF", + "rgba(255,255,255,0)", + "#f5f5f5" + ], + "@timestamp": "2018-10-22T18:27:24.317Z", + "@created": "2018-10-19T20:09:29.488Z", + "assets": { + "asset-dc6368af-4e4a-42cc-bcef-f9204d9ac046": { + "id": "asset-dc6368af-4e4a-42cc-bcef-f9204d9ac046", + "@created": "2018-10-19T20:21:29.110Z", + "type": "dataurl", + "value": "data:image/png;base64,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" + }, + "asset-caaa381b-bcfb-46bc-88c7-f861c361048d": { + "id": "asset-caaa381b-bcfb-46bc-88c7-f861c361048d", + "@created": "2018-10-22T17:34:28.756Z", + "type": "dataurl", + "value": "data:image/png;base64,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" + }, + "asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3": { + "id": "asset-4446bdf3-a824-41ee-94c3-93b3e8f65bb3", + "@created": "2018-10-22T17:45:14.151Z", + "type": "dataurl", + "value": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABZUAAAHrCAYAAAC3qnMIAAAAAXNSR0IArs4c6QAAQABJREFUeAHs3QmcLFV5/vG5MPdeFoULRHa3xKi4RE3cM8aNuMS4xAgadxRFQKMmBmM0kST/mMSoaBQQFMQlcUGjROKCoCgTjdG4RGMi0USNCijIBRW597L8nzPdNf1UvVXVVd3VM919f/359PRbb586depbp6tP11RXb1heXr5xYYzb0tLSBs2e7unWtK7V8h0tv7f0wd/V+gep8mhCyy8urLI9HS2/sv5iQ/rTq+U7Wn5xMav1F58oTk9o+cXFVLano+VX1l9sSH96tXxHyy8uZrX+4hPF6Qktv7iYyvZ0tPzK+osN6U+vlu9o+cXFrNZffKI4PaHlFxdT2Z6Oll9Zf7Eh/enV8h0tv7iY1fqLTxSnJ7T84mIq29PR8ivrLzakP71avqPlFxezWn/xieL0hJZfXExlezpafmX9xYb0p1fLd7T84mJW6y8+UZye0PKLi6lsT0fLr6y/2JD+9Gr5jpZfXMxq/cUnitMTWn5xMZXt6Wj5lfUXG9KfXi3f0fKLi1mtv/hEcXpCyy8uprI9HS2/sv5iQ/rTq+U7Wn5xMav1F58oTk9o+cXFVLano+VX1l9sSH96tXxHyy8uZrX+4hPF6Qktv7iYyvZ0tPzK+osN6U+vlu9o+cXFrNZffKI4PaHlFxdT2Z6Oll9Zf7Eh/enV8h0tv7iY1fqLTxSnJ7T84mIq29PR8ivrLzakP71avqPlFxezWn/xieL0hJZfXExlezpafmX9xYb0p1fLd7T84mJW6y8+UZyexPJ3KS5kxOm0EtmKNKmibfkmdXqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvy2oST7o9betvW77JOnqZSdfvywpx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" + } + } +} diff --git a/x-pack/plugins/canvas/canvas_plugin_src/uis/tags/index.js b/x-pack/plugins/canvas/canvas_plugin_src/uis/tags/index.js new file mode 100644 index 0000000000000..51d1a866624c6 --- /dev/null +++ b/x-pack/plugins/canvas/canvas_plugin_src/uis/tags/index.js @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { presentation } from './presentation'; + +// Registry expects a function that returns a spec object +export const tagSpecs = [presentation]; diff --git a/x-pack/plugins/canvas/canvas_plugin_src/uis/tags/presentation.js b/x-pack/plugins/canvas/canvas_plugin_src/uis/tags/presentation.js new file mode 100644 index 0000000000000..80c27e6bfdfa6 --- /dev/null +++ b/x-pack/plugins/canvas/canvas_plugin_src/uis/tags/presentation.js @@ -0,0 +1,7 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export const presentation = () => ({ name: 'presentation', color: '#1EA593' }); diff --git a/x-pack/plugins/canvas/canvas_plugin_src/uis/tags/register.js b/x-pack/plugins/canvas/canvas_plugin_src/uis/tags/register.js new file mode 100644 index 0000000000000..e8b3ab0c23b7d --- /dev/null +++ b/x-pack/plugins/canvas/canvas_plugin_src/uis/tags/register.js @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import 'babel-polyfill'; +import { tagSpecs } from './index'; + +tagSpecs.forEach(canvas.register); diff --git a/x-pack/plugins/canvas/public/apps/home/home_app.js b/x-pack/plugins/canvas/public/apps/home/home_app.js index 74080e5c7e217..0cb9172d7a2db 100644 --- a/x-pack/plugins/canvas/public/apps/home/home_app.js +++ b/x-pack/plugins/canvas/public/apps/home/home_app.js @@ -6,16 +6,20 @@ import React from 'react'; import { EuiPage, EuiPageBody, EuiPageContent } from '@elastic/eui'; -import { WorkpadLoader } from '../../components/workpad_loader'; +import { WorkpadManager } from '../../components/workpad_manager'; import { setDocTitle } from '../../lib/doc_title'; export const HomeApp = () => { setDocTitle('Canvas'); return ( - + - - {}} /> + + {}} /> diff --git a/x-pack/plugins/canvas/public/apps/home/home_app.scss b/x-pack/plugins/canvas/public/apps/home/home_app.scss index 63dbc18cec247..9383b424860bc 100644 --- a/x-pack/plugins/canvas/public/apps/home/home_app.scss +++ b/x-pack/plugins/canvas/public/apps/home/home_app.scss @@ -1,3 +1,10 @@ -.canvasHomeApp__modalHeader { - padding-right: 24px; +.canvasHomeApp { + width: 100%; + + .canvasHomeApp__content { + width: 100%; + } + .canvasHomeApp__modalHeader { + padding-right: 24px; + } } diff --git a/x-pack/plugins/canvas/public/components/app/index.js b/x-pack/plugins/canvas/public/components/app/index.js index b3a9fcc79036e..3cf608e9952ff 100644 --- a/x-pack/plugins/canvas/public/components/app/index.js +++ b/x-pack/plugins/canvas/public/components/app/index.js @@ -11,6 +11,8 @@ import { getAppReady, getBasePath } from '../../state/selectors/app'; import { appReady, appError } from '../../state/actions/app'; import { loadPrivateBrowserFunctions } from '../../lib/load_private_browser_functions'; import { elementsRegistry } from '../../lib/elements_registry'; +import { templatesRegistry } from '../../lib/templates_registry'; +import { tagsRegistry } from '../../lib/tags_registry'; import { renderFunctionsRegistry } from '../../lib/render_functions_registry'; import { argTypeRegistry, @@ -40,6 +42,8 @@ const types = { modelUIs: modelRegistry, viewUIs: viewRegistry, argumentUIs: argTypeRegistry, + templates: templatesRegistry, + tags: tagsRegistry, }; const mapDispatchToProps = dispatch => ({ diff --git a/x-pack/plugins/canvas/public/components/toolbar/index.js b/x-pack/plugins/canvas/public/components/toolbar/index.js index 0ca49a1121090..ff515c7945775 100644 --- a/x-pack/plugins/canvas/public/components/toolbar/index.js +++ b/x-pack/plugins/canvas/public/components/toolbar/index.js @@ -41,5 +41,5 @@ export const Toolbar = compose( }, }), withState('tray', 'setTray', props => props.tray), - withState('showWorkpadLoader', 'setShowWorkpadLoader', false) + withState('showWorkpadManager', 'setShowWorkpadManager', false) )(Component); diff --git a/x-pack/plugins/canvas/public/components/toolbar/toolbar.js b/x-pack/plugins/canvas/public/components/toolbar/toolbar.js index 8a90984b5461f..b05f027f1c334 100644 --- a/x-pack/plugins/canvas/public/components/toolbar/toolbar.js +++ b/x-pack/plugins/canvas/public/components/toolbar/toolbar.js @@ -17,7 +17,7 @@ import { EuiButton, } from '@elastic/eui'; import { Navbar } from '../navbar'; -import { WorkpadLoader } from '../workpad_loader'; +import { WorkpadManager } from '../workpad_manager'; import { PageManager } from '../page_manager'; import { Expression } from '../expression'; import { Tray } from './tray'; @@ -32,8 +32,8 @@ export const Toolbar = props => { selectedPageNumber, workpadName, totalPages, - showWorkpadLoader, - setShowWorkpadLoader, + showWorkpadManager, + setShowWorkpadManager, } = props; const elementIsSelected = Boolean(selectedElement); @@ -45,15 +45,15 @@ export const Toolbar = props => { setTray(exp); }; - const closeWorkpadLoader = () => setShowWorkpadLoader(false); - const openWorkpadLoader = () => setShowWorkpadLoader(true); + const closeWorkpadManager = () => setShowWorkpadManager(false); + const openWorkpadManager = () => setShowWorkpadManager(true); - const workpadLoader = ( + const workpadManager = ( - - + + - + Dismiss @@ -72,7 +72,7 @@ export const Toolbar = props => { - openWorkpadLoader()}> + openWorkpadManager()}> {workpadName} @@ -116,7 +116,7 @@ export const Toolbar = props => { - {showWorkpadLoader && workpadLoader} + {showWorkpadManager && workpadManager}
); }; @@ -130,6 +130,6 @@ Toolbar.propTypes = { selectedPageNumber: PropTypes.number.isRequired, totalPages: PropTypes.number.isRequired, selectedElement: PropTypes.object, - showWorkpadLoader: PropTypes.bool.isRequired, - setShowWorkpadLoader: PropTypes.func.isRequired, + showWorkpadManager: PropTypes.bool.isRequired, + setShowWorkpadManager: PropTypes.func.isRequired, }; diff --git a/x-pack/plugins/canvas/public/components/workpad_loader/workpad_create.js b/x-pack/plugins/canvas/public/components/workpad_loader/workpad_create.js index 77f22a8252dab..8feedeb7546d5 100644 --- a/x-pack/plugins/canvas/public/components/workpad_loader/workpad_create.js +++ b/x-pack/plugins/canvas/public/components/workpad_loader/workpad_create.js @@ -9,14 +9,7 @@ import PropTypes from 'prop-types'; import { EuiButton } from '@elastic/eui'; export const WorkpadCreate = ({ createPending, onCreate, ...rest }) => ( - + Create workpad ); diff --git a/x-pack/plugins/canvas/public/components/workpad_loader/workpad_dropzone/workpad_dropzone.scss b/x-pack/plugins/canvas/public/components/workpad_loader/workpad_dropzone/workpad_dropzone.scss index b7bdff7ca6e17..88480374d8f1e 100644 --- a/x-pack/plugins/canvas/public/components/workpad_loader/workpad_dropzone/workpad_dropzone.scss +++ b/x-pack/plugins/canvas/public/components/workpad_loader/workpad_dropzone/workpad_dropzone.scss @@ -10,3 +10,14 @@ .canvasWorkpad__dropzoneTable .euiTable { background-color: transparent; } + +.canvasWorkpad__dropzoneTable--tags { + + .euiTableCellContent { + flex-wrap: wrap; + } + + .euiHealth { + width: 100%; + } +} \ No newline at end of file diff --git a/x-pack/plugins/canvas/public/components/workpad_loader/workpad_loader.js b/x-pack/plugins/canvas/public/components/workpad_loader/workpad_loader.js index 56976adf4e74c..70a951c892eb3 100644 --- a/x-pack/plugins/canvas/public/components/workpad_loader/workpad_loader.js +++ b/x-pack/plugins/canvas/public/components/workpad_loader/workpad_loader.js @@ -10,21 +10,15 @@ import { EuiFlexGroup, EuiFlexItem, EuiBasicTable, - EuiBetaBadge, EuiButtonIcon, - EuiLink, EuiPagination, EuiSpacer, EuiButton, EuiToolTip, - EuiModalHeader, - EuiModalHeaderTitle, - EuiModalBody, EuiEmptyPrompt, } from '@elastic/eui'; import { sortByOrder } from 'lodash'; import moment from 'moment'; -import { documentationLinks } from '../../lib/documentation_links'; import { ConfirmModal } from '../confirm_modal'; import { Link } from '../link'; import { Paginate } from '../paginate'; @@ -282,7 +276,6 @@ export class WorkpadLoader extends React.PureComponent { let deleteButton = ( + {`Download (${selectedWorkpads.length})`} ); @@ -347,62 +340,44 @@ export class WorkpadLoader extends React.PureComponent { {pagination => ( - -
- - - Canvas workpads - - - + + + {selectedWorkpads.length > 0 && ( + + {downloadButton} + {deleteButton} + + )} + + { + pagination.setPage(0); + this.props.findWorkpads(text); + }} /> - - - Docs - - - - - - - {selectedWorkpads.length > 0 && ( - - {downloadButton} - {deleteButton} - - )} - - { - pagination.setPage(0); - this.props.findWorkpads(text); - }} - /> - - - - - - {uploadButton} - {createButton} - - + + + + {uploadButton} + {createButton} -
-
- - {createPending &&
Creating Workpad...
} + + + + + + {createPending &&
Creating Workpad...
} - {!createPending && isLoading &&
Fetching Workpads...
} + {!createPending && isLoading && ( +
Fetching Workpads...
+ )} - {!createPending && !isLoading && this.renderWorkpadTable(pagination)} + {!createPending && !isLoading && this.renderWorkpadTable(pagination)} - {confirmModal} -
+ {confirmModal}
)}
diff --git a/x-pack/plugins/canvas/public/components/workpad_loader/workpad_loader.scss b/x-pack/plugins/canvas/public/components/workpad_loader/workpad_loader.scss new file mode 100644 index 0000000000000..62ff2f1742185 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_loader/workpad_loader.scss @@ -0,0 +1,14 @@ +.canvasWorkpad__upload--compressed { + + &.euiFilePicker--compressed.euiFilePicker { + + .euiFilePicker__prompt { + height: $euiSizeXXL; + padding: $euiSizeM; + padding-left: $euiSizeXXL; + } + .euiFilePicker__icon { + top: $euiSizeM; + } + } +} \ No newline at end of file diff --git a/x-pack/plugins/canvas/public/components/workpad_loader/workpad_search.js b/x-pack/plugins/canvas/public/components/workpad_loader/workpad_search.js index b11d144804e89..91d8bd7117ba1 100644 --- a/x-pack/plugins/canvas/public/components/workpad_loader/workpad_search.js +++ b/x-pack/plugins/canvas/public/components/workpad_loader/workpad_search.js @@ -30,7 +30,6 @@ export class WorkpadSearch extends React.PureComponent { render() { return ( ( uploadWorkpad(file, onUpload)} /> diff --git a/x-pack/plugins/canvas/public/components/workpad_manager/index.js b/x-pack/plugins/canvas/public/components/workpad_manager/index.js new file mode 100644 index 0000000000000..64bb61faabe20 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_manager/index.js @@ -0,0 +1,7 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export { WorkpadManager } from './workpad_manager'; diff --git a/x-pack/plugins/canvas/public/components/workpad_manager/workpad_manager.js b/x-pack/plugins/canvas/public/components/workpad_manager/workpad_manager.js new file mode 100644 index 0000000000000..31b17cb07bc62 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_manager/workpad_manager.js @@ -0,0 +1,76 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React, { Fragment } from 'react'; +import PropTypes from 'prop-types'; +import { + EuiTabbedContent, + EuiModalHeader, + EuiModalHeaderTitle, + EuiModalBody, + EuiSpacer, + EuiFlexGroup, + EuiFlexItem, + EuiBetaBadge, + EuiLink, +} from '@elastic/eui'; +import { WorkpadLoader } from '../workpad_loader'; +import { WorkpadTemplates } from '../workpad_templates'; +import { documentationLinks } from '../../lib/documentation_links'; + +export const WorkpadManager = ({ onClose }) => { + const tabs = [ + { + id: 'workpadLoader', + name: 'My Workpads', + content: ( + + + + + ), + }, + { + id: 'workpadTemplates', + name: 'Templates', + content: ( + + + + + ), + }, + ]; + return ( + + + + + Canvas workpads + + + + + + + Docs + + + + + + + + + ); +}; + +WorkpadManager.propTypes = { + onClose: PropTypes.func, +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_templates/index.js b/x-pack/plugins/canvas/public/components/workpad_templates/index.js new file mode 100644 index 0000000000000..4e1cbe7e95329 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_templates/index.js @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import PropTypes from 'prop-types'; +import { compose, getContext, withHandlers, withProps } from 'recompose'; +import * as workpadService from '../../lib/workpad_service'; +import { notify } from '../../lib/notify'; +import { getId } from '../../lib/get_id'; +import { templatesRegistry } from '../../lib/templates_registry'; +import { tagsRegistry } from '../../lib/tags_registry'; +import { WorkpadTemplates as Component } from './workpad_templates'; + +export const WorkpadTemplates = compose( + getContext({ + router: PropTypes.object, + }), + withProps(() => ({ + templates: templatesRegistry.toJS(), + uniqueTags: tagsRegistry.toJS(), + })), + withHandlers({ + // Clone workpad given an id + cloneWorkpad: props => workpad => { + workpad.id = getId('workpad'); + return workpadService + .create(workpad) + .then(() => props.router.navigateTo('loadWorkpad', { id: workpad.id, page: 1 })) + .catch(err => notify.error(err, { title: `Couldn't clone workpad template` })); + }, + }) +)(Component); diff --git a/x-pack/plugins/canvas/public/components/workpad_templates/workpad_templates.js b/x-pack/plugins/canvas/public/components/workpad_templates/workpad_templates.js new file mode 100644 index 0000000000000..8752d7be19612 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_templates/workpad_templates.js @@ -0,0 +1,210 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React, { Fragment } from 'react'; +import PropTypes from 'prop-types'; +import { + EuiFlexGroup, + EuiFlexItem, + EuiBasicTable, + EuiPagination, + EuiSpacer, + EuiHealth, + EuiButtonEmpty, + EuiSearchBar, +} from '@elastic/eui'; +import { get, sortByOrder } from 'lodash'; +import { getId } from '../../lib/get_id'; +import { Paginate } from '../paginate'; + +export class WorkpadTemplates extends React.PureComponent { + static propTypes = { + cloneWorkpad: PropTypes.func.isRequired, + templates: PropTypes.object, + uniqueTags: PropTypes.object, + }; + + state = { + sortField: 'name', + sortDirection: 'asc', + pageSize: 10, + searchTerm: '', + filterTags: [], + }; + + onTableChange = ({ sort = {} }) => { + const { field: sortField, direction: sortDirection } = sort; + this.setState({ + sortField, + sortDirection, + }); + }; + + onSearch = ({ query }) => { + const clauses = get(query, 'ast._clauses', []); + + const filterTags = []; + const searchTerms = []; + + clauses.forEach(clause => { + const { type, field, value } = clause; + // extract terms from the query AST + if (type === 'term') searchTerms.push(value); + // extracts tags from the query AST + else if (field === 'tags') filterTags.push(value); + }); + + this.setState({ searchTerm: searchTerms.join(' '), filterTags }); + }; + + cloneTemplate = template => this.props.cloneWorkpad(template).then(() => this.props.onClose()); + + renderWorkpadTable = ({ rows, pageNumber, totalPages, setPage }) => { + const { uniqueTags } = this.props; + const { sortField, sortDirection } = this.state; + + const columns = [ + { + field: 'name', + name: 'Template Name', + sortable: true, + width: '30%', + dataType: 'string', + render: (name, template) => { + const templateName = template.name.length ? template.name : {template.id}; + + return ( + this.cloneTemplate(template)} + aria-label={`Clone workpad template "${templateName}"`} + type="link" + > + {templateName} + + ); + }, + }, + { + field: 'help', + name: 'Description', + sortable: false, + dataType: 'string', + width: '30%', + }, + { + field: 'tags', + name: 'Tags', + sortable: false, + dataType: 'string', + width: '30%', + render: tags => { + if (!tags) return 'No tags'; + return tags.map(tag => ( + + {tag} + + )); + }, + }, + ]; + + const sorting = { + sort: { + field: sortField, + direction: sortDirection, + }, + }; + + return ( + + + + + + + + + + ); + }; + + renderSearch = () => { + let { uniqueTags } = this.props; + const { searchTerm } = this.state; + + uniqueTags = Object.values(uniqueTags); + + const filters = [ + { + type: 'field_value_selection', + field: 'tags', + name: 'Tags', + multiSelect: true, + options: uniqueTags.map(({ name, color }) => ({ + value: name, + name: name, + view: ( + + {name} + + ), + })), + }, + ]; + + return ( + + ); + }; + + render() { + const { templates } = this.props; + const { sortField, sortDirection, searchTerm, filterTags } = this.state; + const sortedTemplates = sortByOrder(templates, [sortField, 'name'], [sortDirection, 'asc']); + + const filteredTemplates = sortedTemplates.filter(({ name = '', help = '', tags = [] }) => { + const tagMatch = filterTags.length + ? filterTags.every(filterTag => tags.indexOf(filterTag) > -1) + : true; + + const lowercaseSearch = searchTerm.toLowerCase(); + const textMatch = lowercaseSearch + ? name.toLowerCase().indexOf(lowercaseSearch) > -1 || + help.toLowerCase().indexOf(lowercaseSearch) > -1 + : true; + + return tagMatch && textMatch; + }); + + return ( + + {pagination => ( + + {this.renderSearch()} + + {this.renderWorkpadTable(pagination)} + + )} + + ); + } +} diff --git a/x-pack/plugins/canvas/public/lib/tag.js b/x-pack/plugins/canvas/public/lib/tag.js new file mode 100644 index 0000000000000..62e762edabc1f --- /dev/null +++ b/x-pack/plugins/canvas/public/lib/tag.js @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export function Tag(config) { + // The name of the tag + this.name = config.name; + + // color of the tag to display in a list + this.color = config.color; +} diff --git a/x-pack/plugins/canvas/public/lib/tags_registry.js b/x-pack/plugins/canvas/public/lib/tags_registry.js new file mode 100644 index 0000000000000..b0f0386cf706d --- /dev/null +++ b/x-pack/plugins/canvas/public/lib/tags_registry.js @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { Registry } from '@kbn/interpreter/common'; +import { Tag } from './tag'; + +class TagRegistry extends Registry { + wrapper(obj) { + return new Tag(obj); + } +} + +export const tagsRegistry = new TagRegistry(); diff --git a/x-pack/plugins/canvas/public/lib/template.js b/x-pack/plugins/canvas/public/lib/template.js new file mode 100644 index 0000000000000..232e47e86c4a1 --- /dev/null +++ b/x-pack/plugins/canvas/public/lib/template.js @@ -0,0 +1,49 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { tagsRegistry } from '../lib/tags_registry'; +import { getDefaultWorkpad } from '../state/defaults'; +import { getId } from './get_id'; + +const defaultWorkpad = getDefaultWorkpad(); + +export function Template(config) { + // The name of the template + this.name = config.name; + + // Use this to set a more friendly name + this.displayName = config.displayName || this.name; + + this.id = config.id || getId('workpad'); + + // A sentence or few about what this template contains + this.help = config.help || ''; + + // Tags for categorizing the template + this.tags = config.tags || []; + + this.tags.forEach(tag => { + if (!tagsRegistry.get(tag)) tagsRegistry.register(() => ({ name: tag, color: '#666666' })); + }); + + this.width = config.width || defaultWorkpad.width; + + this.height = config.height || defaultWorkpad.height; + + this.page = config.page || defaultWorkpad.page; + + this.pages = config.pages || defaultWorkpad.pages; + + this.colors = config.colors || defaultWorkpad.colors; + + this['@timestamp'] = config['@timestamp'] || defaultWorkpad['@timestamp']; + + this['@created'] = config['@created'] || defaultWorkpad['@created']; + + this.assets = config.assets || {}; + + this.css = config.css || defaultWorkpad.css; +} diff --git a/x-pack/plugins/canvas/public/lib/templates_registry.js b/x-pack/plugins/canvas/public/lib/templates_registry.js new file mode 100644 index 0000000000000..36598d0e4250d --- /dev/null +++ b/x-pack/plugins/canvas/public/lib/templates_registry.js @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { Registry } from '@kbn/interpreter/common'; +import { Template } from './template'; + +class TemplateRegistry extends Registry { + wrapper(obj) { + return new Template(obj); + } +} + +export const templatesRegistry = new TemplateRegistry(); diff --git a/x-pack/plugins/canvas/public/style/index.scss b/x-pack/plugins/canvas/public/style/index.scss index 682c9a6edc9fe..300a060040e12 100644 --- a/x-pack/plugins/canvas/public/style/index.scss +++ b/x-pack/plugins/canvas/public/style/index.scss @@ -52,5 +52,6 @@ @import '../components/toolbar/toolbar'; @import '../components/toolbar/tray/tray'; @import '../components/workpad/workpad'; +@import '../components/workpad_loader/workpad_loader'; @import '../components/workpad_loader/workpad_dropzone/workpad_dropzone'; @import '../components/workpad_page/workpad_page'; diff --git a/x-pack/plugins/canvas/tasks/helpers/webpack.plugins.js b/x-pack/plugins/canvas/tasks/helpers/webpack.plugins.js index 04a3e5a7cc5bd..e87ee70bdc9cc 100644 --- a/x-pack/plugins/canvas/tasks/helpers/webpack.plugins.js +++ b/x-pack/plugins/canvas/tasks/helpers/webpack.plugins.js @@ -26,6 +26,8 @@ export function getWebpackConfig({ devtool, watch } = {}) { 'uis/arguments/all': path.join(sourceDir, 'uis/arguments/register.js'), 'functions/browser/all': path.join(sourceDir, 'functions/browser/register.js'), 'functions/common/all': path.join(sourceDir, 'functions/common/register.js'), + 'templates/all': path.join(sourceDir, 'templates/register.js'), + 'tags/all': path.join(sourceDir, 'uis/tags/register.js'), }, // there were problems with the node and web targets since this code is actually diff --git a/x-pack/plugins/graph/public/graphClientWorkspace.js b/x-pack/plugins/graph/public/graphClientWorkspace.js index 325f7999b29e8..b7427ef2f0bf3 100644 --- a/x-pack/plugins/graph/public/graphClientWorkspace.js +++ b/x-pack/plugins/graph/public/graphClientWorkspace.js @@ -15,7 +15,7 @@ module.exports = (function () { const dataForServer = JSON.stringify(request); $.ajax({ type: 'POST', - url: 'http://localhost:9200/' + indexName + '/_xpack/graph/_explore', + url: 'http://localhost:9200/' + indexName + '/_graph/explore', dataType: 'json', contentType: 'application/json;charset=utf-8', async: true, diff --git a/x-pack/plugins/graph/public/templates/settings.html b/x-pack/plugins/graph/public/templates/settings.html index 3711e36ee0fed..d187567fb9085 100644 --- a/x-pack/plugins/graph/public/templates/settings.html +++ b/x-pack/plugins/graph/public/templates/settings.html @@ -51,7 +51,7 @@ class="list-group-item list-group-item--noBorder" ng-if="(workspace !== null) && (configPanel === 'lastRequest')" > - http://host:port/{{selectedIndex.name}}/_xpack/graph/_explore + http://host:port/{{selectedIndex.name}}/_graph/explore