From 6df13523285ed06e948247ddecd553f584f1989d Mon Sep 17 00:00:00 2001 From: rdrew Date: Mon, 20 Nov 2023 16:00:04 -0400 Subject: [PATCH] changed css --- .nvmrc | 1 + .yarn/install-state.gz | Bin 0 -> 1060239 bytes .yarn/releases/yarn-classic.cjs | 147529 +++++++++++++++ .yarnrc.yml | 3 + css/base/{ => pcss}/base.pcss.css | 0 css/base/{ => pcss}/fonts.pcss.css | 0 css/base/{ => pcss}/media-queries.pcss.css | 0 css/base/{ => pcss}/variables.pcss.css | 0 css/base/variables.css | 1 + .../{ => pcss}/menu-sidebar.pcss.css | 0 .../{ => pcss}/nav-button-mobile.pcss.css | 0 .../{ => pcss}/nav-primary-button.pcss.css | 0 .../{ => pcss}/nav-primary-no-js.pcss.css | 0 .../{ => pcss}/nav-primary-wide.pcss.css | 0 .../{ => pcss}/nav-primary.pcss.css | 0 .../{ => pcss}/nav-secondary.pcss.css | 0 .../{ => pcss}/wide-nav-expand.pcss.css | 0 .../{ => pcss}/action-links.pcss.css | 0 .../{ => pcss}/ajax-progress.module.pcss.css | 0 .../autocomplete-loading.module.pcss.css | 0 css/components/{ => pcss}/block.pcss.css | 0 css/components/{ => pcss}/book.pcss.css | 0 css/components/{ => pcss}/breadcrumb.pcss.css | 0 css/components/{ => pcss}/button.pcss.css | 0 css/components/{ => pcss}/cke-dialog.pcss.css | 0 .../{ => pcss}/color-picker.pcss.css | 0 css/components/{ => pcss}/comments.pcss.css | 0 .../container-inline.module.pcss.css | 0 .../{ => pcss}/content-moderation.pcss.css | 0 css/components/{ => pcss}/details.pcss.css | 0 css/components/{ => pcss}/dropbutton.pcss.css | 0 .../{ => pcss}/embedded-media.pcss.css | 0 css/components/{ => pcss}/feed.pcss.css | 0 css/components/{ => pcss}/field.pcss.css | 0 css/components/{ => pcss}/fieldset.pcss.css | 0 css/components/{ => pcss}/footer.pcss.css | 0 .../{ => pcss}/form-boolean.pcss.css | 0 .../{ => pcss}/form-select.pcss.css | 0 css/components/{ => pcss}/form-text.pcss.css | 0 .../{ => pcss}/form-textarea.pcss.css | 0 css/components/{ => pcss}/form.pcss.css | 0 css/components/{ => pcss}/forum.pcss.css | 0 .../{ => pcss}/header-buttons-mobile.pcss.css | 0 .../{ => pcss}/header-navigation.pcss.css | 0 .../{ => pcss}/header-search-narrow.pcss.css | 0 .../{ => pcss}/header-search-wide.pcss.css | 0 .../{ => pcss}/header-site-branding.pcss.css | 0 .../{ => pcss}/header-sticky-toggle.pcss.css | 0 css/components/{ => pcss}/hero.pcss.css | 0 css/components/{ => pcss}/links.pcss.css | 0 .../{ => pcss}/maintenance-page.pcss.css | 0 css/components/{ => pcss}/messages.pcss.css | 0 .../node-preview-container.pcss.css | 0 .../{ => pcss}/node-teaser.pcss.css | 0 css/components/{ => pcss}/node.pcss.css | 0 css/components/{ => pcss}/page-title.pcss.css | 0 css/components/{ => pcss}/pager.pcss.css | 0 .../{ => pcss}/powered-by-block.pcss.css | 0 css/components/{ => pcss}/progress.pcss.css | 0 .../{ => pcss}/search-results.pcss.css | 0 .../{ => pcss}/site-header.pcss.css | 0 css/components/{ => pcss}/skip-link.pcss.css | 0 css/components/{ => pcss}/table.pcss.css | 0 css/components/{ => pcss}/tabledrag.pcss.css | 0 css/components/{ => pcss}/tabs.pcss.css | 0 css/components/{ => pcss}/tags.pcss.css | 0 .../{ => pcss}/text-content.pcss.css | 0 css/components/{ => pcss}/ui-dialog.pcss.css | 0 .../{ => pcss}/vertical-tabs.pcss.css | 0 css/components/{ => pcss}/wide-image.pcss.css | 0 css/layout/{ => pcss}/grid.pcss.css | 0 .../layout-builder-fourcol-section.pcss.css | 0 .../layout-builder-threecol-section.pcss.css | 0 .../layout-builder-twocol-section.pcss.css | 0 .../{ => pcss}/layout-content-medium.pcss.css | 0 .../{ => pcss}/layout-content-narrow.pcss.css | 0 .../layout-discovery-section-layout.pcss.css | 0 css/layout/{ => pcss}/layout-footer.pcss.css | 0 css/layout/{ => pcss}/layout-sidebar.pcss.css | 0 .../{ => pcss}/layout-views-grid.pcss.css | 0 css/layout/{ => pcss}/layout.pcss.css | 0 .../{ => pcss}/region-content-below.pcss.css | 0 css/layout/{ => pcss}/region-content.pcss.css | 0 css/layout/{ => pcss}/region-hero.pcss.css | 0 .../{ => pcss}/region-secondary-menu.pcss.css | 0 css/layout/{ => pcss}/region.pcss.css | 0 css/layout/{ => pcss}/social-bar.pcss.css | 0 css/layout/{ => pcss}/views.pcss.css | 0 css/theme/{ => pcss}/filter.theme.pcss.css | 0 package.json | 3 +- yarn.lock | 182 +- 91 files changed, 147627 insertions(+), 92 deletions(-) create mode 100644 .nvmrc create mode 100644 .yarn/install-state.gz create mode 100755 .yarn/releases/yarn-classic.cjs create mode 100644 .yarnrc.yml rename css/base/{ => pcss}/base.pcss.css (100%) rename css/base/{ => pcss}/fonts.pcss.css (100%) rename css/base/{ => pcss}/media-queries.pcss.css (100%) rename css/base/{ => pcss}/variables.pcss.css (100%) rename css/components/navigation/{ => pcss}/menu-sidebar.pcss.css (100%) rename css/components/navigation/{ => pcss}/nav-button-mobile.pcss.css (100%) rename css/components/navigation/{ => pcss}/nav-primary-button.pcss.css (100%) rename css/components/navigation/{ => pcss}/nav-primary-no-js.pcss.css (100%) rename css/components/navigation/{ => pcss}/nav-primary-wide.pcss.css (100%) rename css/components/navigation/{ => pcss}/nav-primary.pcss.css (100%) rename css/components/navigation/{ => pcss}/nav-secondary.pcss.css (100%) rename css/components/navigation/{ => pcss}/wide-nav-expand.pcss.css (100%) rename css/components/{ => pcss}/action-links.pcss.css (100%) rename css/components/{ => pcss}/ajax-progress.module.pcss.css (100%) rename css/components/{ => pcss}/autocomplete-loading.module.pcss.css (100%) rename css/components/{ => pcss}/block.pcss.css (100%) rename css/components/{ => pcss}/book.pcss.css (100%) rename css/components/{ => pcss}/breadcrumb.pcss.css (100%) rename css/components/{ => pcss}/button.pcss.css (100%) rename css/components/{ => pcss}/cke-dialog.pcss.css (100%) rename css/components/{ => pcss}/color-picker.pcss.css (100%) rename css/components/{ => pcss}/comments.pcss.css (100%) rename css/components/{ => pcss}/container-inline.module.pcss.css (100%) rename css/components/{ => pcss}/content-moderation.pcss.css (100%) rename css/components/{ => pcss}/details.pcss.css (100%) rename css/components/{ => pcss}/dropbutton.pcss.css (100%) rename css/components/{ => pcss}/embedded-media.pcss.css (100%) rename css/components/{ => pcss}/feed.pcss.css (100%) rename css/components/{ => pcss}/field.pcss.css (100%) rename css/components/{ => pcss}/fieldset.pcss.css (100%) rename css/components/{ => pcss}/footer.pcss.css (100%) rename css/components/{ => pcss}/form-boolean.pcss.css (100%) rename css/components/{ => pcss}/form-select.pcss.css (100%) rename css/components/{ => pcss}/form-text.pcss.css (100%) rename css/components/{ => pcss}/form-textarea.pcss.css (100%) rename css/components/{ => pcss}/form.pcss.css (100%) rename css/components/{ => pcss}/forum.pcss.css (100%) rename css/components/{ => pcss}/header-buttons-mobile.pcss.css (100%) rename css/components/{ => pcss}/header-navigation.pcss.css (100%) rename css/components/{ => pcss}/header-search-narrow.pcss.css (100%) rename css/components/{ => pcss}/header-search-wide.pcss.css (100%) rename css/components/{ => pcss}/header-site-branding.pcss.css (100%) rename css/components/{ => pcss}/header-sticky-toggle.pcss.css (100%) rename css/components/{ => pcss}/hero.pcss.css (100%) rename css/components/{ => pcss}/links.pcss.css (100%) rename css/components/{ => pcss}/maintenance-page.pcss.css (100%) rename css/components/{ => pcss}/messages.pcss.css (100%) rename css/components/{ => pcss}/node-preview-container.pcss.css (100%) rename css/components/{ => pcss}/node-teaser.pcss.css (100%) rename css/components/{ => pcss}/node.pcss.css (100%) rename css/components/{ => pcss}/page-title.pcss.css (100%) rename css/components/{ => pcss}/pager.pcss.css (100%) rename css/components/{ => pcss}/powered-by-block.pcss.css (100%) rename css/components/{ => pcss}/progress.pcss.css (100%) rename css/components/{ => pcss}/search-results.pcss.css (100%) rename css/components/{ => pcss}/site-header.pcss.css (100%) rename css/components/{ => pcss}/skip-link.pcss.css (100%) rename css/components/{ => pcss}/table.pcss.css (100%) rename css/components/{ => pcss}/tabledrag.pcss.css (100%) rename css/components/{ => pcss}/tabs.pcss.css (100%) rename css/components/{ => pcss}/tags.pcss.css (100%) rename css/components/{ => pcss}/text-content.pcss.css (100%) rename css/components/{ => pcss}/ui-dialog.pcss.css (100%) rename css/components/{ => pcss}/vertical-tabs.pcss.css (100%) rename css/components/{ => pcss}/wide-image.pcss.css (100%) rename css/layout/{ => pcss}/grid.pcss.css (100%) rename css/layout/{ => pcss}/layout-builder-fourcol-section.pcss.css (100%) rename css/layout/{ => pcss}/layout-builder-threecol-section.pcss.css (100%) rename css/layout/{ => pcss}/layout-builder-twocol-section.pcss.css (100%) rename css/layout/{ => pcss}/layout-content-medium.pcss.css (100%) rename css/layout/{ => pcss}/layout-content-narrow.pcss.css (100%) rename css/layout/{ => pcss}/layout-discovery-section-layout.pcss.css (100%) rename css/layout/{ => pcss}/layout-footer.pcss.css (100%) rename css/layout/{ => pcss}/layout-sidebar.pcss.css (100%) rename css/layout/{ => pcss}/layout-views-grid.pcss.css (100%) rename css/layout/{ => pcss}/layout.pcss.css (100%) rename css/layout/{ => pcss}/region-content-below.pcss.css (100%) rename css/layout/{ => pcss}/region-content.pcss.css (100%) rename css/layout/{ => pcss}/region-hero.pcss.css (100%) rename css/layout/{ => pcss}/region-secondary-menu.pcss.css (100%) rename css/layout/{ => pcss}/region.pcss.css (100%) rename css/layout/{ => pcss}/social-bar.pcss.css (100%) rename css/layout/{ => pcss}/views.pcss.css (100%) rename css/theme/{ => pcss}/filter.theme.pcss.css (100%) diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..3355ef1 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +Now using node v12.22.12 (npm v6.14.16) diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz new file mode 100644 index 0000000000000000000000000000000000000000..35d95e7a2b6028bb55211a6e3b30b99f4fa24b86 GIT binary patch literal 1060239 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�it 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 z

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\fDz=KnRH?W_p%1?U=Wf=Vd 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

P+441&Z-X&Un$!Lsa) z7PlUHwt`wgXi*s-zw}NMv%|+@E8Zjh4^hsoD0v914^TY@wu0$J$B5cVsXgNl;o?Q% zx9HaeB}LKtFqA(nLnY#Xr34&)X?rk&`%du22yObMIJ8$=kuh*^;WC}}5_oN++ZQc# z?%M>la;Fmr5hIJ2U1)8J>E}i#7mZPKTwJ#OFRv}4&m7e6?w;0n>))=G^>4k3@1Z2| za(+Yaxg>*J9&UydmYD_+_*Nv)LPej@E-k1;X&cTddZpzE(??O|%>5u8n;Z3}X7nfM z^dV0@sGEytZ6Vr1s$>cV<;*!VcWGyoG;lPpQ|Y5C&<;T#{c2pOh+h-r%tU+ho5t4iDL!Vc{KH$wf?fHKE zPcPMnyB7j`rC;gBt9R)n`I=V;<;$#CQ5DX#>5xNjLX`j9z?G zTvLo!0-s*b&&?A?t#qi@jih=$oE+Jfo?@wBjl!Wv2-l-fkGG3bURSO>S0Egg=?gDh z90<6F++Yn8564fx(Rz&ufVr?D89EiYckJAgIH0n!*db>D>F8Eg74;+vc;#7B>uf=* zhW(5Vc)@(v2}t*G^tyD{&mK5$Z}m_CxRzUQyn2^cs;_4?V^wDrBLtksURgPbD?8dU zly59{mv(3!o#?LO7W(7FN^-r}q_{?Q2*im{iDU@;6+Hp&h*fC4)0CqKY8;*RZRqUH ztq`RRm>hOo>zrF7y3AsgTxRK*DSheliEt;(odkNBms#8zPi_9AtlM&>jFBVSnEVe>!4#G()Y9VArA%5iTxr4U1!eYH2?DYR&kp{h4Am|$LlSI zw_U{ddRlbKt)a`dQtuXW^I7L#iC}VN)g0Cnv1y|ToM|@|#0ji$K;>?@XXUpby4}Ra zcQ4%vi+hpgd}w$LZL29H5wxArY#=mpaiJZp=$f`r-^JyPfTf^b!L}2*q0r#)`e{)J zM;VkVqW;dOj?s}~s6edum-o~1;#jZaKM-}bzAWu zWnhHywmyQu_W8biJ%4&y*Fx~E*X_(y{o7^SCK)F#3hNMjKwJxJaL*l6t6h|T7lu6a zbOHUXfmC=yp>uZ>d4sro@S=fbP+?bqw3B&UAIRqkjiL}JSpx(zvY(T3xPoYAl=Gsm zo2`tb5x#k)ZlgD9yU*ETl^OP8_&VdFp|C90qY&Kf!l}XpfeC@zCQif{a;6ssbL&FZ z3klnL&ro64dqY5MhowK(=~gbE4uPWC&iCc(`Cq@RtF588Ubyp3TzK<@3_%dvFwU^~ z9BhN zy6%ME#5hYBqH-Wxv+1xuzfg3|2WmwKMp8gaU7$~kkVC}MMaWgaW>?=1V}&6=JE^eg z`2a^d>RiTy;8NLDOjiC$Xz@?s=+KOk7^Kffar=S^Ybu*jmqq8b9`EduvD@?KySdh< zyY;VMuA1B2dI2x5&0nr-6vrC@zbnj(#^LLnQREV4DdJ6B03~w-cL16=Fm5cp!X{Ei z(bgwy-f=KTQ8=z5TBYD2kkU*T5fca`wE4yfj`j98=6f%!moa zD3Yqh$;EobE2G#W16Pw^&+(< ziglK*MQsBesVexZ<5tg|E&sglAJ&~7@9D=oy{7N4#o$}7;H3ilYYgt%ug;B;!5iFW zST25c6<>c9U%F*`G_I|MPnl#<^3vaA`ryM{MUdPFy2$Zzp>~6kI@PY}>Edii z%F{`GROLDq@o_nST+II{Y~1pJ&3o?yZ+F| z-|s$OPqVjP%FF%;`[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 z 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

)laqHsyf1sK?2&W3N`$ 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 literal 0 HcmV?d00001 diff --git a/.yarn/releases/yarn-classic.cjs b/.yarn/releases/yarn-classic.cjs new file mode 100755 index 0000000..0fefc25 --- /dev/null +++ b/.yarn/releases/yarn-classic.cjs @@ -0,0 +1,147529 @@ +#!/usr/bin/env node +module.exports = +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 517); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +module.exports = require("path"); + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = __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 }; +} + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _promise = __webpack_require__(224); + +var _promise2 = _interopRequireDefault(_promise); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (fn) { + return function () { + var gen = fn.apply(this, arguments); + return new _promise2.default(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 _promise2.default.resolve(value).then(function (value) { + step("next", value); + }, function (err) { + step("throw", err); + }); + } + } + + return step("next"); + }); + }; +}; + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + +module.exports = require("util"); + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + +module.exports = require("fs"); + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getFirstSuitableFolder = exports.readFirstAvailableStream = exports.makeTempDir = exports.hardlinksWork = exports.writeFilePreservingEol = exports.getFileSizeOnDisk = exports.walk = exports.symlink = exports.find = exports.readJsonAndFile = exports.readJson = exports.readFileAny = exports.hardlinkBulk = exports.copyBulk = exports.unlink = exports.glob = exports.link = exports.chmod = exports.lstat = exports.exists = exports.mkdirp = exports.stat = exports.access = exports.rename = exports.readdir = exports.realpath = exports.readlink = exports.writeFile = exports.open = exports.readFileBuffer = exports.lockQueue = exports.constants = undefined; + +var _asyncToGenerator2; + +function _load_asyncToGenerator() { + return _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(2)); +} + +let buildActionsForCopy = (() => { + var _ref = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (queue, events, possibleExtraneous, reporter) { + + // + let build = (() => { + var _ref5 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (data) { + const src = data.src, + dest = data.dest, + type = data.type; + + const onFresh = data.onFresh || noop; + const onDone = data.onDone || noop; + + // TODO https://github.com/yarnpkg/yarn/issues/3751 + // related to bundled dependencies handling + if (files.has(dest.toLowerCase())) { + reporter.verbose(`The case-insensitive file ${dest} shouldn't be copied twice in one bulk copy`); + } else { + files.add(dest.toLowerCase()); + } + + if (type === 'symlink') { + yield mkdirp((_path || _load_path()).default.dirname(dest)); + onFresh(); + actions.symlink.push({ + dest, + linkname: src + }); + onDone(); + return; + } + + if (events.ignoreBasenames.indexOf((_path || _load_path()).default.basename(src)) >= 0) { + // ignored file + return; + } + + const srcStat = yield lstat(src); + let srcFiles; + + if (srcStat.isDirectory()) { + srcFiles = yield readdir(src); + } + + let destStat; + try { + // try accessing the destination + destStat = yield lstat(dest); + } catch (e) { + // proceed if destination doesn't exist, otherwise error + if (e.code !== 'ENOENT') { + throw e; + } + } + + // if destination exists + if (destStat) { + const bothSymlinks = srcStat.isSymbolicLink() && destStat.isSymbolicLink(); + const bothFolders = srcStat.isDirectory() && destStat.isDirectory(); + const bothFiles = srcStat.isFile() && destStat.isFile(); + + // EINVAL access errors sometimes happen which shouldn't because node shouldn't be giving + // us modes that aren't valid. investigate this, it's generally safe to proceed. + + /* if (srcStat.mode !== destStat.mode) { + try { + await access(dest, srcStat.mode); + } catch (err) {} + } */ + + if (bothFiles && artifactFiles.has(dest)) { + // this file gets changed during build, likely by a custom install script. Don't bother checking it. + onDone(); + reporter.verbose(reporter.lang('verboseFileSkipArtifact', src)); + return; + } + + if (bothFiles && srcStat.size === destStat.size && (0, (_fsNormalized || _load_fsNormalized()).fileDatesEqual)(srcStat.mtime, destStat.mtime)) { + // we can safely assume this is the same file + onDone(); + reporter.verbose(reporter.lang('verboseFileSkip', src, dest, srcStat.size, +srcStat.mtime)); + return; + } + + if (bothSymlinks) { + const srcReallink = yield readlink(src); + if (srcReallink === (yield readlink(dest))) { + // if both symlinks are the same then we can continue on + onDone(); + reporter.verbose(reporter.lang('verboseFileSkipSymlink', src, dest, srcReallink)); + return; + } + } + + if (bothFolders) { + // mark files that aren't in this folder as possibly extraneous + const destFiles = yield readdir(dest); + invariant(srcFiles, 'src files not initialised'); + + for (var _iterator4 = destFiles, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) { + var _ref6; + + if (_isArray4) { + if (_i4 >= _iterator4.length) break; + _ref6 = _iterator4[_i4++]; + } else { + _i4 = _iterator4.next(); + if (_i4.done) break; + _ref6 = _i4.value; + } + + const file = _ref6; + + if (srcFiles.indexOf(file) < 0) { + const loc = (_path || _load_path()).default.join(dest, file); + possibleExtraneous.add(loc); + + if ((yield lstat(loc)).isDirectory()) { + for (var _iterator5 = yield readdir(loc), _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) { + var _ref7; + + if (_isArray5) { + if (_i5 >= _iterator5.length) break; + _ref7 = _iterator5[_i5++]; + } else { + _i5 = _iterator5.next(); + if (_i5.done) break; + _ref7 = _i5.value; + } + + const file = _ref7; + + possibleExtraneous.add((_path || _load_path()).default.join(loc, file)); + } + } + } + } + } + } + + if (destStat && destStat.isSymbolicLink()) { + yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(dest); + destStat = null; + } + + if (srcStat.isSymbolicLink()) { + onFresh(); + const linkname = yield readlink(src); + actions.symlink.push({ + dest, + linkname + }); + onDone(); + } else if (srcStat.isDirectory()) { + if (!destStat) { + reporter.verbose(reporter.lang('verboseFileFolder', dest)); + yield mkdirp(dest); + } + + const destParts = dest.split((_path || _load_path()).default.sep); + while (destParts.length) { + files.add(destParts.join((_path || _load_path()).default.sep).toLowerCase()); + destParts.pop(); + } + + // push all files to queue + invariant(srcFiles, 'src files not initialised'); + let remaining = srcFiles.length; + if (!remaining) { + onDone(); + } + for (var _iterator6 = srcFiles, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) { + var _ref8; + + if (_isArray6) { + if (_i6 >= _iterator6.length) break; + _ref8 = _iterator6[_i6++]; + } else { + _i6 = _iterator6.next(); + if (_i6.done) break; + _ref8 = _i6.value; + } + + const file = _ref8; + + queue.push({ + dest: (_path || _load_path()).default.join(dest, file), + onFresh, + onDone: function (_onDone) { + function onDone() { + return _onDone.apply(this, arguments); + } + + onDone.toString = function () { + return _onDone.toString(); + }; + + return onDone; + }(function () { + if (--remaining === 0) { + onDone(); + } + }), + src: (_path || _load_path()).default.join(src, file) + }); + } + } else if (srcStat.isFile()) { + onFresh(); + actions.file.push({ + src, + dest, + atime: srcStat.atime, + mtime: srcStat.mtime, + mode: srcStat.mode + }); + onDone(); + } else { + throw new Error(`unsure how to copy this: ${src}`); + } + }); + + return function build(_x5) { + return _ref5.apply(this, arguments); + }; + })(); + + const artifactFiles = new Set(events.artifactFiles || []); + const files = new Set(); + + // initialise events + for (var _iterator = queue, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref2; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref2 = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref2 = _i.value; + } + + const item = _ref2; + + const onDone = item.onDone; + item.onDone = function () { + events.onProgress(item.dest); + if (onDone) { + onDone(); + } + }; + } + events.onStart(queue.length); + + // start building actions + const actions = { + file: [], + symlink: [], + link: [] + }; + + // custom concurrency logic as we're always executing stacks of CONCURRENT_QUEUE_ITEMS queue items + // at a time due to the requirement to push items onto the queue + while (queue.length) { + const items = queue.splice(0, CONCURRENT_QUEUE_ITEMS); + yield Promise.all(items.map(build)); + } + + // simulate the existence of some files to prevent considering them extraneous + for (var _iterator2 = artifactFiles, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { + var _ref3; + + if (_isArray2) { + if (_i2 >= _iterator2.length) break; + _ref3 = _iterator2[_i2++]; + } else { + _i2 = _iterator2.next(); + if (_i2.done) break; + _ref3 = _i2.value; + } + + const file = _ref3; + + if (possibleExtraneous.has(file)) { + reporter.verbose(reporter.lang('verboseFilePhantomExtraneous', file)); + possibleExtraneous.delete(file); + } + } + + for (var _iterator3 = possibleExtraneous, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) { + var _ref4; + + if (_isArray3) { + if (_i3 >= _iterator3.length) break; + _ref4 = _iterator3[_i3++]; + } else { + _i3 = _iterator3.next(); + if (_i3.done) break; + _ref4 = _i3.value; + } + + const loc = _ref4; + + if (files.has(loc.toLowerCase())) { + possibleExtraneous.delete(loc); + } + } + + return actions; + }); + + return function buildActionsForCopy(_x, _x2, _x3, _x4) { + return _ref.apply(this, arguments); + }; +})(); + +let buildActionsForHardlink = (() => { + var _ref9 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (queue, events, possibleExtraneous, reporter) { + + // + let build = (() => { + var _ref13 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (data) { + const src = data.src, + dest = data.dest; + + const onFresh = data.onFresh || noop; + const onDone = data.onDone || noop; + if (files.has(dest.toLowerCase())) { + // Fixes issue https://github.com/yarnpkg/yarn/issues/2734 + // When bulk hardlinking we have A -> B structure that we want to hardlink to A1 -> B1, + // package-linker passes that modules A1 and B1 need to be hardlinked, + // the recursive linking algorithm of A1 ends up scheduling files in B1 to be linked twice which will case + // an exception. + onDone(); + return; + } + files.add(dest.toLowerCase()); + + if (events.ignoreBasenames.indexOf((_path || _load_path()).default.basename(src)) >= 0) { + // ignored file + return; + } + + const srcStat = yield lstat(src); + let srcFiles; + + if (srcStat.isDirectory()) { + srcFiles = yield readdir(src); + } + + const destExists = yield exists(dest); + if (destExists) { + const destStat = yield lstat(dest); + + const bothSymlinks = srcStat.isSymbolicLink() && destStat.isSymbolicLink(); + const bothFolders = srcStat.isDirectory() && destStat.isDirectory(); + const bothFiles = srcStat.isFile() && destStat.isFile(); + + if (srcStat.mode !== destStat.mode) { + try { + yield access(dest, srcStat.mode); + } catch (err) { + // EINVAL access errors sometimes happen which shouldn't because node shouldn't be giving + // us modes that aren't valid. investigate this, it's generally safe to proceed. + reporter.verbose(err); + } + } + + if (bothFiles && artifactFiles.has(dest)) { + // this file gets changed during build, likely by a custom install script. Don't bother checking it. + onDone(); + reporter.verbose(reporter.lang('verboseFileSkipArtifact', src)); + return; + } + + // correct hardlink + if (bothFiles && srcStat.ino !== null && srcStat.ino === destStat.ino) { + onDone(); + reporter.verbose(reporter.lang('verboseFileSkip', src, dest, srcStat.ino)); + return; + } + + if (bothSymlinks) { + const srcReallink = yield readlink(src); + if (srcReallink === (yield readlink(dest))) { + // if both symlinks are the same then we can continue on + onDone(); + reporter.verbose(reporter.lang('verboseFileSkipSymlink', src, dest, srcReallink)); + return; + } + } + + if (bothFolders) { + // mark files that aren't in this folder as possibly extraneous + const destFiles = yield readdir(dest); + invariant(srcFiles, 'src files not initialised'); + + for (var _iterator10 = destFiles, _isArray10 = Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _iterator10[Symbol.iterator]();;) { + var _ref14; + + if (_isArray10) { + if (_i10 >= _iterator10.length) break; + _ref14 = _iterator10[_i10++]; + } else { + _i10 = _iterator10.next(); + if (_i10.done) break; + _ref14 = _i10.value; + } + + const file = _ref14; + + if (srcFiles.indexOf(file) < 0) { + const loc = (_path || _load_path()).default.join(dest, file); + possibleExtraneous.add(loc); + + if ((yield lstat(loc)).isDirectory()) { + for (var _iterator11 = yield readdir(loc), _isArray11 = Array.isArray(_iterator11), _i11 = 0, _iterator11 = _isArray11 ? _iterator11 : _iterator11[Symbol.iterator]();;) { + var _ref15; + + if (_isArray11) { + if (_i11 >= _iterator11.length) break; + _ref15 = _iterator11[_i11++]; + } else { + _i11 = _iterator11.next(); + if (_i11.done) break; + _ref15 = _i11.value; + } + + const file = _ref15; + + possibleExtraneous.add((_path || _load_path()).default.join(loc, file)); + } + } + } + } + } + } + + if (srcStat.isSymbolicLink()) { + onFresh(); + const linkname = yield readlink(src); + actions.symlink.push({ + dest, + linkname + }); + onDone(); + } else if (srcStat.isDirectory()) { + reporter.verbose(reporter.lang('verboseFileFolder', dest)); + yield mkdirp(dest); + + const destParts = dest.split((_path || _load_path()).default.sep); + while (destParts.length) { + files.add(destParts.join((_path || _load_path()).default.sep).toLowerCase()); + destParts.pop(); + } + + // push all files to queue + invariant(srcFiles, 'src files not initialised'); + let remaining = srcFiles.length; + if (!remaining) { + onDone(); + } + for (var _iterator12 = srcFiles, _isArray12 = Array.isArray(_iterator12), _i12 = 0, _iterator12 = _isArray12 ? _iterator12 : _iterator12[Symbol.iterator]();;) { + var _ref16; + + if (_isArray12) { + if (_i12 >= _iterator12.length) break; + _ref16 = _iterator12[_i12++]; + } else { + _i12 = _iterator12.next(); + if (_i12.done) break; + _ref16 = _i12.value; + } + + const file = _ref16; + + queue.push({ + onFresh, + src: (_path || _load_path()).default.join(src, file), + dest: (_path || _load_path()).default.join(dest, file), + onDone: function (_onDone2) { + function onDone() { + return _onDone2.apply(this, arguments); + } + + onDone.toString = function () { + return _onDone2.toString(); + }; + + return onDone; + }(function () { + if (--remaining === 0) { + onDone(); + } + }) + }); + } + } else if (srcStat.isFile()) { + onFresh(); + actions.link.push({ + src, + dest, + removeDest: destExists + }); + onDone(); + } else { + throw new Error(`unsure how to copy this: ${src}`); + } + }); + + return function build(_x10) { + return _ref13.apply(this, arguments); + }; + })(); + + const artifactFiles = new Set(events.artifactFiles || []); + const files = new Set(); + + // initialise events + for (var _iterator7 = queue, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) { + var _ref10; + + if (_isArray7) { + if (_i7 >= _iterator7.length) break; + _ref10 = _iterator7[_i7++]; + } else { + _i7 = _iterator7.next(); + if (_i7.done) break; + _ref10 = _i7.value; + } + + const item = _ref10; + + const onDone = item.onDone || noop; + item.onDone = function () { + events.onProgress(item.dest); + onDone(); + }; + } + events.onStart(queue.length); + + // start building actions + const actions = { + file: [], + symlink: [], + link: [] + }; + + // custom concurrency logic as we're always executing stacks of CONCURRENT_QUEUE_ITEMS queue items + // at a time due to the requirement to push items onto the queue + while (queue.length) { + const items = queue.splice(0, CONCURRENT_QUEUE_ITEMS); + yield Promise.all(items.map(build)); + } + + // simulate the existence of some files to prevent considering them extraneous + for (var _iterator8 = artifactFiles, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) { + var _ref11; + + if (_isArray8) { + if (_i8 >= _iterator8.length) break; + _ref11 = _iterator8[_i8++]; + } else { + _i8 = _iterator8.next(); + if (_i8.done) break; + _ref11 = _i8.value; + } + + const file = _ref11; + + if (possibleExtraneous.has(file)) { + reporter.verbose(reporter.lang('verboseFilePhantomExtraneous', file)); + possibleExtraneous.delete(file); + } + } + + for (var _iterator9 = possibleExtraneous, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) { + var _ref12; + + if (_isArray9) { + if (_i9 >= _iterator9.length) break; + _ref12 = _iterator9[_i9++]; + } else { + _i9 = _iterator9.next(); + if (_i9.done) break; + _ref12 = _i9.value; + } + + const loc = _ref12; + + if (files.has(loc.toLowerCase())) { + possibleExtraneous.delete(loc); + } + } + + return actions; + }); + + return function buildActionsForHardlink(_x6, _x7, _x8, _x9) { + return _ref9.apply(this, arguments); + }; +})(); + +let copyBulk = exports.copyBulk = (() => { + var _ref17 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (queue, reporter, _events) { + const events = { + onStart: _events && _events.onStart || noop, + onProgress: _events && _events.onProgress || noop, + possibleExtraneous: _events ? _events.possibleExtraneous : new Set(), + ignoreBasenames: _events && _events.ignoreBasenames || [], + artifactFiles: _events && _events.artifactFiles || [] + }; + + const actions = yield buildActionsForCopy(queue, events, events.possibleExtraneous, reporter); + events.onStart(actions.file.length + actions.symlink.length + actions.link.length); + + const fileActions = actions.file; + + const currentlyWriting = new Map(); + + yield (_promise || _load_promise()).queue(fileActions, (() => { + var _ref18 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (data) { + let writePromise; + while (writePromise = currentlyWriting.get(data.dest)) { + yield writePromise; + } + + reporter.verbose(reporter.lang('verboseFileCopy', data.src, data.dest)); + const copier = (0, (_fsNormalized || _load_fsNormalized()).copyFile)(data, function () { + return currentlyWriting.delete(data.dest); + }); + currentlyWriting.set(data.dest, copier); + events.onProgress(data.dest); + return copier; + }); + + return function (_x14) { + return _ref18.apply(this, arguments); + }; + })(), CONCURRENT_QUEUE_ITEMS); + + // we need to copy symlinks last as they could reference files we were copying + const symlinkActions = actions.symlink; + yield (_promise || _load_promise()).queue(symlinkActions, function (data) { + const linkname = (_path || _load_path()).default.resolve((_path || _load_path()).default.dirname(data.dest), data.linkname); + reporter.verbose(reporter.lang('verboseFileSymlink', data.dest, linkname)); + return symlink(linkname, data.dest); + }); + }); + + return function copyBulk(_x11, _x12, _x13) { + return _ref17.apply(this, arguments); + }; +})(); + +let hardlinkBulk = exports.hardlinkBulk = (() => { + var _ref19 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (queue, reporter, _events) { + const events = { + onStart: _events && _events.onStart || noop, + onProgress: _events && _events.onProgress || noop, + possibleExtraneous: _events ? _events.possibleExtraneous : new Set(), + artifactFiles: _events && _events.artifactFiles || [], + ignoreBasenames: [] + }; + + const actions = yield buildActionsForHardlink(queue, events, events.possibleExtraneous, reporter); + events.onStart(actions.file.length + actions.symlink.length + actions.link.length); + + const fileActions = actions.link; + + yield (_promise || _load_promise()).queue(fileActions, (() => { + var _ref20 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (data) { + reporter.verbose(reporter.lang('verboseFileLink', data.src, data.dest)); + if (data.removeDest) { + yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(data.dest); + } + yield link(data.src, data.dest); + }); + + return function (_x18) { + return _ref20.apply(this, arguments); + }; + })(), CONCURRENT_QUEUE_ITEMS); + + // we need to copy symlinks last as they could reference files we were copying + const symlinkActions = actions.symlink; + yield (_promise || _load_promise()).queue(symlinkActions, function (data) { + const linkname = (_path || _load_path()).default.resolve((_path || _load_path()).default.dirname(data.dest), data.linkname); + reporter.verbose(reporter.lang('verboseFileSymlink', data.dest, linkname)); + return symlink(linkname, data.dest); + }); + }); + + return function hardlinkBulk(_x15, _x16, _x17) { + return _ref19.apply(this, arguments); + }; +})(); + +let readFileAny = exports.readFileAny = (() => { + var _ref21 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (files) { + for (var _iterator13 = files, _isArray13 = Array.isArray(_iterator13), _i13 = 0, _iterator13 = _isArray13 ? _iterator13 : _iterator13[Symbol.iterator]();;) { + var _ref22; + + if (_isArray13) { + if (_i13 >= _iterator13.length) break; + _ref22 = _iterator13[_i13++]; + } else { + _i13 = _iterator13.next(); + if (_i13.done) break; + _ref22 = _i13.value; + } + + const file = _ref22; + + if (yield exists(file)) { + return readFile(file); + } + } + return null; + }); + + return function readFileAny(_x19) { + return _ref21.apply(this, arguments); + }; +})(); + +let readJson = exports.readJson = (() => { + var _ref23 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (loc) { + return (yield readJsonAndFile(loc)).object; + }); + + return function readJson(_x20) { + return _ref23.apply(this, arguments); + }; +})(); + +let readJsonAndFile = exports.readJsonAndFile = (() => { + var _ref24 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (loc) { + const file = yield readFile(loc); + try { + return { + object: (0, (_map || _load_map()).default)(JSON.parse(stripBOM(file))), + content: file + }; + } catch (err) { + err.message = `${loc}: ${err.message}`; + throw err; + } + }); + + return function readJsonAndFile(_x21) { + return _ref24.apply(this, arguments); + }; +})(); + +let find = exports.find = (() => { + var _ref25 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (filename, dir) { + const parts = dir.split((_path || _load_path()).default.sep); + + while (parts.length) { + const loc = parts.concat(filename).join((_path || _load_path()).default.sep); + + if (yield exists(loc)) { + return loc; + } else { + parts.pop(); + } + } + + return false; + }); + + return function find(_x22, _x23) { + return _ref25.apply(this, arguments); + }; +})(); + +let symlink = exports.symlink = (() => { + var _ref26 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (src, dest) { + if (process.platform !== 'win32') { + // use relative paths otherwise which will be retained if the directory is moved + src = (_path || _load_path()).default.relative((_path || _load_path()).default.dirname(dest), src); + // When path.relative returns an empty string for the current directory, we should instead use + // '.', which is a valid fs.symlink target. + src = src || '.'; + } + + try { + const stats = yield lstat(dest); + if (stats.isSymbolicLink()) { + const resolved = dest; + if (resolved === src) { + return; + } + } + } catch (err) { + if (err.code !== 'ENOENT') { + throw err; + } + } + + // We use rimraf for unlink which never throws an ENOENT on missing target + yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(dest); + + if (process.platform === 'win32') { + // use directory junctions if possible on win32, this requires absolute paths + yield fsSymlink(src, dest, 'junction'); + } else { + yield fsSymlink(src, dest); + } + }); + + return function symlink(_x24, _x25) { + return _ref26.apply(this, arguments); + }; +})(); + +let walk = exports.walk = (() => { + var _ref27 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (dir, relativeDir, ignoreBasenames = new Set()) { + let files = []; + + let filenames = yield readdir(dir); + if (ignoreBasenames.size) { + filenames = filenames.filter(function (name) { + return !ignoreBasenames.has(name); + }); + } + + for (var _iterator14 = filenames, _isArray14 = Array.isArray(_iterator14), _i14 = 0, _iterator14 = _isArray14 ? _iterator14 : _iterator14[Symbol.iterator]();;) { + var _ref28; + + if (_isArray14) { + if (_i14 >= _iterator14.length) break; + _ref28 = _iterator14[_i14++]; + } else { + _i14 = _iterator14.next(); + if (_i14.done) break; + _ref28 = _i14.value; + } + + const name = _ref28; + + const relative = relativeDir ? (_path || _load_path()).default.join(relativeDir, name) : name; + const loc = (_path || _load_path()).default.join(dir, name); + const stat = yield lstat(loc); + + files.push({ + relative, + basename: name, + absolute: loc, + mtime: +stat.mtime + }); + + if (stat.isDirectory()) { + files = files.concat((yield walk(loc, relative, ignoreBasenames))); + } + } + + return files; + }); + + return function walk(_x26, _x27) { + return _ref27.apply(this, arguments); + }; +})(); + +let getFileSizeOnDisk = exports.getFileSizeOnDisk = (() => { + var _ref29 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (loc) { + const stat = yield lstat(loc); + const size = stat.size, + blockSize = stat.blksize; + + + return Math.ceil(size / blockSize) * blockSize; + }); + + return function getFileSizeOnDisk(_x28) { + return _ref29.apply(this, arguments); + }; +})(); + +let getEolFromFile = (() => { + var _ref30 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (path) { + if (!(yield exists(path))) { + return undefined; + } + + const buffer = yield readFileBuffer(path); + + for (let i = 0; i < buffer.length; ++i) { + if (buffer[i] === cr) { + return '\r\n'; + } + if (buffer[i] === lf) { + return '\n'; + } + } + return undefined; + }); + + return function getEolFromFile(_x29) { + return _ref30.apply(this, arguments); + }; +})(); + +let writeFilePreservingEol = exports.writeFilePreservingEol = (() => { + var _ref31 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (path, data) { + const eol = (yield getEolFromFile(path)) || (_os || _load_os()).default.EOL; + if (eol !== '\n') { + data = data.replace(/\n/g, eol); + } + yield writeFile(path, data); + }); + + return function writeFilePreservingEol(_x30, _x31) { + return _ref31.apply(this, arguments); + }; +})(); + +let hardlinksWork = exports.hardlinksWork = (() => { + var _ref32 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (dir) { + const filename = 'test-file' + Math.random(); + const file = (_path || _load_path()).default.join(dir, filename); + const fileLink = (_path || _load_path()).default.join(dir, filename + '-link'); + try { + yield writeFile(file, 'test'); + yield link(file, fileLink); + } catch (err) { + return false; + } finally { + yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(file); + yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(fileLink); + } + return true; + }); + + return function hardlinksWork(_x32) { + return _ref32.apply(this, arguments); + }; +})(); + +// not a strict polyfill for Node's fs.mkdtemp + + +let makeTempDir = exports.makeTempDir = (() => { + var _ref33 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (prefix) { + const dir = (_path || _load_path()).default.join((_os || _load_os()).default.tmpdir(), `yarn-${prefix || ''}-${Date.now()}-${Math.random()}`); + yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(dir); + yield mkdirp(dir); + return dir; + }); + + return function makeTempDir(_x33) { + return _ref33.apply(this, arguments); + }; +})(); + +let readFirstAvailableStream = exports.readFirstAvailableStream = (() => { + var _ref34 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (paths) { + for (var _iterator15 = paths, _isArray15 = Array.isArray(_iterator15), _i15 = 0, _iterator15 = _isArray15 ? _iterator15 : _iterator15[Symbol.iterator]();;) { + var _ref35; + + if (_isArray15) { + if (_i15 >= _iterator15.length) break; + _ref35 = _iterator15[_i15++]; + } else { + _i15 = _iterator15.next(); + if (_i15.done) break; + _ref35 = _i15.value; + } + + const path = _ref35; + + try { + const fd = yield open(path, 'r'); + return (_fs || _load_fs()).default.createReadStream(path, { fd }); + } catch (err) { + // Try the next one + } + } + return null; + }); + + return function readFirstAvailableStream(_x34) { + return _ref34.apply(this, arguments); + }; +})(); + +let getFirstSuitableFolder = exports.getFirstSuitableFolder = (() => { + var _ref36 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (paths, mode = constants.W_OK | constants.X_OK) { + const result = { + skipped: [], + folder: null + }; + + for (var _iterator16 = paths, _isArray16 = Array.isArray(_iterator16), _i16 = 0, _iterator16 = _isArray16 ? _iterator16 : _iterator16[Symbol.iterator]();;) { + var _ref37; + + if (_isArray16) { + if (_i16 >= _iterator16.length) break; + _ref37 = _iterator16[_i16++]; + } else { + _i16 = _iterator16.next(); + if (_i16.done) break; + _ref37 = _i16.value; + } + + const folder = _ref37; + + try { + yield mkdirp(folder); + yield access(folder, mode); + + result.folder = folder; + + return result; + } catch (error) { + result.skipped.push({ + error, + folder + }); + } + } + return result; + }); + + return function getFirstSuitableFolder(_x35) { + return _ref36.apply(this, arguments); + }; +})(); + +exports.copy = copy; +exports.readFile = readFile; +exports.readFileRaw = readFileRaw; +exports.normalizeOS = normalizeOS; + +var _fs; + +function _load_fs() { + return _fs = _interopRequireDefault(__webpack_require__(4)); +} + +var _glob; + +function _load_glob() { + return _glob = _interopRequireDefault(__webpack_require__(99)); +} + +var _os; + +function _load_os() { + return _os = _interopRequireDefault(__webpack_require__(46)); +} + +var _path; + +function _load_path() { + return _path = _interopRequireDefault(__webpack_require__(0)); +} + +var _blockingQueue; + +function _load_blockingQueue() { + return _blockingQueue = _interopRequireDefault(__webpack_require__(110)); +} + +var _promise; + +function _load_promise() { + return _promise = _interopRequireWildcard(__webpack_require__(51)); +} + +var _promise2; + +function _load_promise2() { + return _promise2 = __webpack_require__(51); +} + +var _map; + +function _load_map() { + return _map = _interopRequireDefault(__webpack_require__(29)); +} + +var _fsNormalized; + +function _load_fsNormalized() { + return _fsNormalized = __webpack_require__(216); +} + +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; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const constants = exports.constants = typeof (_fs || _load_fs()).default.constants !== 'undefined' ? (_fs || _load_fs()).default.constants : { + R_OK: (_fs || _load_fs()).default.R_OK, + W_OK: (_fs || _load_fs()).default.W_OK, + X_OK: (_fs || _load_fs()).default.X_OK +}; + +const lockQueue = exports.lockQueue = new (_blockingQueue || _load_blockingQueue()).default('fs lock'); + +const readFileBuffer = exports.readFileBuffer = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.readFile); +const open = exports.open = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.open); +const writeFile = exports.writeFile = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.writeFile); +const readlink = exports.readlink = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.readlink); +const realpath = exports.realpath = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.realpath); +const readdir = exports.readdir = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.readdir); +const rename = exports.rename = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.rename); +const access = exports.access = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.access); +const stat = exports.stat = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.stat); +const mkdirp = exports.mkdirp = (0, (_promise2 || _load_promise2()).promisify)(__webpack_require__(145)); +const exists = exports.exists = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.exists, true); +const lstat = exports.lstat = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.lstat); +const chmod = exports.chmod = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.chmod); +const link = exports.link = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.link); +const glob = exports.glob = (0, (_promise2 || _load_promise2()).promisify)((_glob || _load_glob()).default); +exports.unlink = (_fsNormalized || _load_fsNormalized()).unlink; + +// fs.copyFile uses the native file copying instructions on the system, performing much better +// than any JS-based solution and consumes fewer resources. Repeated testing to fine tune the +// concurrency level revealed 128 as the sweet spot on a quad-core, 16 CPU Intel system with SSD. + +const CONCURRENT_QUEUE_ITEMS = (_fs || _load_fs()).default.copyFile ? 128 : 4; + +const fsSymlink = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.symlink); +const invariant = __webpack_require__(9); +const stripBOM = __webpack_require__(160); + +const noop = () => {}; + +function copy(src, dest, reporter) { + return copyBulk([{ src, dest }], reporter); +} + +function _readFile(loc, encoding) { + return new Promise((resolve, reject) => { + (_fs || _load_fs()).default.readFile(loc, encoding, function (err, content) { + if (err) { + reject(err); + } else { + resolve(content); + } + }); + }); +} + +function readFile(loc) { + return _readFile(loc, 'utf8').then(normalizeOS); +} + +function readFileRaw(loc) { + return _readFile(loc, 'binary'); +} + +function normalizeOS(body) { + return body.replace(/\r\n/g, '\n'); +} + +const cr = '\r'.charCodeAt(0); +const lf = '\n'.charCodeAt(0); + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +class MessageError extends Error { + constructor(msg, code) { + super(msg); + this.code = code; + } + +} + +exports.MessageError = MessageError; +class ProcessSpawnError extends MessageError { + constructor(msg, code, process) { + super(msg, code); + this.process = process; + } + +} + +exports.ProcessSpawnError = ProcessSpawnError; +class SecurityError extends MessageError {} + +exports.SecurityError = SecurityError; +class ProcessTermError extends MessageError {} + +exports.ProcessTermError = ProcessTermError; +class ResponseError extends Error { + constructor(msg, responseCode) { + super(msg); + this.responseCode = responseCode; + } + +} + +exports.ResponseError = ResponseError; +class OneTimePasswordError extends Error { + constructor(notice) { + super(); + this.notice = notice; + } + +} +exports.OneTimePasswordError = OneTimePasswordError; + +/***/ }), +/* 7 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Subscriber; }); +/* unused harmony export SafeSubscriber */ +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_isFunction__ = __webpack_require__(154); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Observer__ = __webpack_require__(420); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Subscription__ = __webpack_require__(25); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__internal_symbol_rxSubscriber__ = __webpack_require__(321); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__config__ = __webpack_require__(186); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_hostReportError__ = __webpack_require__(323); +/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */ + + + + + + + +var Subscriber = /*@__PURE__*/ (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __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; + _this._parentSubscription = null; + switch (arguments.length) { + case 0: + _this.destination = __WEBPACK_IMPORTED_MODULE_2__Observer__["a" /* empty */]; + break; + case 1: + if (!destinationOrNext) { + _this.destination = __WEBPACK_IMPORTED_MODULE_2__Observer__["a" /* empty */]; + break; + } + if (typeof destinationOrNext === 'object') { + if (destinationOrNext instanceof Subscriber) { + _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; + _this.destination = destinationOrNext; + destinationOrNext.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[__WEBPACK_IMPORTED_MODULE_4__internal_symbol_rxSubscriber__["a" /* 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; + this._parentSubscription = null; + return this; + }; + return Subscriber; +}(__WEBPACK_IMPORTED_MODULE_3__Subscription__["a" /* Subscription */])); + +var SafeSubscriber = /*@__PURE__*/ (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](SafeSubscriber, _super); + function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) { + var _this = _super.call(this) || this; + _this._parentSubscriber = _parentSubscriber; + var next; + var context = _this; + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_isFunction__["a" /* isFunction */])(observerOrNext)) { + next = observerOrNext; + } + else if (observerOrNext) { + next = observerOrNext.next; + error = observerOrNext.error; + complete = observerOrNext.complete; + if (observerOrNext !== __WEBPACK_IMPORTED_MODULE_2__Observer__["a" /* empty */]) { + context = Object.create(observerOrNext); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_isFunction__["a" /* 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 (!__WEBPACK_IMPORTED_MODULE_5__config__["a" /* 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 = __WEBPACK_IMPORTED_MODULE_5__config__["a" /* 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; + } + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_hostReportError__["a" /* hostReportError */])(err); + } + else { + if (useDeprecatedSynchronousErrorHandling) { + _parentSubscriber.syncErrorValue = err; + _parentSubscriber.syncErrorThrown = true; + } + else { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_hostReportError__["a" /* 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 (!__WEBPACK_IMPORTED_MODULE_5__config__["a" /* 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 (__WEBPACK_IMPORTED_MODULE_5__config__["a" /* config */].useDeprecatedSynchronousErrorHandling) { + throw err; + } + else { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_hostReportError__["a" /* hostReportError */])(err); + } + } + }; + SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) { + if (!__WEBPACK_IMPORTED_MODULE_5__config__["a" /* config */].useDeprecatedSynchronousErrorHandling) { + throw new Error('bad call'); + } + try { + fn.call(this._context, value); + } + catch (err) { + if (__WEBPACK_IMPORTED_MODULE_5__config__["a" /* config */].useDeprecatedSynchronousErrorHandling) { + parent.syncErrorValue = err; + parent.syncErrorThrown = true; + return true; + } + else { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util_hostReportError__["a" /* 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)); + +//# sourceMappingURL=Subscriber.js.map + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getPathKey = getPathKey; +const os = __webpack_require__(46); +const path = __webpack_require__(0); +const userHome = __webpack_require__(67).default; + +var _require = __webpack_require__(222); + +const getCacheDir = _require.getCacheDir, + getConfigDir = _require.getConfigDir, + getDataDir = _require.getDataDir; + +const isWebpackBundle = __webpack_require__(278); + +const DEPENDENCY_TYPES = exports.DEPENDENCY_TYPES = ['devDependencies', 'dependencies', 'optionalDependencies', 'peerDependencies']; +const OWNED_DEPENDENCY_TYPES = exports.OWNED_DEPENDENCY_TYPES = ['devDependencies', 'dependencies', 'optionalDependencies']; + +const RESOLUTIONS = exports.RESOLUTIONS = 'resolutions'; +const MANIFEST_FIELDS = exports.MANIFEST_FIELDS = [RESOLUTIONS, ...DEPENDENCY_TYPES]; + +const SUPPORTED_NODE_VERSIONS = exports.SUPPORTED_NODE_VERSIONS = '^4.8.0 || ^5.7.0 || ^6.2.2 || >=8.0.0'; + +const YARN_REGISTRY = exports.YARN_REGISTRY = 'https://registry.yarnpkg.com'; +const NPM_REGISTRY_RE = exports.NPM_REGISTRY_RE = /https?:\/\/registry\.npmjs\.org/g; + +const YARN_DOCS = exports.YARN_DOCS = 'https://yarnpkg.com/en/docs/cli/'; +const YARN_INSTALLER_SH = exports.YARN_INSTALLER_SH = 'https://yarnpkg.com/install.sh'; +const YARN_INSTALLER_MSI = exports.YARN_INSTALLER_MSI = 'https://yarnpkg.com/latest.msi'; + +const SELF_UPDATE_VERSION_URL = exports.SELF_UPDATE_VERSION_URL = 'https://yarnpkg.com/latest-version'; + +// cache version, bump whenever we make backwards incompatible changes +const CACHE_VERSION = exports.CACHE_VERSION = 6; + +// lockfile version, bump whenever we make backwards incompatible changes +const LOCKFILE_VERSION = exports.LOCKFILE_VERSION = 1; + +// max amount of network requests to perform concurrently +const NETWORK_CONCURRENCY = exports.NETWORK_CONCURRENCY = 8; + +// HTTP timeout used when downloading packages +const NETWORK_TIMEOUT = exports.NETWORK_TIMEOUT = 30 * 1000; // in milliseconds + +// max amount of child processes to execute concurrently +const CHILD_CONCURRENCY = exports.CHILD_CONCURRENCY = 5; + +const REQUIRED_PACKAGE_KEYS = exports.REQUIRED_PACKAGE_KEYS = ['name', 'version', '_uid']; + +function getPreferredCacheDirectories() { + const preferredCacheDirectories = [getCacheDir()]; + + if (process.getuid) { + // $FlowFixMe: process.getuid exists, dammit + preferredCacheDirectories.push(path.join(os.tmpdir(), `.yarn-cache-${process.getuid()}`)); + } + + preferredCacheDirectories.push(path.join(os.tmpdir(), `.yarn-cache`)); + + return preferredCacheDirectories; +} + +const PREFERRED_MODULE_CACHE_DIRECTORIES = exports.PREFERRED_MODULE_CACHE_DIRECTORIES = getPreferredCacheDirectories(); +const CONFIG_DIRECTORY = exports.CONFIG_DIRECTORY = getConfigDir(); +const DATA_DIRECTORY = exports.DATA_DIRECTORY = getDataDir(); +const LINK_REGISTRY_DIRECTORY = exports.LINK_REGISTRY_DIRECTORY = path.join(DATA_DIRECTORY, 'link'); +const GLOBAL_MODULE_DIRECTORY = exports.GLOBAL_MODULE_DIRECTORY = path.join(DATA_DIRECTORY, 'global'); + +const NODE_BIN_PATH = exports.NODE_BIN_PATH = process.execPath; +const YARN_BIN_PATH = exports.YARN_BIN_PATH = getYarnBinPath(); + +// Webpack needs to be configured with node.__dirname/__filename = false +function getYarnBinPath() { + if (isWebpackBundle) { + return __filename; + } else { + return path.join(__dirname, '..', 'bin', 'yarn.js'); + } +} + +const NODE_MODULES_FOLDER = exports.NODE_MODULES_FOLDER = 'node_modules'; +const NODE_PACKAGE_JSON = exports.NODE_PACKAGE_JSON = 'package.json'; + +const PNP_FILENAME = exports.PNP_FILENAME = '.pnp.js'; + +const POSIX_GLOBAL_PREFIX = exports.POSIX_GLOBAL_PREFIX = `${process.env.DESTDIR || ''}/usr/local`; +const FALLBACK_GLOBAL_PREFIX = exports.FALLBACK_GLOBAL_PREFIX = path.join(userHome, '.yarn'); + +const META_FOLDER = exports.META_FOLDER = '.yarn-meta'; +const INTEGRITY_FILENAME = exports.INTEGRITY_FILENAME = '.yarn-integrity'; +const LOCKFILE_FILENAME = exports.LOCKFILE_FILENAME = 'yarn.lock'; +const METADATA_FILENAME = exports.METADATA_FILENAME = '.yarn-metadata.json'; +const TARBALL_FILENAME = exports.TARBALL_FILENAME = '.yarn-tarball.tgz'; +const CLEAN_FILENAME = exports.CLEAN_FILENAME = '.yarnclean'; + +const NPM_LOCK_FILENAME = exports.NPM_LOCK_FILENAME = 'package-lock.json'; +const NPM_SHRINKWRAP_FILENAME = exports.NPM_SHRINKWRAP_FILENAME = 'npm-shrinkwrap.json'; + +const DEFAULT_INDENT = exports.DEFAULT_INDENT = ' '; +const SINGLE_INSTANCE_PORT = exports.SINGLE_INSTANCE_PORT = 31997; +const SINGLE_INSTANCE_FILENAME = exports.SINGLE_INSTANCE_FILENAME = '.yarn-single-instance'; + +const ENV_PATH_KEY = exports.ENV_PATH_KEY = getPathKey(process.platform, process.env); + +function getPathKey(platform, env) { + let pathKey = 'PATH'; + + // windows calls its path "Path" usually, but this is not guaranteed. + if (platform === 'win32') { + pathKey = 'Path'; + + for (const key in env) { + if (key.toLowerCase() === 'path') { + pathKey = key; + } + } + } + + return pathKey; +} + +const VERSION_COLOR_SCHEME = exports.VERSION_COLOR_SCHEME = { + major: 'red', + premajor: 'red', + minor: 'yellow', + preminor: 'yellow', + patch: 'green', + prepatch: 'green', + prerelease: 'red', + unchanged: 'white', + unknown: 'red' +}; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + +/** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + +var NODE_ENV = process.env.NODE_ENV; + +var invariant = function(condition, format, a, b, c, d, e, f) { + if (NODE_ENV !== 'production') { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + } + + if (!condition) { + var error; + if (format === undefined) { + error = new Error( + 'Minified exception occurred; use the non-minified dev environment ' + + 'for the full error message and additional helpful warnings.' + ); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error( + format.replace(/%s/g, function() { return args[argIndex++]; }) + ); + error.name = 'Invariant Violation'; + } + + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } +}; + +module.exports = invariant; + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var YAMLException = __webpack_require__(55); + +var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'defaultStyle', + 'styleAliases' +]; + +var YAML_NODE_KINDS = [ + 'scalar', + 'sequence', + 'mapping' +]; + +function compileStyleAliases(map) { + var result = {}; + + if (map !== null) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style; + }); + }); + } + + return result; +} + +function Type(tag, options) { + options = options || {}; + + Object.keys(options).forEach(function (name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + + // TODO: Add tag format check. + this.tag = tag; + this.kind = options['kind'] || null; + this.resolve = options['resolve'] || function () { return true; }; + this.construct = options['construct'] || function (data) { return data; }; + this.instanceOf = options['instanceOf'] || null; + this.predicate = options['predicate'] || null; + this.represent = options['represent'] || null; + this.defaultStyle = options['defaultStyle'] || null; + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} + +module.exports = Type; + + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + +module.exports = require("crypto"); + +/***/ }), +/* 12 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Observable; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_canReportError__ = __webpack_require__(322); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_toSubscriber__ = __webpack_require__(932); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__internal_symbol_observable__ = __webpack_require__(118); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_pipe__ = __webpack_require__(324); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__config__ = __webpack_require__(186); +/** PURE_IMPORTS_START _util_canReportError,_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 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_toSubscriber__["a" /* toSubscriber */])(observerOrNext, error, complete); + if (operator) { + operator.call(sink, this.source); + } + else { + sink.add(this.source || (__WEBPACK_IMPORTED_MODULE_4__config__["a" /* config */].useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? + this._subscribe(sink) : + this._trySubscribe(sink)); + } + if (__WEBPACK_IMPORTED_MODULE_4__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 (__WEBPACK_IMPORTED_MODULE_4__config__["a" /* config */].useDeprecatedSynchronousErrorHandling) { + sink.syncErrorThrown = true; + sink.syncErrorValue = err; + } + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__util_canReportError__["a" /* canReportError */])(sink)) { + sink.error(err); + } + else { + console.warn(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[__WEBPACK_IMPORTED_MODULE_2__internal_symbol_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 __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_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; +}()); + +function getPromiseCtor(promiseCtor) { + if (!promiseCtor) { + promiseCtor = __WEBPACK_IMPORTED_MODULE_4__config__["a" /* config */].Promise || Promise; + } + if (!promiseCtor) { + throw new Error('no Promise impl found'); + } + return promiseCtor; +} +//# sourceMappingURL=Observable.js.map + + +/***/ }), +/* 13 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return OuterSubscriber; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Subscriber__ = __webpack_require__(7); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + + +var OuterSubscriber = /*@__PURE__*/ (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __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; +}(__WEBPACK_IMPORTED_MODULE_1__Subscriber__["a" /* Subscriber */])); + +//# sourceMappingURL=OuterSubscriber.js.map + + +/***/ }), +/* 14 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = subscribeToResult; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__InnerSubscriber__ = __webpack_require__(84); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__subscribeTo__ = __webpack_require__(446); +/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo PURE_IMPORTS_END */ + + +function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) { + if (destination === void 0) { + destination = new __WEBPACK_IMPORTED_MODULE_0__InnerSubscriber__["a" /* InnerSubscriber */](outerSubscriber, outerValue, outerIndex); + } + if (destination.closed) { + return; + } + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__subscribeTo__["a" /* subscribeTo */])(result)(destination); +} +//# sourceMappingURL=subscribeToResult.js.map + + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* eslint-disable node/no-deprecated-api */ + + + +var buffer = __webpack_require__(64) +var Buffer = buffer.Buffer + +var safer = {} + +var key + +for (key in buffer) { + if (!buffer.hasOwnProperty(key)) continue + if (key === 'SlowBuffer' || key === 'Buffer') continue + safer[key] = buffer[key] +} + +var Safer = safer.Buffer = {} +for (key in Buffer) { + if (!Buffer.hasOwnProperty(key)) continue + if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue + Safer[key] = Buffer[key] +} + +safer.Buffer.prototype = Buffer.prototype + +if (!Safer.from || Safer.from === Uint8Array.from) { + Safer.from = function (value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value) + } + if (value && typeof value.length === 'undefined') { + throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value) + } + return Buffer(value, encodingOrOffset, length) + } +} + +if (!Safer.alloc) { + Safer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size) + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } + var buf = Buffer(size) + if (!fill || fill.length === 0) { + buf.fill(0) + } else if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + return buf + } +} + +if (!safer.kStringMaxLength) { + try { + safer.kStringMaxLength = process.binding('buffer').kStringMaxLength + } catch (e) { + // we can't determine kStringMaxLength in environments where process.binding + // is unsupported, so let's not set it + } +} + +if (!safer.constants) { + safer.constants = { + MAX_LENGTH: safer.kMaxLength + } + if (safer.kStringMaxLength) { + safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength + } +} + +module.exports = safer + + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +// Copyright (c) 2012, Mark Cavage. All rights reserved. +// Copyright 2015 Joyent, Inc. + +var assert = __webpack_require__(28); +var Stream = __webpack_require__(23).Stream; +var util = __webpack_require__(3); + + +///--- Globals + +/* JSSTYLED */ +var UUID_REGEXP = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/; + + +///--- Internal + +function _capitalize(str) { + return (str.charAt(0).toUpperCase() + str.slice(1)); +} + +function _toss(name, expected, oper, arg, actual) { + throw new assert.AssertionError({ + message: util.format('%s (%s) is required', name, expected), + actual: (actual === undefined) ? typeof (arg) : actual(arg), + expected: expected, + operator: oper || '===', + stackStartFunction: _toss.caller + }); +} + +function _getClass(arg) { + return (Object.prototype.toString.call(arg).slice(8, -1)); +} + +function noop() { + // Why even bother with asserts? +} + + +///--- Exports + +var types = { + bool: { + check: function (arg) { return typeof (arg) === 'boolean'; } + }, + func: { + check: function (arg) { return typeof (arg) === 'function'; } + }, + string: { + check: function (arg) { return typeof (arg) === 'string'; } + }, + object: { + check: function (arg) { + return typeof (arg) === 'object' && arg !== null; + } + }, + number: { + check: function (arg) { + return typeof (arg) === 'number' && !isNaN(arg); + } + }, + finite: { + check: function (arg) { + return typeof (arg) === 'number' && !isNaN(arg) && isFinite(arg); + } + }, + buffer: { + check: function (arg) { return Buffer.isBuffer(arg); }, + operator: 'Buffer.isBuffer' + }, + array: { + check: function (arg) { return Array.isArray(arg); }, + operator: 'Array.isArray' + }, + stream: { + check: function (arg) { return arg instanceof Stream; }, + operator: 'instanceof', + actual: _getClass + }, + date: { + check: function (arg) { return arg instanceof Date; }, + operator: 'instanceof', + actual: _getClass + }, + regexp: { + check: function (arg) { return arg instanceof RegExp; }, + operator: 'instanceof', + actual: _getClass + }, + uuid: { + check: function (arg) { + return typeof (arg) === 'string' && UUID_REGEXP.test(arg); + }, + operator: 'isUUID' + } +}; + +function _setExports(ndebug) { + var keys = Object.keys(types); + var out; + + /* re-export standard assert */ + if (process.env.NODE_NDEBUG) { + out = noop; + } else { + out = function (arg, msg) { + if (!arg) { + _toss(msg, 'true', arg); + } + }; + } + + /* standard checks */ + keys.forEach(function (k) { + if (ndebug) { + out[k] = noop; + return; + } + var type = types[k]; + out[k] = function (arg, msg) { + if (!type.check(arg)) { + _toss(msg, k, type.operator, arg, type.actual); + } + }; + }); + + /* optional checks */ + keys.forEach(function (k) { + var name = 'optional' + _capitalize(k); + if (ndebug) { + out[name] = noop; + return; + } + var type = types[k]; + out[name] = function (arg, msg) { + if (arg === undefined || arg === null) { + return; + } + if (!type.check(arg)) { + _toss(msg, k, type.operator, arg, type.actual); + } + }; + }); + + /* arrayOf checks */ + keys.forEach(function (k) { + var name = 'arrayOf' + _capitalize(k); + if (ndebug) { + out[name] = noop; + return; + } + var type = types[k]; + var expected = '[' + k + ']'; + out[name] = function (arg, msg) { + if (!Array.isArray(arg)) { + _toss(msg, expected, type.operator, arg, type.actual); + } + var i; + for (i = 0; i < arg.length; i++) { + if (!type.check(arg[i])) { + _toss(msg, expected, type.operator, arg, type.actual); + } + } + }; + }); + + /* optionalArrayOf checks */ + keys.forEach(function (k) { + var name = 'optionalArrayOf' + _capitalize(k); + if (ndebug) { + out[name] = noop; + return; + } + var type = types[k]; + var expected = '[' + k + ']'; + out[name] = function (arg, msg) { + if (arg === undefined || arg === null) { + return; + } + if (!Array.isArray(arg)) { + _toss(msg, expected, type.operator, arg, type.actual); + } + var i; + for (i = 0; i < arg.length; i++) { + if (!type.check(arg[i])) { + _toss(msg, expected, type.operator, arg, type.actual); + } + } + }; + }); + + /* re-export built-in assertions */ + Object.keys(assert).forEach(function (k) { + if (k === 'AssertionError') { + out[k] = assert[k]; + return; + } + if (ndebug) { + out[k] = noop; + return; + } + out[k] = assert[k]; + }); + + /* export ourselves (for unit tests _only_) */ + out._setExports = _setExports; + + return out; +} + +module.exports = _setExports(process.env.NODE_NDEBUG); + + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global = module.exports = typeof window != 'undefined' && window.Math == Math + ? window : typeof self != 'undefined' && self.Math == Math ? self + // eslint-disable-next-line no-new-func + : Function('return this')(); +if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef + + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.sortAlpha = sortAlpha; +exports.sortOptionsByFlags = sortOptionsByFlags; +exports.entries = entries; +exports.removePrefix = removePrefix; +exports.removeSuffix = removeSuffix; +exports.addSuffix = addSuffix; +exports.hyphenate = hyphenate; +exports.camelCase = camelCase; +exports.compareSortedArrays = compareSortedArrays; +exports.sleep = sleep; +const _camelCase = __webpack_require__(227); + +function sortAlpha(a, b) { + // sort alphabetically in a deterministic way + const shortLen = Math.min(a.length, b.length); + for (let i = 0; i < shortLen; i++) { + const aChar = a.charCodeAt(i); + const bChar = b.charCodeAt(i); + if (aChar !== bChar) { + return aChar - bChar; + } + } + return a.length - b.length; +} + +function sortOptionsByFlags(a, b) { + const aOpt = a.flags.replace(/-/g, ''); + const bOpt = b.flags.replace(/-/g, ''); + return sortAlpha(aOpt, bOpt); +} + +function entries(obj) { + const entries = []; + if (obj) { + for (const key in obj) { + entries.push([key, obj[key]]); + } + } + return entries; +} + +function removePrefix(pattern, prefix) { + if (pattern.startsWith(prefix)) { + pattern = pattern.slice(prefix.length); + } + + return pattern; +} + +function removeSuffix(pattern, suffix) { + if (pattern.endsWith(suffix)) { + return pattern.slice(0, -suffix.length); + } + + return pattern; +} + +function addSuffix(pattern, suffix) { + if (!pattern.endsWith(suffix)) { + return pattern + suffix; + } + + return pattern; +} + +function hyphenate(str) { + return str.replace(/[A-Z]/g, match => { + return '-' + match.charAt(0).toLowerCase(); + }); +} + +function camelCase(str) { + if (/[A-Z]/.test(str)) { + return null; + } else { + return _camelCase(str); + } +} + +function compareSortedArrays(array1, array2) { + if (array1.length !== array2.length) { + return false; + } + for (let i = 0, len = array1.length; i < len; i++) { + if (array1[i] !== array2[i]) { + return false; + } + } + return true; +} + +function sleep(ms) { + return new Promise(resolve => { + setTimeout(resolve, ms); + }); +} + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.stringify = exports.parse = undefined; + +var _asyncToGenerator2; + +function _load_asyncToGenerator() { + return _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(2)); +} + +var _parse; + +function _load_parse() { + return _parse = __webpack_require__(106); +} + +Object.defineProperty(exports, 'parse', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_parse || _load_parse()).default; + } +}); + +var _stringify; + +function _load_stringify() { + return _stringify = __webpack_require__(200); +} + +Object.defineProperty(exports, 'stringify', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_stringify || _load_stringify()).default; + } +}); +exports.implodeEntry = implodeEntry; +exports.explodeEntry = explodeEntry; + +var _misc; + +function _load_misc() { + return _misc = __webpack_require__(18); +} + +var _normalizePattern; + +function _load_normalizePattern() { + return _normalizePattern = __webpack_require__(37); +} + +var _parse2; + +function _load_parse2() { + return _parse2 = _interopRequireDefault(__webpack_require__(106)); +} + +var _constants; + +function _load_constants() { + return _constants = __webpack_require__(8); +} + +var _fs; + +function _load_fs() { + return _fs = _interopRequireWildcard(__webpack_require__(5)); +} + +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; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const invariant = __webpack_require__(9); + +const path = __webpack_require__(0); +const ssri = __webpack_require__(65); + +function getName(pattern) { + return (0, (_normalizePattern || _load_normalizePattern()).normalizePattern)(pattern).name; +} + +function blankObjectUndefined(obj) { + return obj && Object.keys(obj).length ? obj : undefined; +} + +function keyForRemote(remote) { + return remote.resolved || (remote.reference && remote.hash ? `${remote.reference}#${remote.hash}` : null); +} + +function serializeIntegrity(integrity) { + // We need this because `Integrity.toString()` does not use sorting to ensure a stable string output + // See https://git.io/vx2Hy + return integrity.toString().split(' ').sort().join(' '); +} + +function implodeEntry(pattern, obj) { + const inferredName = getName(pattern); + const integrity = obj.integrity ? serializeIntegrity(obj.integrity) : ''; + const imploded = { + name: inferredName === obj.name ? undefined : obj.name, + version: obj.version, + uid: obj.uid === obj.version ? undefined : obj.uid, + resolved: obj.resolved, + registry: obj.registry === 'npm' ? undefined : obj.registry, + dependencies: blankObjectUndefined(obj.dependencies), + optionalDependencies: blankObjectUndefined(obj.optionalDependencies), + permissions: blankObjectUndefined(obj.permissions), + prebuiltVariants: blankObjectUndefined(obj.prebuiltVariants) + }; + if (integrity) { + imploded.integrity = integrity; + } + return imploded; +} + +function explodeEntry(pattern, obj) { + obj.optionalDependencies = obj.optionalDependencies || {}; + obj.dependencies = obj.dependencies || {}; + obj.uid = obj.uid || obj.version; + obj.permissions = obj.permissions || {}; + obj.registry = obj.registry || 'npm'; + obj.name = obj.name || getName(pattern); + const integrity = obj.integrity; + if (integrity && integrity.isIntegrity) { + obj.integrity = ssri.parse(integrity); + } + return obj; +} + +class Lockfile { + constructor({ cache, source, parseResultType } = {}) { + this.source = source || ''; + this.cache = cache; + this.parseResultType = parseResultType; + } + + // source string if the `cache` was parsed + + + // if true, we're parsing an old yarn file and need to update integrity fields + hasEntriesExistWithoutIntegrity() { + if (!this.cache) { + return false; + } + + for (const key in this.cache) { + // $FlowFixMe - `this.cache` is clearly defined at this point + if (!/^.*@(file:|http)/.test(key) && this.cache[key] && !this.cache[key].integrity) { + return true; + } + } + + return false; + } + + static fromDirectory(dir, reporter) { + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + // read the manifest in this directory + const lockfileLoc = path.join(dir, (_constants || _load_constants()).LOCKFILE_FILENAME); + + let lockfile; + let rawLockfile = ''; + let parseResult; + + if (yield (_fs || _load_fs()).exists(lockfileLoc)) { + rawLockfile = yield (_fs || _load_fs()).readFile(lockfileLoc); + parseResult = (0, (_parse2 || _load_parse2()).default)(rawLockfile, lockfileLoc); + + if (reporter) { + if (parseResult.type === 'merge') { + reporter.info(reporter.lang('lockfileMerged')); + } else if (parseResult.type === 'conflict') { + reporter.warn(reporter.lang('lockfileConflict')); + } + } + + lockfile = parseResult.object; + } else if (reporter) { + reporter.info(reporter.lang('noLockfileFound')); + } + + if (lockfile && lockfile.__metadata) { + const lockfilev2 = lockfile; + lockfile = {}; + } + + return new Lockfile({ cache: lockfile, source: rawLockfile, parseResultType: parseResult && parseResult.type }); + })(); + } + + getLocked(pattern) { + const cache = this.cache; + if (!cache) { + return undefined; + } + + const shrunk = pattern in cache && cache[pattern]; + + if (typeof shrunk === 'string') { + return this.getLocked(shrunk); + } else if (shrunk) { + explodeEntry(pattern, shrunk); + return shrunk; + } + + return undefined; + } + + removePattern(pattern) { + const cache = this.cache; + if (!cache) { + return; + } + delete cache[pattern]; + } + + getLockfile(patterns) { + const lockfile = {}; + const seen = new Map(); + + // order by name so that lockfile manifest is assigned to the first dependency with this manifest + // the others that have the same remoteKey will just refer to the first + // ordering allows for consistency in lockfile when it is serialized + const sortedPatternsKeys = Object.keys(patterns).sort((_misc || _load_misc()).sortAlpha); + + for (var _iterator = sortedPatternsKeys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + const pattern = _ref; + + const pkg = patterns[pattern]; + const remote = pkg._remote, + ref = pkg._reference; + + invariant(ref, 'Package is missing a reference'); + invariant(remote, 'Package is missing a remote'); + + const remoteKey = keyForRemote(remote); + const seenPattern = remoteKey && seen.get(remoteKey); + if (seenPattern) { + // no point in duplicating it + lockfile[pattern] = seenPattern; + + // if we're relying on our name being inferred and two of the patterns have + // different inferred names then we need to set it + if (!seenPattern.name && getName(pattern) !== pkg.name) { + seenPattern.name = pkg.name; + } + continue; + } + const obj = implodeEntry(pattern, { + name: pkg.name, + version: pkg.version, + uid: pkg._uid, + resolved: remote.resolved, + integrity: remote.integrity, + registry: remote.registry, + dependencies: pkg.dependencies, + peerDependencies: pkg.peerDependencies, + optionalDependencies: pkg.optionalDependencies, + permissions: ref.permissions, + prebuiltVariants: pkg.prebuiltVariants + }); + + lockfile[pattern] = obj; + + if (remoteKey) { + seen.set(remoteKey, obj); + } + } + + return lockfile; + } +} +exports.default = Lockfile; + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _assign = __webpack_require__(559); + +var _assign2 = _interopRequireDefault(_assign); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _assign2.default || 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; +}; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +var store = __webpack_require__(133)('wks'); +var uid = __webpack_require__(137); +var Symbol = __webpack_require__(17).Symbol; +var USE_SYMBOL = typeof Symbol == 'function'; + +var $exports = module.exports = function (name) { + return store[name] || (store[name] = + USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); +}; + +$exports.store = store; + + +/***/ }), +/* 22 */ +/***/ (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')); +} + + +/***/ }), +/* 23 */ +/***/ (function(module, exports) { + +module.exports = require("stream"); + +/***/ }), +/* 24 */ +/***/ (function(module, exports) { + +module.exports = require("url"); + +/***/ }), +/* 25 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Subscription; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_isArray__ = __webpack_require__(41); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_isObject__ = __webpack_require__(444); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_isFunction__ = __webpack_require__(154); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_tryCatch__ = __webpack_require__(57); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_errorObject__ = __webpack_require__(48); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_UnsubscriptionError__ = __webpack_require__(441); +/** 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 (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util_isFunction__["a" /* isFunction */])(_unsubscribe)) { + var trial = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_tryCatch__["a" /* tryCatch */])(_unsubscribe).call(this); + if (trial === __WEBPACK_IMPORTED_MODULE_4__util_errorObject__["a" /* errorObject */]) { + hasErrors = true; + errors = errors || (__WEBPACK_IMPORTED_MODULE_4__util_errorObject__["a" /* errorObject */].e instanceof __WEBPACK_IMPORTED_MODULE_5__util_UnsubscriptionError__["a" /* UnsubscriptionError */] ? + flattenUnsubscriptionErrors(__WEBPACK_IMPORTED_MODULE_4__util_errorObject__["a" /* errorObject */].e.errors) : [__WEBPACK_IMPORTED_MODULE_4__util_errorObject__["a" /* errorObject */].e]); + } + } + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__util_isArray__["a" /* isArray */])(_subscriptions)) { + index = -1; + len = _subscriptions.length; + while (++index < len) { + var sub = _subscriptions[index]; + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_isObject__["a" /* isObject */])(sub)) { + var trial = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__util_tryCatch__["a" /* tryCatch */])(sub.unsubscribe).call(sub); + if (trial === __WEBPACK_IMPORTED_MODULE_4__util_errorObject__["a" /* errorObject */]) { + hasErrors = true; + errors = errors || []; + var err = __WEBPACK_IMPORTED_MODULE_4__util_errorObject__["a" /* errorObject */].e; + if (err instanceof __WEBPACK_IMPORTED_MODULE_5__util_UnsubscriptionError__["a" /* UnsubscriptionError */]) { + errors = errors.concat(flattenUnsubscriptionErrors(err.errors)); + } + else { + errors.push(err); + } + } + } + } + } + if (hasErrors) { + throw new __WEBPACK_IMPORTED_MODULE_5__util_UnsubscriptionError__["a" /* 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 __WEBPACK_IMPORTED_MODULE_5__util_UnsubscriptionError__["a" /* UnsubscriptionError */]) ? err.errors : err); }, []); +} +//# sourceMappingURL=Subscription.js.map + + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +// Copyright 2015 Joyent, Inc. + +module.exports = { + bufferSplit: bufferSplit, + addRSAMissing: addRSAMissing, + calculateDSAPublic: calculateDSAPublic, + calculateED25519Public: calculateED25519Public, + calculateX25519Public: calculateX25519Public, + mpNormalize: mpNormalize, + mpDenormalize: mpDenormalize, + ecNormalize: ecNormalize, + countZeros: countZeros, + assertCompatible: assertCompatible, + isCompatible: isCompatible, + opensslKeyDeriv: opensslKeyDeriv, + opensshCipherInfo: opensshCipherInfo, + publicFromPrivateECDSA: publicFromPrivateECDSA, + zeroPadToLength: zeroPadToLength, + writeBitString: writeBitString, + readBitString: readBitString +}; + +var assert = __webpack_require__(16); +var Buffer = __webpack_require__(15).Buffer; +var PrivateKey = __webpack_require__(33); +var Key = __webpack_require__(27); +var crypto = __webpack_require__(11); +var algs = __webpack_require__(32); +var asn1 = __webpack_require__(66); + +var ec, jsbn; +var nacl; + +var MAX_CLASS_DEPTH = 3; + +function isCompatible(obj, klass, needVer) { + if (obj === null || typeof (obj) !== 'object') + return (false); + if (needVer === undefined) + needVer = klass.prototype._sshpkApiVersion; + if (obj instanceof klass && + klass.prototype._sshpkApiVersion[0] == needVer[0]) + return (true); + var proto = Object.getPrototypeOf(obj); + var depth = 0; + while (proto.constructor.name !== klass.name) { + proto = Object.getPrototypeOf(proto); + if (!proto || ++depth > MAX_CLASS_DEPTH) + return (false); + } + if (proto.constructor.name !== klass.name) + return (false); + var ver = proto._sshpkApiVersion; + if (ver === undefined) + ver = klass._oldVersionDetect(obj); + if (ver[0] != needVer[0] || ver[1] < needVer[1]) + return (false); + return (true); +} + +function assertCompatible(obj, klass, needVer, name) { + if (name === undefined) + name = 'object'; + assert.ok(obj, name + ' must not be null'); + assert.object(obj, name + ' must be an object'); + if (needVer === undefined) + needVer = klass.prototype._sshpkApiVersion; + if (obj instanceof klass && + klass.prototype._sshpkApiVersion[0] == needVer[0]) + return; + var proto = Object.getPrototypeOf(obj); + var depth = 0; + while (proto.constructor.name !== klass.name) { + proto = Object.getPrototypeOf(proto); + assert.ok(proto && ++depth <= MAX_CLASS_DEPTH, + name + ' must be a ' + klass.name + ' instance'); + } + assert.strictEqual(proto.constructor.name, klass.name, + name + ' must be a ' + klass.name + ' instance'); + var ver = proto._sshpkApiVersion; + if (ver === undefined) + ver = klass._oldVersionDetect(obj); + assert.ok(ver[0] == needVer[0] && ver[1] >= needVer[1], + name + ' must be compatible with ' + klass.name + ' klass ' + + 'version ' + needVer[0] + '.' + needVer[1]); +} + +var CIPHER_LEN = { + 'des-ede3-cbc': { key: 7, iv: 8 }, + 'aes-128-cbc': { key: 16, iv: 16 } +}; +var PKCS5_SALT_LEN = 8; + +function opensslKeyDeriv(cipher, salt, passphrase, count) { + assert.buffer(salt, 'salt'); + assert.buffer(passphrase, 'passphrase'); + assert.number(count, 'iteration count'); + + var clen = CIPHER_LEN[cipher]; + assert.object(clen, 'supported cipher'); + + salt = salt.slice(0, PKCS5_SALT_LEN); + + var D, D_prev, bufs; + var material = Buffer.alloc(0); + while (material.length < clen.key + clen.iv) { + bufs = []; + if (D_prev) + bufs.push(D_prev); + bufs.push(passphrase); + bufs.push(salt); + D = Buffer.concat(bufs); + for (var j = 0; j < count; ++j) + D = crypto.createHash('md5').update(D).digest(); + material = Buffer.concat([material, D]); + D_prev = D; + } + + return ({ + key: material.slice(0, clen.key), + iv: material.slice(clen.key, clen.key + clen.iv) + }); +} + +/* Count leading zero bits on a buffer */ +function countZeros(buf) { + var o = 0, obit = 8; + while (o < buf.length) { + var mask = (1 << obit); + if ((buf[o] & mask) === mask) + break; + obit--; + if (obit < 0) { + o++; + obit = 8; + } + } + return (o*8 + (8 - obit) - 1); +} + +function bufferSplit(buf, chr) { + assert.buffer(buf); + assert.string(chr); + + var parts = []; + var lastPart = 0; + var matches = 0; + for (var i = 0; i < buf.length; ++i) { + if (buf[i] === chr.charCodeAt(matches)) + ++matches; + else if (buf[i] === chr.charCodeAt(0)) + matches = 1; + else + matches = 0; + + if (matches >= chr.length) { + var newPart = i + 1; + parts.push(buf.slice(lastPart, newPart - matches)); + lastPart = newPart; + matches = 0; + } + } + if (lastPart <= buf.length) + parts.push(buf.slice(lastPart, buf.length)); + + return (parts); +} + +function ecNormalize(buf, addZero) { + assert.buffer(buf); + if (buf[0] === 0x00 && buf[1] === 0x04) { + if (addZero) + return (buf); + return (buf.slice(1)); + } else if (buf[0] === 0x04) { + if (!addZero) + return (buf); + } else { + while (buf[0] === 0x00) + buf = buf.slice(1); + if (buf[0] === 0x02 || buf[0] === 0x03) + throw (new Error('Compressed elliptic curve points ' + + 'are not supported')); + if (buf[0] !== 0x04) + throw (new Error('Not a valid elliptic curve point')); + if (!addZero) + return (buf); + } + var b = Buffer.alloc(buf.length + 1); + b[0] = 0x0; + buf.copy(b, 1); + return (b); +} + +function readBitString(der, tag) { + if (tag === undefined) + tag = asn1.Ber.BitString; + var buf = der.readString(tag, true); + assert.strictEqual(buf[0], 0x00, 'bit strings with unused bits are ' + + 'not supported (0x' + buf[0].toString(16) + ')'); + return (buf.slice(1)); +} + +function writeBitString(der, buf, tag) { + if (tag === undefined) + tag = asn1.Ber.BitString; + var b = Buffer.alloc(buf.length + 1); + b[0] = 0x00; + buf.copy(b, 1); + der.writeBuffer(b, tag); +} + +function mpNormalize(buf) { + assert.buffer(buf); + while (buf.length > 1 && buf[0] === 0x00 && (buf[1] & 0x80) === 0x00) + buf = buf.slice(1); + if ((buf[0] & 0x80) === 0x80) { + var b = Buffer.alloc(buf.length + 1); + b[0] = 0x00; + buf.copy(b, 1); + buf = b; + } + return (buf); +} + +function mpDenormalize(buf) { + assert.buffer(buf); + while (buf.length > 1 && buf[0] === 0x00) + buf = buf.slice(1); + return (buf); +} + +function zeroPadToLength(buf, len) { + assert.buffer(buf); + assert.number(len); + while (buf.length > len) { + assert.equal(buf[0], 0x00); + buf = buf.slice(1); + } + while (buf.length < len) { + var b = Buffer.alloc(buf.length + 1); + b[0] = 0x00; + buf.copy(b, 1); + buf = b; + } + return (buf); +} + +function bigintToMpBuf(bigint) { + var buf = Buffer.from(bigint.toByteArray()); + buf = mpNormalize(buf); + return (buf); +} + +function calculateDSAPublic(g, p, x) { + assert.buffer(g); + assert.buffer(p); + assert.buffer(x); + try { + var bigInt = __webpack_require__(81).BigInteger; + } catch (e) { + throw (new Error('To load a PKCS#8 format DSA private key, ' + + 'the node jsbn library is required.')); + } + g = new bigInt(g); + p = new bigInt(p); + x = new bigInt(x); + var y = g.modPow(x, p); + var ybuf = bigintToMpBuf(y); + return (ybuf); +} + +function calculateED25519Public(k) { + assert.buffer(k); + + if (nacl === undefined) + nacl = __webpack_require__(76); + + var kp = nacl.sign.keyPair.fromSeed(new Uint8Array(k)); + return (Buffer.from(kp.publicKey)); +} + +function calculateX25519Public(k) { + assert.buffer(k); + + if (nacl === undefined) + nacl = __webpack_require__(76); + + var kp = nacl.box.keyPair.fromSeed(new Uint8Array(k)); + return (Buffer.from(kp.publicKey)); +} + +function addRSAMissing(key) { + assert.object(key); + assertCompatible(key, PrivateKey, [1, 1]); + try { + var bigInt = __webpack_require__(81).BigInteger; + } catch (e) { + throw (new Error('To write a PEM private key from ' + + 'this source, the node jsbn lib is required.')); + } + + var d = new bigInt(key.part.d.data); + var buf; + + if (!key.part.dmodp) { + var p = new bigInt(key.part.p.data); + var dmodp = d.mod(p.subtract(1)); + + buf = bigintToMpBuf(dmodp); + key.part.dmodp = {name: 'dmodp', data: buf}; + key.parts.push(key.part.dmodp); + } + if (!key.part.dmodq) { + var q = new bigInt(key.part.q.data); + var dmodq = d.mod(q.subtract(1)); + + buf = bigintToMpBuf(dmodq); + key.part.dmodq = {name: 'dmodq', data: buf}; + key.parts.push(key.part.dmodq); + } +} + +function publicFromPrivateECDSA(curveName, priv) { + assert.string(curveName, 'curveName'); + assert.buffer(priv); + if (ec === undefined) + ec = __webpack_require__(139); + if (jsbn === undefined) + jsbn = __webpack_require__(81).BigInteger; + var params = algs.curves[curveName]; + var p = new jsbn(params.p); + var a = new jsbn(params.a); + var b = new jsbn(params.b); + var curve = new ec.ECCurveFp(p, a, b); + var G = curve.decodePointHex(params.G.toString('hex')); + + var d = new jsbn(mpNormalize(priv)); + var pub = G.multiply(d); + pub = Buffer.from(curve.encodePointHex(pub), 'hex'); + + var parts = []; + parts.push({name: 'curve', data: Buffer.from(curveName)}); + parts.push({name: 'Q', data: pub}); + + var key = new Key({type: 'ecdsa', curve: curve, parts: parts}); + return (key); +} + +function opensshCipherInfo(cipher) { + var inf = {}; + switch (cipher) { + case '3des-cbc': + inf.keySize = 24; + inf.blockSize = 8; + inf.opensslName = 'des-ede3-cbc'; + break; + case 'blowfish-cbc': + inf.keySize = 16; + inf.blockSize = 8; + inf.opensslName = 'bf-cbc'; + break; + case 'aes128-cbc': + case 'aes128-ctr': + case 'aes128-gcm@openssh.com': + inf.keySize = 16; + inf.blockSize = 16; + inf.opensslName = 'aes-128-' + cipher.slice(7, 10); + break; + case 'aes192-cbc': + case 'aes192-ctr': + case 'aes192-gcm@openssh.com': + inf.keySize = 24; + inf.blockSize = 16; + inf.opensslName = 'aes-192-' + cipher.slice(7, 10); + break; + case 'aes256-cbc': + case 'aes256-ctr': + case 'aes256-gcm@openssh.com': + inf.keySize = 32; + inf.blockSize = 16; + inf.opensslName = 'aes-256-' + cipher.slice(7, 10); + break; + default: + throw (new Error( + 'Unsupported openssl cipher "' + cipher + '"')); + } + return (inf); +} + + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +// Copyright 2017 Joyent, Inc. + +module.exports = Key; + +var assert = __webpack_require__(16); +var algs = __webpack_require__(32); +var crypto = __webpack_require__(11); +var Fingerprint = __webpack_require__(156); +var Signature = __webpack_require__(75); +var DiffieHellman = __webpack_require__(325).DiffieHellman; +var errs = __webpack_require__(74); +var utils = __webpack_require__(26); +var PrivateKey = __webpack_require__(33); +var edCompat; + +try { + edCompat = __webpack_require__(454); +} catch (e) { + /* Just continue through, and bail out if we try to use it. */ +} + +var InvalidAlgorithmError = errs.InvalidAlgorithmError; +var KeyParseError = errs.KeyParseError; + +var formats = {}; +formats['auto'] = __webpack_require__(455); +formats['pem'] = __webpack_require__(86); +formats['pkcs1'] = __webpack_require__(327); +formats['pkcs8'] = __webpack_require__(157); +formats['rfc4253'] = __webpack_require__(103); +formats['ssh'] = __webpack_require__(456); +formats['ssh-private'] = __webpack_require__(193); +formats['openssh'] = formats['ssh-private']; +formats['dnssec'] = __webpack_require__(326); + +function Key(opts) { + assert.object(opts, 'options'); + assert.arrayOfObject(opts.parts, 'options.parts'); + assert.string(opts.type, 'options.type'); + assert.optionalString(opts.comment, 'options.comment'); + + var algInfo = algs.info[opts.type]; + if (typeof (algInfo) !== 'object') + throw (new InvalidAlgorithmError(opts.type)); + + var partLookup = {}; + for (var i = 0; i < opts.parts.length; ++i) { + var part = opts.parts[i]; + partLookup[part.name] = part; + } + + this.type = opts.type; + this.parts = opts.parts; + this.part = partLookup; + this.comment = undefined; + this.source = opts.source; + + /* for speeding up hashing/fingerprint operations */ + this._rfc4253Cache = opts._rfc4253Cache; + this._hashCache = {}; + + var sz; + this.curve = undefined; + if (this.type === 'ecdsa') { + var curve = this.part.curve.data.toString(); + this.curve = curve; + sz = algs.curves[curve].size; + } else if (this.type === 'ed25519' || this.type === 'curve25519') { + sz = 256; + this.curve = 'curve25519'; + } else { + var szPart = this.part[algInfo.sizePart]; + sz = szPart.data.length; + sz = sz * 8 - utils.countZeros(szPart.data); + } + this.size = sz; +} + +Key.formats = formats; + +Key.prototype.toBuffer = function (format, options) { + if (format === undefined) + format = 'ssh'; + assert.string(format, 'format'); + assert.object(formats[format], 'formats[format]'); + assert.optionalObject(options, 'options'); + + if (format === 'rfc4253') { + if (this._rfc4253Cache === undefined) + this._rfc4253Cache = formats['rfc4253'].write(this); + return (this._rfc4253Cache); + } + + return (formats[format].write(this, options)); +}; + +Key.prototype.toString = function (format, options) { + return (this.toBuffer(format, options).toString()); +}; + +Key.prototype.hash = function (algo) { + assert.string(algo, 'algorithm'); + algo = algo.toLowerCase(); + if (algs.hashAlgs[algo] === undefined) + throw (new InvalidAlgorithmError(algo)); + + if (this._hashCache[algo]) + return (this._hashCache[algo]); + var hash = crypto.createHash(algo). + update(this.toBuffer('rfc4253')).digest(); + this._hashCache[algo] = hash; + return (hash); +}; + +Key.prototype.fingerprint = function (algo) { + if (algo === undefined) + algo = 'sha256'; + assert.string(algo, 'algorithm'); + var opts = { + type: 'key', + hash: this.hash(algo), + algorithm: algo + }; + return (new Fingerprint(opts)); +}; + +Key.prototype.defaultHashAlgorithm = function () { + var hashAlgo = 'sha1'; + if (this.type === 'rsa') + hashAlgo = 'sha256'; + if (this.type === 'dsa' && this.size > 1024) + hashAlgo = 'sha256'; + if (this.type === 'ed25519') + hashAlgo = 'sha512'; + if (this.type === 'ecdsa') { + if (this.size <= 256) + hashAlgo = 'sha256'; + else if (this.size <= 384) + hashAlgo = 'sha384'; + else + hashAlgo = 'sha512'; + } + return (hashAlgo); +}; + +Key.prototype.createVerify = function (hashAlgo) { + if (hashAlgo === undefined) + hashAlgo = this.defaultHashAlgorithm(); + assert.string(hashAlgo, 'hash algorithm'); + + /* ED25519 is not supported by OpenSSL, use a javascript impl. */ + if (this.type === 'ed25519' && edCompat !== undefined) + return (new edCompat.Verifier(this, hashAlgo)); + if (this.type === 'curve25519') + throw (new Error('Curve25519 keys are not suitable for ' + + 'signing or verification')); + + var v, nm, err; + try { + nm = hashAlgo.toUpperCase(); + v = crypto.createVerify(nm); + } catch (e) { + err = e; + } + if (v === undefined || (err instanceof Error && + err.message.match(/Unknown message digest/))) { + nm = 'RSA-'; + nm += hashAlgo.toUpperCase(); + v = crypto.createVerify(nm); + } + assert.ok(v, 'failed to create verifier'); + var oldVerify = v.verify.bind(v); + var key = this.toBuffer('pkcs8'); + var curve = this.curve; + var self = this; + v.verify = function (signature, fmt) { + if (Signature.isSignature(signature, [2, 0])) { + if (signature.type !== self.type) + return (false); + if (signature.hashAlgorithm && + signature.hashAlgorithm !== hashAlgo) + return (false); + if (signature.curve && self.type === 'ecdsa' && + signature.curve !== curve) + return (false); + return (oldVerify(key, signature.toBuffer('asn1'))); + + } else if (typeof (signature) === 'string' || + Buffer.isBuffer(signature)) { + return (oldVerify(key, signature, fmt)); + + /* + * Avoid doing this on valid arguments, walking the prototype + * chain can be quite slow. + */ + } else if (Signature.isSignature(signature, [1, 0])) { + throw (new Error('signature was created by too old ' + + 'a version of sshpk and cannot be verified')); + + } else { + throw (new TypeError('signature must be a string, ' + + 'Buffer, or Signature object')); + } + }; + return (v); +}; + +Key.prototype.createDiffieHellman = function () { + if (this.type === 'rsa') + throw (new Error('RSA keys do not support Diffie-Hellman')); + + return (new DiffieHellman(this)); +}; +Key.prototype.createDH = Key.prototype.createDiffieHellman; + +Key.parse = function (data, format, options) { + if (typeof (data) !== 'string') + assert.buffer(data, 'data'); + if (format === undefined) + format = 'auto'; + assert.string(format, 'format'); + if (typeof (options) === 'string') + options = { filename: options }; + assert.optionalObject(options, 'options'); + if (options === undefined) + options = {}; + assert.optionalString(options.filename, 'options.filename'); + if (options.filename === undefined) + options.filename = '(unnamed)'; + + assert.object(formats[format], 'formats[format]'); + + try { + var k = formats[format].read(data, options); + if (k instanceof PrivateKey) + k = k.toPublic(); + if (!k.comment) + k.comment = options.filename; + return (k); + } catch (e) { + if (e.name === 'KeyEncryptedError') + throw (e); + throw (new KeyParseError(options.filename, format, e)); + } +}; + +Key.isKey = function (obj, ver) { + return (utils.isCompatible(obj, Key, ver)); +}; + +/* + * API versions for Key: + * [1,0] -- initial ver, may take Signature for createVerify or may not + * [1,1] -- added pkcs1, pkcs8 formats + * [1,2] -- added auto, ssh-private, openssh formats + * [1,3] -- added defaultHashAlgorithm + * [1,4] -- added ed support, createDH + * [1,5] -- first explicitly tagged version + * [1,6] -- changed ed25519 part names + */ +Key.prototype._sshpkApiVersion = [1, 6]; + +Key._oldVersionDetect = function (obj) { + assert.func(obj.toBuffer); + assert.func(obj.fingerprint); + if (obj.createDH) + return ([1, 4]); + if (obj.defaultHashAlgorithm) + return ([1, 3]); + if (obj.formats['auto']) + return ([1, 2]); + if (obj.formats['pkcs1']) + return ([1, 1]); + return ([1, 0]); +}; + + +/***/ }), +/* 28 */ +/***/ (function(module, exports) { + +module.exports = require("assert"); + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = nullify; +function nullify(obj = {}) { + if (Array.isArray(obj)) { + for (var _iterator = obj, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + const item = _ref; + + nullify(item); + } + } else if (obj !== null && typeof obj === 'object' || typeof obj === 'function') { + Object.setPrototypeOf(obj, null); + + // for..in can only be applied to 'object', not 'function' + if (typeof obj === 'object') { + for (const key in obj) { + nullify(obj[key]); + } + } + } + + return obj; +} + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const escapeStringRegexp = __webpack_require__(382); +const ansiStyles = __webpack_require__(474); +const stdoutColor = __webpack_require__(566).stdout; + +const template = __webpack_require__(567); + +const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); + +// `supportsColor.level` → `ansiStyles.color[name]` mapping +const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; + +// `color-convert` models to exclude from the Chalk API due to conflicts and such +const skipModels = new Set(['gray']); + +const styles = Object.create(null); + +function applyOptions(obj, options) { + options = options || {}; + + // 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)); + }; + + Object.setPrototypeOf(chalk, Chalk.prototype); + Object.setPrototypeOf(chalk.template, chalk); + + chalk.template.constructor = Chalk; + + return chalk.template; + } + + applyOptions(this, options); +} + +// Use bright blue on Windows as the normal blue color is illegible +if (isSimpleWindowsTerm) { + ansiStyles.blue.open = '\u001B[94m'; +} + +for (const key of Object.keys(ansiStyles)) { + ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); + + 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'); + } +}; + +ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g'); +for (const model of Object.keys(ansiStyles.color.ansi)) { + if (skipModels.has(model)) { + continue; + } + + 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; + } + + 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); + }; + } + }; +} + +const proto = Object.defineProperties(() => {}, styles); + +function build(_styles, _empty, key) { + const builder = function () { + return applyStyle.apply(builder, arguments); + }; + + 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 + + return builder; +} + +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; +} + +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]]; + + for (let i = 1; i < strings.length; i++) { + parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&')); + parts.push(String(strings.raw[i])); + } + + 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 + + +/***/ }), +/* 31 */ +/***/ (function(module, exports) { + +var core = module.exports = { version: '2.5.7' }; +if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef + + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +// Copyright 2015 Joyent, Inc. + +var Buffer = __webpack_require__(15).Buffer; + +var algInfo = { + 'dsa': { + parts: ['p', 'q', 'g', 'y'], + sizePart: 'p' + }, + 'rsa': { + parts: ['e', 'n'], + sizePart: 'n' + }, + 'ecdsa': { + parts: ['curve', 'Q'], + sizePart: 'Q' + }, + 'ed25519': { + parts: ['A'], + sizePart: 'A' + } +}; +algInfo['curve25519'] = algInfo['ed25519']; + +var algPrivInfo = { + 'dsa': { + parts: ['p', 'q', 'g', 'y', 'x'] + }, + 'rsa': { + parts: ['n', 'e', 'd', 'iqmp', 'p', 'q'] + }, + 'ecdsa': { + parts: ['curve', 'Q', 'd'] + }, + 'ed25519': { + parts: ['A', 'k'] + } +}; +algPrivInfo['curve25519'] = algPrivInfo['ed25519']; + +var hashAlgs = { + 'md5': true, + 'sha1': true, + 'sha256': true, + 'sha384': true, + 'sha512': true +}; + +/* + * Taken from + * http://csrc.nist.gov/groups/ST/toolkit/documents/dss/NISTReCur.pdf + */ +var curves = { + 'nistp256': { + size: 256, + pkcs8oid: '1.2.840.10045.3.1.7', + p: Buffer.from(('00' + + 'ffffffff 00000001 00000000 00000000' + + '00000000 ffffffff ffffffff ffffffff'). + replace(/ /g, ''), 'hex'), + a: Buffer.from(('00' + + 'FFFFFFFF 00000001 00000000 00000000' + + '00000000 FFFFFFFF FFFFFFFF FFFFFFFC'). + replace(/ /g, ''), 'hex'), + b: Buffer.from(( + '5ac635d8 aa3a93e7 b3ebbd55 769886bc' + + '651d06b0 cc53b0f6 3bce3c3e 27d2604b'). + replace(/ /g, ''), 'hex'), + s: Buffer.from(('00' + + 'c49d3608 86e70493 6a6678e1 139d26b7' + + '819f7e90'). + replace(/ /g, ''), 'hex'), + n: Buffer.from(('00' + + 'ffffffff 00000000 ffffffff ffffffff' + + 'bce6faad a7179e84 f3b9cac2 fc632551'). + replace(/ /g, ''), 'hex'), + G: Buffer.from(('04' + + '6b17d1f2 e12c4247 f8bce6e5 63a440f2' + + '77037d81 2deb33a0 f4a13945 d898c296' + + '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16' + + '2bce3357 6b315ece cbb64068 37bf51f5'). + replace(/ /g, ''), 'hex') + }, + 'nistp384': { + size: 384, + pkcs8oid: '1.3.132.0.34', + p: Buffer.from(('00' + + 'ffffffff ffffffff ffffffff ffffffff' + + 'ffffffff ffffffff ffffffff fffffffe' + + 'ffffffff 00000000 00000000 ffffffff'). + replace(/ /g, ''), 'hex'), + a: Buffer.from(('00' + + 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF' + + 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE' + + 'FFFFFFFF 00000000 00000000 FFFFFFFC'). + replace(/ /g, ''), 'hex'), + b: Buffer.from(( + 'b3312fa7 e23ee7e4 988e056b e3f82d19' + + '181d9c6e fe814112 0314088f 5013875a' + + 'c656398d 8a2ed19d 2a85c8ed d3ec2aef'). + replace(/ /g, ''), 'hex'), + s: Buffer.from(('00' + + 'a335926a a319a27a 1d00896a 6773a482' + + '7acdac73'). + replace(/ /g, ''), 'hex'), + n: Buffer.from(('00' + + 'ffffffff ffffffff ffffffff ffffffff' + + 'ffffffff ffffffff c7634d81 f4372ddf' + + '581a0db2 48b0a77a ecec196a ccc52973'). + replace(/ /g, ''), 'hex'), + G: Buffer.from(('04' + + 'aa87ca22 be8b0537 8eb1c71e f320ad74' + + '6e1d3b62 8ba79b98 59f741e0 82542a38' + + '5502f25d bf55296c 3a545e38 72760ab7' + + '3617de4a 96262c6f 5d9e98bf 9292dc29' + + 'f8f41dbd 289a147c e9da3113 b5f0b8c0' + + '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f'). + replace(/ /g, ''), 'hex') + }, + 'nistp521': { + size: 521, + pkcs8oid: '1.3.132.0.35', + p: Buffer.from(( + '01ffffff ffffffff ffffffff ffffffff' + + 'ffffffff ffffffff ffffffff ffffffff' + + 'ffffffff ffffffff ffffffff ffffffff' + + 'ffffffff ffffffff ffffffff ffffffff' + + 'ffff').replace(/ /g, ''), 'hex'), + a: Buffer.from(('01FF' + + 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF' + + 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF' + + 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF' + + 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFC'). + replace(/ /g, ''), 'hex'), + b: Buffer.from(('51' + + '953eb961 8e1c9a1f 929a21a0 b68540ee' + + 'a2da725b 99b315f3 b8b48991 8ef109e1' + + '56193951 ec7e937b 1652c0bd 3bb1bf07' + + '3573df88 3d2c34f1 ef451fd4 6b503f00'). + replace(/ /g, ''), 'hex'), + s: Buffer.from(('00' + + 'd09e8800 291cb853 96cc6717 393284aa' + + 'a0da64ba').replace(/ /g, ''), 'hex'), + n: Buffer.from(('01ff' + + 'ffffffff ffffffff ffffffff ffffffff' + + 'ffffffff ffffffff ffffffff fffffffa' + + '51868783 bf2f966b 7fcc0148 f709a5d0' + + '3bb5c9b8 899c47ae bb6fb71e 91386409'). + replace(/ /g, ''), 'hex'), + G: Buffer.from(('04' + + '00c6 858e06b7 0404e9cd 9e3ecb66 2395b442' + + '9c648139 053fb521 f828af60 6b4d3dba' + + 'a14b5e77 efe75928 fe1dc127 a2ffa8de' + + '3348b3c1 856a429b f97e7e31 c2e5bd66' + + '0118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9' + + '98f54449 579b4468 17afbd17 273e662c' + + '97ee7299 5ef42640 c550b901 3fad0761' + + '353c7086 a272c240 88be9476 9fd16650'). + replace(/ /g, ''), 'hex') + } +}; + +module.exports = { + info: algInfo, + privInfo: algPrivInfo, + hashAlgs: hashAlgs, + curves: curves +}; + + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +// Copyright 2017 Joyent, Inc. + +module.exports = PrivateKey; + +var assert = __webpack_require__(16); +var Buffer = __webpack_require__(15).Buffer; +var algs = __webpack_require__(32); +var crypto = __webpack_require__(11); +var Fingerprint = __webpack_require__(156); +var Signature = __webpack_require__(75); +var errs = __webpack_require__(74); +var util = __webpack_require__(3); +var utils = __webpack_require__(26); +var dhe = __webpack_require__(325); +var generateECDSA = dhe.generateECDSA; +var generateED25519 = dhe.generateED25519; +var edCompat; +var nacl; + +try { + edCompat = __webpack_require__(454); +} catch (e) { + /* Just continue through, and bail out if we try to use it. */ +} + +var Key = __webpack_require__(27); + +var InvalidAlgorithmError = errs.InvalidAlgorithmError; +var KeyParseError = errs.KeyParseError; +var KeyEncryptedError = errs.KeyEncryptedError; + +var formats = {}; +formats['auto'] = __webpack_require__(455); +formats['pem'] = __webpack_require__(86); +formats['pkcs1'] = __webpack_require__(327); +formats['pkcs8'] = __webpack_require__(157); +formats['rfc4253'] = __webpack_require__(103); +formats['ssh-private'] = __webpack_require__(193); +formats['openssh'] = formats['ssh-private']; +formats['ssh'] = formats['ssh-private']; +formats['dnssec'] = __webpack_require__(326); + +function PrivateKey(opts) { + assert.object(opts, 'options'); + Key.call(this, opts); + + this._pubCache = undefined; +} +util.inherits(PrivateKey, Key); + +PrivateKey.formats = formats; + +PrivateKey.prototype.toBuffer = function (format, options) { + if (format === undefined) + format = 'pkcs1'; + assert.string(format, 'format'); + assert.object(formats[format], 'formats[format]'); + assert.optionalObject(options, 'options'); + + return (formats[format].write(this, options)); +}; + +PrivateKey.prototype.hash = function (algo) { + return (this.toPublic().hash(algo)); +}; + +PrivateKey.prototype.toPublic = function () { + if (this._pubCache) + return (this._pubCache); + + var algInfo = algs.info[this.type]; + var pubParts = []; + for (var i = 0; i < algInfo.parts.length; ++i) { + var p = algInfo.parts[i]; + pubParts.push(this.part[p]); + } + + this._pubCache = new Key({ + type: this.type, + source: this, + parts: pubParts + }); + if (this.comment) + this._pubCache.comment = this.comment; + return (this._pubCache); +}; + +PrivateKey.prototype.derive = function (newType) { + assert.string(newType, 'type'); + var priv, pub, pair; + + if (this.type === 'ed25519' && newType === 'curve25519') { + if (nacl === undefined) + nacl = __webpack_require__(76); + + priv = this.part.k.data; + if (priv[0] === 0x00) + priv = priv.slice(1); + + pair = nacl.box.keyPair.fromSecretKey(new Uint8Array(priv)); + pub = Buffer.from(pair.publicKey); + + return (new PrivateKey({ + type: 'curve25519', + parts: [ + { name: 'A', data: utils.mpNormalize(pub) }, + { name: 'k', data: utils.mpNormalize(priv) } + ] + })); + } else if (this.type === 'curve25519' && newType === 'ed25519') { + if (nacl === undefined) + nacl = __webpack_require__(76); + + priv = this.part.k.data; + if (priv[0] === 0x00) + priv = priv.slice(1); + + pair = nacl.sign.keyPair.fromSeed(new Uint8Array(priv)); + pub = Buffer.from(pair.publicKey); + + return (new PrivateKey({ + type: 'ed25519', + parts: [ + { name: 'A', data: utils.mpNormalize(pub) }, + { name: 'k', data: utils.mpNormalize(priv) } + ] + })); + } + throw (new Error('Key derivation not supported from ' + this.type + + ' to ' + newType)); +}; + +PrivateKey.prototype.createVerify = function (hashAlgo) { + return (this.toPublic().createVerify(hashAlgo)); +}; + +PrivateKey.prototype.createSign = function (hashAlgo) { + if (hashAlgo === undefined) + hashAlgo = this.defaultHashAlgorithm(); + assert.string(hashAlgo, 'hash algorithm'); + + /* ED25519 is not supported by OpenSSL, use a javascript impl. */ + if (this.type === 'ed25519' && edCompat !== undefined) + return (new edCompat.Signer(this, hashAlgo)); + if (this.type === 'curve25519') + throw (new Error('Curve25519 keys are not suitable for ' + + 'signing or verification')); + + var v, nm, err; + try { + nm = hashAlgo.toUpperCase(); + v = crypto.createSign(nm); + } catch (e) { + err = e; + } + if (v === undefined || (err instanceof Error && + err.message.match(/Unknown message digest/))) { + nm = 'RSA-'; + nm += hashAlgo.toUpperCase(); + v = crypto.createSign(nm); + } + assert.ok(v, 'failed to create verifier'); + var oldSign = v.sign.bind(v); + var key = this.toBuffer('pkcs1'); + var type = this.type; + var curve = this.curve; + v.sign = function () { + var sig = oldSign(key); + if (typeof (sig) === 'string') + sig = Buffer.from(sig, 'binary'); + sig = Signature.parse(sig, type, 'asn1'); + sig.hashAlgorithm = hashAlgo; + sig.curve = curve; + return (sig); + }; + return (v); +}; + +PrivateKey.parse = function (data, format, options) { + if (typeof (data) !== 'string') + assert.buffer(data, 'data'); + if (format === undefined) + format = 'auto'; + assert.string(format, 'format'); + if (typeof (options) === 'string') + options = { filename: options }; + assert.optionalObject(options, 'options'); + if (options === undefined) + options = {}; + assert.optionalString(options.filename, 'options.filename'); + if (options.filename === undefined) + options.filename = '(unnamed)'; + + assert.object(formats[format], 'formats[format]'); + + try { + var k = formats[format].read(data, options); + assert.ok(k instanceof PrivateKey, 'key is not a private key'); + if (!k.comment) + k.comment = options.filename; + return (k); + } catch (e) { + if (e.name === 'KeyEncryptedError') + throw (e); + throw (new KeyParseError(options.filename, format, e)); + } +}; + +PrivateKey.isPrivateKey = function (obj, ver) { + return (utils.isCompatible(obj, PrivateKey, ver)); +}; + +PrivateKey.generate = function (type, options) { + if (options === undefined) + options = {}; + assert.object(options, 'options'); + + switch (type) { + case 'ecdsa': + if (options.curve === undefined) + options.curve = 'nistp256'; + assert.string(options.curve, 'options.curve'); + return (generateECDSA(options.curve)); + case 'ed25519': + return (generateED25519()); + default: + throw (new Error('Key generation not supported with key ' + + 'type "' + type + '"')); + } +}; + +/* + * API versions for PrivateKey: + * [1,0] -- initial ver + * [1,1] -- added auto, pkcs[18], openssh/ssh-private formats + * [1,2] -- added defaultHashAlgorithm + * [1,3] -- added derive, ed, createDH + * [1,4] -- first tagged version + * [1,5] -- changed ed25519 part names and format + */ +PrivateKey.prototype._sshpkApiVersion = [1, 5]; + +PrivateKey._oldVersionDetect = function (obj) { + assert.func(obj.toPublic); + assert.func(obj.createSign); + if (obj.derive) + return ([1, 3]); + if (obj.defaultHashAlgorithm) + return ([1, 2]); + if (obj.formats['auto']) + return ([1, 1]); + return ([1, 0]); +}; + + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.wrapLifecycle = exports.run = exports.install = exports.Install = undefined; + +var _extends2; + +function _load_extends() { + return _extends2 = _interopRequireDefault(__webpack_require__(20)); +} + +var _asyncToGenerator2; + +function _load_asyncToGenerator() { + return _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(2)); +} + +let install = exports.install = (() => { + var _ref29 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (config, reporter, flags, lockfile) { + yield wrapLifecycle(config, flags, (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + const install = new Install(flags, config, reporter, lockfile); + yield install.init(); + })); + }); + + return function install(_x7, _x8, _x9, _x10) { + return _ref29.apply(this, arguments); + }; +})(); + +let run = exports.run = (() => { + var _ref31 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (config, reporter, flags, args) { + let lockfile; + let error = 'installCommandRenamed'; + if (flags.lockfile === false) { + lockfile = new (_lockfile || _load_lockfile()).default(); + } else { + lockfile = yield (_lockfile || _load_lockfile()).default.fromDirectory(config.lockfileFolder, reporter); + } + + if (args.length) { + const exampleArgs = args.slice(); + + if (flags.saveDev) { + exampleArgs.push('--dev'); + } + if (flags.savePeer) { + exampleArgs.push('--peer'); + } + if (flags.saveOptional) { + exampleArgs.push('--optional'); + } + if (flags.saveExact) { + exampleArgs.push('--exact'); + } + if (flags.saveTilde) { + exampleArgs.push('--tilde'); + } + let command = 'add'; + if (flags.global) { + error = 'globalFlagRemoved'; + command = 'global add'; + } + throw new (_errors || _load_errors()).MessageError(reporter.lang(error, `yarn ${command} ${exampleArgs.join(' ')}`)); + } + + yield install(config, reporter, flags, lockfile); + }); + + return function run(_x11, _x12, _x13, _x14) { + return _ref31.apply(this, arguments); + }; +})(); + +let wrapLifecycle = exports.wrapLifecycle = (() => { + var _ref32 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (config, flags, factory) { + yield config.executeLifecycleScript('preinstall'); + + yield factory(); + + // npm behaviour, seems kinda funky but yay compatibility + yield config.executeLifecycleScript('install'); + yield config.executeLifecycleScript('postinstall'); + + if (!config.production) { + if (!config.disablePrepublish) { + yield config.executeLifecycleScript('prepublish'); + } + yield config.executeLifecycleScript('prepare'); + } + }); + + return function wrapLifecycle(_x15, _x16, _x17) { + return _ref32.apply(this, arguments); + }; +})(); + +exports.hasWrapper = hasWrapper; +exports.setFlags = setFlags; + +var _objectPath; + +function _load_objectPath() { + return _objectPath = _interopRequireDefault(__webpack_require__(304)); +} + +var _hooks; + +function _load_hooks() { + return _hooks = __webpack_require__(368); +} + +var _index; + +function _load_index() { + return _index = _interopRequireDefault(__webpack_require__(218)); +} + +var _errors; + +function _load_errors() { + return _errors = __webpack_require__(6); +} + +var _integrityChecker; + +function _load_integrityChecker() { + return _integrityChecker = _interopRequireDefault(__webpack_require__(206)); +} + +var _lockfile; + +function _load_lockfile() { + return _lockfile = _interopRequireDefault(__webpack_require__(19)); +} + +var _lockfile2; + +function _load_lockfile2() { + return _lockfile2 = __webpack_require__(19); +} + +var _packageFetcher; + +function _load_packageFetcher() { + return _packageFetcher = _interopRequireWildcard(__webpack_require__(208)); +} + +var _packageInstallScripts; + +function _load_packageInstallScripts() { + return _packageInstallScripts = _interopRequireDefault(__webpack_require__(525)); +} + +var _packageCompatibility; + +function _load_packageCompatibility() { + return _packageCompatibility = _interopRequireWildcard(__webpack_require__(207)); +} + +var _packageResolver; + +function _load_packageResolver() { + return _packageResolver = _interopRequireDefault(__webpack_require__(360)); +} + +var _packageLinker; + +function _load_packageLinker() { + return _packageLinker = _interopRequireDefault(__webpack_require__(209)); +} + +var _index2; + +function _load_index2() { + return _index2 = __webpack_require__(58); +} + +var _index3; + +function _load_index3() { + return _index3 = __webpack_require__(78); +} + +var _autoclean; + +function _load_autoclean() { + return _autoclean = __webpack_require__(348); +} + +var _constants; + +function _load_constants() { + return _constants = _interopRequireWildcard(__webpack_require__(8)); +} + +var _normalizePattern; + +function _load_normalizePattern() { + return _normalizePattern = __webpack_require__(37); +} + +var _fs; + +function _load_fs() { + return _fs = _interopRequireWildcard(__webpack_require__(5)); +} + +var _map; + +function _load_map() { + return _map = _interopRequireDefault(__webpack_require__(29)); +} + +var _yarnVersion; + +function _load_yarnVersion() { + return _yarnVersion = __webpack_require__(105); +} + +var _generatePnpMap; + +function _load_generatePnpMap() { + return _generatePnpMap = __webpack_require__(547); +} + +var _workspaceLayout; + +function _load_workspaceLayout() { + return _workspaceLayout = _interopRequireDefault(__webpack_require__(90)); +} + +var _resolutionMap; + +function _load_resolutionMap() { + return _resolutionMap = _interopRequireDefault(__webpack_require__(212)); +} + +var _guessName; + +function _load_guessName() { + return _guessName = _interopRequireDefault(__webpack_require__(169)); +} + +var _audit; + +function _load_audit() { + return _audit = _interopRequireDefault(__webpack_require__(347)); +} + +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; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const deepEqual = __webpack_require__(599); + +const emoji = __webpack_require__(302); +const invariant = __webpack_require__(9); +const path = __webpack_require__(0); +const semver = __webpack_require__(22); +const uuid = __webpack_require__(120); +const ssri = __webpack_require__(65); + +const ONE_DAY = 1000 * 60 * 60 * 24; + +/** + * Try and detect the installation method for Yarn and provide a command to update it with. + */ + +function getUpdateCommand(installationMethod) { + if (installationMethod === 'tar') { + return `curl --compressed -o- -L ${(_constants || _load_constants()).YARN_INSTALLER_SH} | bash`; + } + + if (installationMethod === 'homebrew') { + return 'brew upgrade yarn'; + } + + if (installationMethod === 'deb') { + return 'sudo apt-get update && sudo apt-get install yarn'; + } + + if (installationMethod === 'rpm') { + return 'sudo yum install yarn'; + } + + if (installationMethod === 'npm') { + return 'npm install --global yarn'; + } + + if (installationMethod === 'chocolatey') { + return 'choco upgrade yarn'; + } + + if (installationMethod === 'apk') { + return 'apk update && apk add -u yarn'; + } + + if (installationMethod === 'portage') { + return 'sudo emerge --sync && sudo emerge -au sys-apps/yarn'; + } + + return null; +} + +function getUpdateInstaller(installationMethod) { + // Windows + if (installationMethod === 'msi') { + return (_constants || _load_constants()).YARN_INSTALLER_MSI; + } + + return null; +} + +function normalizeFlags(config, rawFlags) { + const flags = { + // install + har: !!rawFlags.har, + ignorePlatform: !!rawFlags.ignorePlatform, + ignoreEngines: !!rawFlags.ignoreEngines, + ignoreScripts: !!rawFlags.ignoreScripts, + ignoreOptional: !!rawFlags.ignoreOptional, + force: !!rawFlags.force, + flat: !!rawFlags.flat, + lockfile: rawFlags.lockfile !== false, + pureLockfile: !!rawFlags.pureLockfile, + updateChecksums: !!rawFlags.updateChecksums, + skipIntegrityCheck: !!rawFlags.skipIntegrityCheck, + frozenLockfile: !!rawFlags.frozenLockfile, + linkDuplicates: !!rawFlags.linkDuplicates, + checkFiles: !!rawFlags.checkFiles, + audit: !!rawFlags.audit, + + // add + peer: !!rawFlags.peer, + dev: !!rawFlags.dev, + optional: !!rawFlags.optional, + exact: !!rawFlags.exact, + tilde: !!rawFlags.tilde, + ignoreWorkspaceRootCheck: !!rawFlags.ignoreWorkspaceRootCheck, + + // outdated, update-interactive + includeWorkspaceDeps: !!rawFlags.includeWorkspaceDeps, + + // add, remove, update + workspaceRootIsCwd: rawFlags.workspaceRootIsCwd !== false + }; + + if (config.getOption('ignore-scripts')) { + flags.ignoreScripts = true; + } + + if (config.getOption('ignore-platform')) { + flags.ignorePlatform = true; + } + + if (config.getOption('ignore-engines')) { + flags.ignoreEngines = true; + } + + if (config.getOption('ignore-optional')) { + flags.ignoreOptional = true; + } + + if (config.getOption('force')) { + flags.force = true; + } + + return flags; +} + +class Install { + constructor(flags, config, reporter, lockfile) { + this.rootManifestRegistries = []; + this.rootPatternsToOrigin = (0, (_map || _load_map()).default)(); + this.lockfile = lockfile; + this.reporter = reporter; + this.config = config; + this.flags = normalizeFlags(config, flags); + this.resolutions = (0, (_map || _load_map()).default)(); // Legacy resolutions field used for flat install mode + this.resolutionMap = new (_resolutionMap || _load_resolutionMap()).default(config); // Selective resolutions for nested dependencies + this.resolver = new (_packageResolver || _load_packageResolver()).default(config, lockfile, this.resolutionMap); + this.integrityChecker = new (_integrityChecker || _load_integrityChecker()).default(config); + this.linker = new (_packageLinker || _load_packageLinker()).default(config, this.resolver); + this.scripts = new (_packageInstallScripts || _load_packageInstallScripts()).default(config, this.resolver, this.flags.force); + } + + /** + * Create a list of dependency requests from the current directories manifests. + */ + + fetchRequestFromCwd(excludePatterns = [], ignoreUnusedPatterns = false) { + var _this = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + const patterns = []; + const deps = []; + let resolutionDeps = []; + const manifest = {}; + + const ignorePatterns = []; + const usedPatterns = []; + let workspaceLayout; + + // some commands should always run in the context of the entire workspace + const cwd = _this.flags.includeWorkspaceDeps || _this.flags.workspaceRootIsCwd ? _this.config.lockfileFolder : _this.config.cwd; + + // non-workspaces are always root, otherwise check for workspace root + const cwdIsRoot = !_this.config.workspaceRootFolder || _this.config.lockfileFolder === cwd; + + // exclude package names that are in install args + const excludeNames = []; + for (var _iterator = excludePatterns, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + const pattern = _ref; + + if ((0, (_index3 || _load_index3()).getExoticResolver)(pattern)) { + excludeNames.push((0, (_guessName || _load_guessName()).default)(pattern)); + } else { + // extract the name + const parts = (0, (_normalizePattern || _load_normalizePattern()).normalizePattern)(pattern); + excludeNames.push(parts.name); + } + } + + const stripExcluded = function stripExcluded(manifest) { + for (var _iterator2 = excludeNames, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { + var _ref2; + + if (_isArray2) { + if (_i2 >= _iterator2.length) break; + _ref2 = _iterator2[_i2++]; + } else { + _i2 = _iterator2.next(); + if (_i2.done) break; + _ref2 = _i2.value; + } + + const exclude = _ref2; + + if (manifest.dependencies && manifest.dependencies[exclude]) { + delete manifest.dependencies[exclude]; + } + if (manifest.devDependencies && manifest.devDependencies[exclude]) { + delete manifest.devDependencies[exclude]; + } + if (manifest.optionalDependencies && manifest.optionalDependencies[exclude]) { + delete manifest.optionalDependencies[exclude]; + } + } + }; + + for (var _iterator3 = Object.keys((_index2 || _load_index2()).registries), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) { + var _ref3; + + if (_isArray3) { + if (_i3 >= _iterator3.length) break; + _ref3 = _iterator3[_i3++]; + } else { + _i3 = _iterator3.next(); + if (_i3.done) break; + _ref3 = _i3.value; + } + + const registry = _ref3; + + const filename = (_index2 || _load_index2()).registries[registry].filename; + + const loc = path.join(cwd, filename); + if (!(yield (_fs || _load_fs()).exists(loc))) { + continue; + } + + _this.rootManifestRegistries.push(registry); + + const projectManifestJson = yield _this.config.readJson(loc); + yield (0, (_index || _load_index()).default)(projectManifestJson, cwd, _this.config, cwdIsRoot); + + Object.assign(_this.resolutions, projectManifestJson.resolutions); + Object.assign(manifest, projectManifestJson); + + _this.resolutionMap.init(_this.resolutions); + for (var _iterator4 = Object.keys(_this.resolutionMap.resolutionsByPackage), _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) { + var _ref4; + + if (_isArray4) { + if (_i4 >= _iterator4.length) break; + _ref4 = _iterator4[_i4++]; + } else { + _i4 = _iterator4.next(); + if (_i4.done) break; + _ref4 = _i4.value; + } + + const packageName = _ref4; + + const optional = (_objectPath || _load_objectPath()).default.has(manifest.optionalDependencies, packageName) && _this.flags.ignoreOptional; + for (var _iterator8 = _this.resolutionMap.resolutionsByPackage[packageName], _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) { + var _ref9; + + if (_isArray8) { + if (_i8 >= _iterator8.length) break; + _ref9 = _iterator8[_i8++]; + } else { + _i8 = _iterator8.next(); + if (_i8.done) break; + _ref9 = _i8.value; + } + + const _ref8 = _ref9; + const pattern = _ref8.pattern; + + resolutionDeps = [...resolutionDeps, { registry, pattern, optional, hint: 'resolution' }]; + } + } + + const pushDeps = function pushDeps(depType, manifest, { hint, optional }, isUsed) { + if (ignoreUnusedPatterns && !isUsed) { + return; + } + // We only take unused dependencies into consideration to get deterministic hoisting. + // Since flat mode doesn't care about hoisting and everything is top level and specified then we can safely + // leave these out. + if (_this.flags.flat && !isUsed) { + return; + } + const depMap = manifest[depType]; + for (const name in depMap) { + if (excludeNames.indexOf(name) >= 0) { + continue; + } + + let pattern = name; + if (!_this.lockfile.getLocked(pattern)) { + // when we use --save we save the dependency to the lockfile with just the name rather than the + // version combo + pattern += '@' + depMap[name]; + } + + // normalization made sure packages are mentioned only once + if (isUsed) { + usedPatterns.push(pattern); + } else { + ignorePatterns.push(pattern); + } + + _this.rootPatternsToOrigin[pattern] = depType; + patterns.push(pattern); + deps.push({ pattern, registry, hint, optional, workspaceName: manifest.name, workspaceLoc: manifest._loc }); + } + }; + + if (cwdIsRoot) { + pushDeps('dependencies', projectManifestJson, { hint: null, optional: false }, true); + pushDeps('devDependencies', projectManifestJson, { hint: 'dev', optional: false }, !_this.config.production); + pushDeps('optionalDependencies', projectManifestJson, { hint: 'optional', optional: true }, true); + } + + if (_this.config.workspaceRootFolder) { + const workspaceLoc = cwdIsRoot ? loc : path.join(_this.config.lockfileFolder, filename); + const workspacesRoot = path.dirname(workspaceLoc); + + let workspaceManifestJson = projectManifestJson; + if (!cwdIsRoot) { + // the manifest we read before was a child workspace, so get the root + workspaceManifestJson = yield _this.config.readJson(workspaceLoc); + yield (0, (_index || _load_index()).default)(workspaceManifestJson, workspacesRoot, _this.config, true); + } + + const workspaces = yield _this.config.resolveWorkspaces(workspacesRoot, workspaceManifestJson); + workspaceLayout = new (_workspaceLayout || _load_workspaceLayout()).default(workspaces, _this.config); + + // add virtual manifest that depends on all workspaces, this way package hoisters and resolvers will work fine + const workspaceDependencies = (0, (_extends2 || _load_extends()).default)({}, workspaceManifestJson.dependencies); + for (var _iterator5 = Object.keys(workspaces), _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) { + var _ref5; + + if (_isArray5) { + if (_i5 >= _iterator5.length) break; + _ref5 = _iterator5[_i5++]; + } else { + _i5 = _iterator5.next(); + if (_i5.done) break; + _ref5 = _i5.value; + } + + const workspaceName = _ref5; + + const workspaceManifest = workspaces[workspaceName].manifest; + workspaceDependencies[workspaceName] = workspaceManifest.version; + + // include dependencies from all workspaces + if (_this.flags.includeWorkspaceDeps) { + pushDeps('dependencies', workspaceManifest, { hint: null, optional: false }, true); + pushDeps('devDependencies', workspaceManifest, { hint: 'dev', optional: false }, !_this.config.production); + pushDeps('optionalDependencies', workspaceManifest, { hint: 'optional', optional: true }, true); + } + } + const virtualDependencyManifest = { + _uid: '', + name: `workspace-aggregator-${uuid.v4()}`, + version: '1.0.0', + _registry: 'npm', + _loc: workspacesRoot, + dependencies: workspaceDependencies, + devDependencies: (0, (_extends2 || _load_extends()).default)({}, workspaceManifestJson.devDependencies), + optionalDependencies: (0, (_extends2 || _load_extends()).default)({}, workspaceManifestJson.optionalDependencies), + private: workspaceManifestJson.private, + workspaces: workspaceManifestJson.workspaces + }; + workspaceLayout.virtualManifestName = virtualDependencyManifest.name; + const virtualDep = {}; + virtualDep[virtualDependencyManifest.name] = virtualDependencyManifest.version; + workspaces[virtualDependencyManifest.name] = { loc: workspacesRoot, manifest: virtualDependencyManifest }; + + // ensure dependencies that should be excluded are stripped from the correct manifest + stripExcluded(cwdIsRoot ? virtualDependencyManifest : workspaces[projectManifestJson.name].manifest); + + pushDeps('workspaces', { workspaces: virtualDep }, { hint: 'workspaces', optional: false }, true); + + const implicitWorkspaceDependencies = (0, (_extends2 || _load_extends()).default)({}, workspaceDependencies); + + for (var _iterator6 = (_constants || _load_constants()).OWNED_DEPENDENCY_TYPES, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) { + var _ref6; + + if (_isArray6) { + if (_i6 >= _iterator6.length) break; + _ref6 = _iterator6[_i6++]; + } else { + _i6 = _iterator6.next(); + if (_i6.done) break; + _ref6 = _i6.value; + } + + const type = _ref6; + + for (var _iterator7 = Object.keys(projectManifestJson[type] || {}), _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) { + var _ref7; + + if (_isArray7) { + if (_i7 >= _iterator7.length) break; + _ref7 = _iterator7[_i7++]; + } else { + _i7 = _iterator7.next(); + if (_i7.done) break; + _ref7 = _i7.value; + } + + const dependencyName = _ref7; + + delete implicitWorkspaceDependencies[dependencyName]; + } + } + + pushDeps('dependencies', { dependencies: implicitWorkspaceDependencies }, { hint: 'workspaces', optional: false }, true); + } + + break; + } + + // inherit root flat flag + if (manifest.flat) { + _this.flags.flat = true; + } + + return { + requests: [...resolutionDeps, ...deps], + patterns, + manifest, + usedPatterns, + ignorePatterns, + workspaceLayout + }; + })(); + } + + /** + * TODO description + */ + + prepareRequests(requests) { + return requests; + } + + preparePatterns(patterns) { + return patterns; + } + preparePatternsForLinking(patterns, cwdManifest, cwdIsRoot) { + return patterns; + } + + prepareManifests() { + var _this2 = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + const manifests = yield _this2.config.getRootManifests(); + return manifests; + })(); + } + + bailout(patterns, workspaceLayout) { + var _this3 = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + // We don't want to skip the audit - it could yield important errors + if (_this3.flags.audit) { + return false; + } + // PNP is so fast that the integrity check isn't pertinent + if (_this3.config.plugnplayEnabled) { + return false; + } + if (_this3.flags.skipIntegrityCheck || _this3.flags.force) { + return false; + } + const lockfileCache = _this3.lockfile.cache; + if (!lockfileCache) { + return false; + } + const lockfileClean = _this3.lockfile.parseResultType === 'success'; + const match = yield _this3.integrityChecker.check(patterns, lockfileCache, _this3.flags, workspaceLayout); + if (_this3.flags.frozenLockfile && (!lockfileClean || match.missingPatterns.length > 0)) { + throw new (_errors || _load_errors()).MessageError(_this3.reporter.lang('frozenLockfileError')); + } + + const haveLockfile = yield (_fs || _load_fs()).exists(path.join(_this3.config.lockfileFolder, (_constants || _load_constants()).LOCKFILE_FILENAME)); + + const lockfileIntegrityPresent = !_this3.lockfile.hasEntriesExistWithoutIntegrity(); + const integrityBailout = lockfileIntegrityPresent || !_this3.config.autoAddIntegrity; + + if (match.integrityMatches && haveLockfile && lockfileClean && integrityBailout) { + _this3.reporter.success(_this3.reporter.lang('upToDate')); + return true; + } + + if (match.integrityFileMissing && haveLockfile) { + // Integrity file missing, force script installations + _this3.scripts.setForce(true); + return false; + } + + if (match.hardRefreshRequired) { + // e.g. node version doesn't match, force script installations + _this3.scripts.setForce(true); + return false; + } + + if (!patterns.length && !match.integrityFileMissing) { + _this3.reporter.success(_this3.reporter.lang('nothingToInstall')); + yield _this3.createEmptyManifestFolders(); + yield _this3.saveLockfileAndIntegrity(patterns, workspaceLayout); + return true; + } + + return false; + })(); + } + + /** + * Produce empty folders for all used root manifests. + */ + + createEmptyManifestFolders() { + var _this4 = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + if (_this4.config.modulesFolder) { + // already created + return; + } + + for (var _iterator9 = _this4.rootManifestRegistries, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) { + var _ref10; + + if (_isArray9) { + if (_i9 >= _iterator9.length) break; + _ref10 = _iterator9[_i9++]; + } else { + _i9 = _iterator9.next(); + if (_i9.done) break; + _ref10 = _i9.value; + } + + const registryName = _ref10; + const folder = _this4.config.registries[registryName].folder; + + yield (_fs || _load_fs()).mkdirp(path.join(_this4.config.lockfileFolder, folder)); + } + })(); + } + + /** + * TODO description + */ + + markIgnored(patterns) { + for (var _iterator10 = patterns, _isArray10 = Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _iterator10[Symbol.iterator]();;) { + var _ref11; + + if (_isArray10) { + if (_i10 >= _iterator10.length) break; + _ref11 = _iterator10[_i10++]; + } else { + _i10 = _iterator10.next(); + if (_i10.done) break; + _ref11 = _i10.value; + } + + const pattern = _ref11; + + const manifest = this.resolver.getStrictResolvedPattern(pattern); + const ref = manifest._reference; + invariant(ref, 'expected package reference'); + + // just mark the package as ignored. if the package is used by a required package, the hoister + // will take care of that. + ref.ignore = true; + } + } + + /** + * helper method that gets only recent manifests + * used by global.ls command + */ + getFlattenedDeps() { + var _this5 = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + var _ref12 = yield _this5.fetchRequestFromCwd(); + + const depRequests = _ref12.requests, + rawPatterns = _ref12.patterns; + + + yield _this5.resolver.init(depRequests, {}); + + const manifests = yield (_packageFetcher || _load_packageFetcher()).fetch(_this5.resolver.getManifests(), _this5.config); + _this5.resolver.updateManifests(manifests); + + return _this5.flatten(rawPatterns); + })(); + } + + /** + * TODO description + */ + + init() { + var _this6 = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + _this6.checkUpdate(); + + // warn if we have a shrinkwrap + if (yield (_fs || _load_fs()).exists(path.join(_this6.config.lockfileFolder, (_constants || _load_constants()).NPM_SHRINKWRAP_FILENAME))) { + _this6.reporter.warn(_this6.reporter.lang('shrinkwrapWarning')); + } + + // warn if we have an npm lockfile + if (yield (_fs || _load_fs()).exists(path.join(_this6.config.lockfileFolder, (_constants || _load_constants()).NPM_LOCK_FILENAME))) { + _this6.reporter.warn(_this6.reporter.lang('npmLockfileWarning')); + } + + if (_this6.config.plugnplayEnabled) { + _this6.reporter.info(_this6.reporter.lang('plugnplaySuggestV2L1')); + _this6.reporter.info(_this6.reporter.lang('plugnplaySuggestV2L2')); + } + + let flattenedTopLevelPatterns = []; + const steps = []; + + var _ref13 = yield _this6.fetchRequestFromCwd(); + + const depRequests = _ref13.requests, + rawPatterns = _ref13.patterns, + ignorePatterns = _ref13.ignorePatterns, + workspaceLayout = _ref13.workspaceLayout, + manifest = _ref13.manifest; + + let topLevelPatterns = []; + + const artifacts = yield _this6.integrityChecker.getArtifacts(); + if (artifacts) { + _this6.linker.setArtifacts(artifacts); + _this6.scripts.setArtifacts(artifacts); + } + + if ((_packageCompatibility || _load_packageCompatibility()).shouldCheck(manifest, _this6.flags)) { + steps.push((() => { + var _ref14 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (curr, total) { + _this6.reporter.step(curr, total, _this6.reporter.lang('checkingManifest'), emoji.get('mag')); + yield _this6.checkCompatibility(); + }); + + return function (_x, _x2) { + return _ref14.apply(this, arguments); + }; + })()); + } + + const audit = new (_audit || _load_audit()).default(_this6.config, _this6.reporter, { groups: (_constants || _load_constants()).OWNED_DEPENDENCY_TYPES }); + let auditFoundProblems = false; + + steps.push(function (curr, total) { + return (0, (_hooks || _load_hooks()).callThroughHook)('resolveStep', (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + _this6.reporter.step(curr, total, _this6.reporter.lang('resolvingPackages'), emoji.get('mag')); + yield _this6.resolver.init(_this6.prepareRequests(depRequests), { + isFlat: _this6.flags.flat, + isFrozen: _this6.flags.frozenLockfile, + workspaceLayout + }); + topLevelPatterns = _this6.preparePatterns(rawPatterns); + flattenedTopLevelPatterns = yield _this6.flatten(topLevelPatterns); + return { bailout: !_this6.flags.audit && (yield _this6.bailout(topLevelPatterns, workspaceLayout)) }; + })); + }); + + if (_this6.flags.audit) { + steps.push(function (curr, total) { + return (0, (_hooks || _load_hooks()).callThroughHook)('auditStep', (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + _this6.reporter.step(curr, total, _this6.reporter.lang('auditRunning'), emoji.get('mag')); + if (_this6.flags.offline) { + _this6.reporter.warn(_this6.reporter.lang('auditOffline')); + return { bailout: false }; + } + const preparedManifests = yield _this6.prepareManifests(); + // $FlowFixMe - Flow considers `m` in the map operation to be "mixed", so does not recognize `m.object` + const mergedManifest = Object.assign({}, ...Object.values(preparedManifests).map(function (m) { + return m.object; + })); + const auditVulnerabilityCounts = yield audit.performAudit(mergedManifest, _this6.lockfile, _this6.resolver, _this6.linker, topLevelPatterns); + auditFoundProblems = auditVulnerabilityCounts.info || auditVulnerabilityCounts.low || auditVulnerabilityCounts.moderate || auditVulnerabilityCounts.high || auditVulnerabilityCounts.critical; + return { bailout: yield _this6.bailout(topLevelPatterns, workspaceLayout) }; + })); + }); + } + + steps.push(function (curr, total) { + return (0, (_hooks || _load_hooks()).callThroughHook)('fetchStep', (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + _this6.markIgnored(ignorePatterns); + _this6.reporter.step(curr, total, _this6.reporter.lang('fetchingPackages'), emoji.get('truck')); + const manifests = yield (_packageFetcher || _load_packageFetcher()).fetch(_this6.resolver.getManifests(), _this6.config); + _this6.resolver.updateManifests(manifests); + yield (_packageCompatibility || _load_packageCompatibility()).check(_this6.resolver.getManifests(), _this6.config, _this6.flags.ignoreEngines); + })); + }); + + steps.push(function (curr, total) { + return (0, (_hooks || _load_hooks()).callThroughHook)('linkStep', (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + // remove integrity hash to make this operation atomic + yield _this6.integrityChecker.removeIntegrityFile(); + _this6.reporter.step(curr, total, _this6.reporter.lang('linkingDependencies'), emoji.get('link')); + flattenedTopLevelPatterns = _this6.preparePatternsForLinking(flattenedTopLevelPatterns, manifest, _this6.config.lockfileFolder === _this6.config.cwd); + yield _this6.linker.init(flattenedTopLevelPatterns, workspaceLayout, { + linkDuplicates: _this6.flags.linkDuplicates, + ignoreOptional: _this6.flags.ignoreOptional + }); + })); + }); + + if (_this6.config.plugnplayEnabled) { + steps.push(function (curr, total) { + return (0, (_hooks || _load_hooks()).callThroughHook)('pnpStep', (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + const pnpPath = `${_this6.config.lockfileFolder}/${(_constants || _load_constants()).PNP_FILENAME}`; + + const code = yield (0, (_generatePnpMap || _load_generatePnpMap()).generatePnpMap)(_this6.config, flattenedTopLevelPatterns, { + resolver: _this6.resolver, + reporter: _this6.reporter, + targetPath: pnpPath, + workspaceLayout + }); + + try { + const file = yield (_fs || _load_fs()).readFile(pnpPath); + if (file === code) { + return; + } + } catch (error) {} + + yield (_fs || _load_fs()).writeFile(pnpPath, code); + yield (_fs || _load_fs()).chmod(pnpPath, 0o755); + })); + }); + } + + steps.push(function (curr, total) { + return (0, (_hooks || _load_hooks()).callThroughHook)('buildStep', (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + _this6.reporter.step(curr, total, _this6.flags.force ? _this6.reporter.lang('rebuildingPackages') : _this6.reporter.lang('buildingFreshPackages'), emoji.get('hammer')); + + if (_this6.config.ignoreScripts) { + _this6.reporter.warn(_this6.reporter.lang('ignoredScripts')); + } else { + yield _this6.scripts.init(flattenedTopLevelPatterns); + } + })); + }); + + if (_this6.flags.har) { + steps.push((() => { + var _ref21 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (curr, total) { + const formattedDate = new Date().toISOString().replace(/:/g, '-'); + const filename = `yarn-install_${formattedDate}.har`; + _this6.reporter.step(curr, total, _this6.reporter.lang('savingHar', filename), emoji.get('black_circle_for_record')); + yield _this6.config.requestManager.saveHar(filename); + }); + + return function (_x3, _x4) { + return _ref21.apply(this, arguments); + }; + })()); + } + + if (yield _this6.shouldClean()) { + steps.push((() => { + var _ref22 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (curr, total) { + _this6.reporter.step(curr, total, _this6.reporter.lang('cleaningModules'), emoji.get('recycle')); + yield (0, (_autoclean || _load_autoclean()).clean)(_this6.config, _this6.reporter); + }); + + return function (_x5, _x6) { + return _ref22.apply(this, arguments); + }; + })()); + } + + let currentStep = 0; + for (var _iterator11 = steps, _isArray11 = Array.isArray(_iterator11), _i11 = 0, _iterator11 = _isArray11 ? _iterator11 : _iterator11[Symbol.iterator]();;) { + var _ref23; + + if (_isArray11) { + if (_i11 >= _iterator11.length) break; + _ref23 = _iterator11[_i11++]; + } else { + _i11 = _iterator11.next(); + if (_i11.done) break; + _ref23 = _i11.value; + } + + const step = _ref23; + + const stepResult = yield step(++currentStep, steps.length); + if (stepResult && stepResult.bailout) { + if (_this6.flags.audit) { + audit.summary(); + } + if (auditFoundProblems) { + _this6.reporter.warn(_this6.reporter.lang('auditRunAuditForDetails')); + } + _this6.maybeOutputUpdate(); + return flattenedTopLevelPatterns; + } + } + + // fin! + if (_this6.flags.audit) { + audit.summary(); + } + if (auditFoundProblems) { + _this6.reporter.warn(_this6.reporter.lang('auditRunAuditForDetails')); + } + yield _this6.saveLockfileAndIntegrity(topLevelPatterns, workspaceLayout); + yield _this6.persistChanges(); + _this6.maybeOutputUpdate(); + _this6.config.requestManager.clearCache(); + return flattenedTopLevelPatterns; + })(); + } + + checkCompatibility() { + var _this7 = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + var _ref24 = yield _this7.fetchRequestFromCwd(); + + const manifest = _ref24.manifest; + + yield (_packageCompatibility || _load_packageCompatibility()).checkOne(manifest, _this7.config, _this7.flags.ignoreEngines); + })(); + } + + persistChanges() { + var _this8 = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + // get all the different registry manifests in this folder + const manifests = yield _this8.config.getRootManifests(); + + if (yield _this8.applyChanges(manifests)) { + yield _this8.config.saveRootManifests(manifests); + } + })(); + } + + applyChanges(manifests) { + let hasChanged = false; + + if (this.config.plugnplayPersist) { + const object = manifests.npm.object; + + + if (typeof object.installConfig !== 'object') { + object.installConfig = {}; + } + + if (this.config.plugnplayEnabled && object.installConfig.pnp !== true) { + object.installConfig.pnp = true; + hasChanged = true; + } else if (!this.config.plugnplayEnabled && typeof object.installConfig.pnp !== 'undefined') { + delete object.installConfig.pnp; + hasChanged = true; + } + + if (Object.keys(object.installConfig).length === 0) { + delete object.installConfig; + } + } + + return Promise.resolve(hasChanged); + } + + /** + * Check if we should run the cleaning step. + */ + + shouldClean() { + return (_fs || _load_fs()).exists(path.join(this.config.lockfileFolder, (_constants || _load_constants()).CLEAN_FILENAME)); + } + + /** + * TODO + */ + + flatten(patterns) { + var _this9 = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + if (!_this9.flags.flat) { + return patterns; + } + + const flattenedPatterns = []; + + for (var _iterator12 = _this9.resolver.getAllDependencyNamesByLevelOrder(patterns), _isArray12 = Array.isArray(_iterator12), _i12 = 0, _iterator12 = _isArray12 ? _iterator12 : _iterator12[Symbol.iterator]();;) { + var _ref25; + + if (_isArray12) { + if (_i12 >= _iterator12.length) break; + _ref25 = _iterator12[_i12++]; + } else { + _i12 = _iterator12.next(); + if (_i12.done) break; + _ref25 = _i12.value; + } + + const name = _ref25; + + const infos = _this9.resolver.getAllInfoForPackageName(name).filter(function (manifest) { + const ref = manifest._reference; + invariant(ref, 'expected package reference'); + return !ref.ignore; + }); + + if (infos.length === 0) { + continue; + } + + if (infos.length === 1) { + // single version of this package + // take out a single pattern as multiple patterns may have resolved to this package + flattenedPatterns.push(_this9.resolver.patternsByPackage[name][0]); + continue; + } + + const options = infos.map(function (info) { + const ref = info._reference; + invariant(ref, 'expected reference'); + return { + // TODO `and is required by {PARENT}`, + name: _this9.reporter.lang('manualVersionResolutionOption', ref.patterns.join(', '), info.version), + + value: info.version + }; + }); + const versions = infos.map(function (info) { + return info.version; + }); + let version; + + const resolutionVersion = _this9.resolutions[name]; + if (resolutionVersion && versions.indexOf(resolutionVersion) >= 0) { + // use json `resolution` version + version = resolutionVersion; + } else { + version = yield _this9.reporter.select(_this9.reporter.lang('manualVersionResolution', name), _this9.reporter.lang('answer'), options); + _this9.resolutions[name] = version; + } + + flattenedPatterns.push(_this9.resolver.collapseAllVersionsOfPackage(name, version)); + } + + // save resolutions to their appropriate root manifest + if (Object.keys(_this9.resolutions).length) { + const manifests = yield _this9.config.getRootManifests(); + + for (const name in _this9.resolutions) { + const version = _this9.resolutions[name]; + + const patterns = _this9.resolver.patternsByPackage[name]; + if (!patterns) { + continue; + } + + let manifest; + for (var _iterator13 = patterns, _isArray13 = Array.isArray(_iterator13), _i13 = 0, _iterator13 = _isArray13 ? _iterator13 : _iterator13[Symbol.iterator]();;) { + var _ref26; + + if (_isArray13) { + if (_i13 >= _iterator13.length) break; + _ref26 = _iterator13[_i13++]; + } else { + _i13 = _iterator13.next(); + if (_i13.done) break; + _ref26 = _i13.value; + } + + const pattern = _ref26; + + manifest = _this9.resolver.getResolvedPattern(pattern); + if (manifest) { + break; + } + } + invariant(manifest, 'expected manifest'); + + const ref = manifest._reference; + invariant(ref, 'expected reference'); + + const object = manifests[ref.registry].object; + object.resolutions = object.resolutions || {}; + object.resolutions[name] = version; + } + + yield _this9.config.saveRootManifests(manifests); + } + + return flattenedPatterns; + })(); + } + + /** + * Remove offline tarballs that are no longer required + */ + + pruneOfflineMirror(lockfile) { + var _this10 = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + const mirror = _this10.config.getOfflineMirrorPath(); + if (!mirror) { + return; + } + + const requiredTarballs = new Set(); + for (const dependency in lockfile) { + const resolved = lockfile[dependency].resolved; + if (resolved) { + const basename = path.basename(resolved.split('#')[0]); + if (dependency[0] === '@' && basename[0] !== '@') { + requiredTarballs.add(`${dependency.split('/')[0]}-${basename}`); + } + requiredTarballs.add(basename); + } + } + + const mirrorFiles = yield (_fs || _load_fs()).walk(mirror); + for (var _iterator14 = mirrorFiles, _isArray14 = Array.isArray(_iterator14), _i14 = 0, _iterator14 = _isArray14 ? _iterator14 : _iterator14[Symbol.iterator]();;) { + var _ref27; + + if (_isArray14) { + if (_i14 >= _iterator14.length) break; + _ref27 = _iterator14[_i14++]; + } else { + _i14 = _iterator14.next(); + if (_i14.done) break; + _ref27 = _i14.value; + } + + const file = _ref27; + + const isTarball = path.extname(file.basename) === '.tgz'; + // if using experimental-pack-script-packages-in-mirror flag, don't unlink prebuilt packages + const hasPrebuiltPackage = file.relative.startsWith('prebuilt/'); + if (isTarball && !hasPrebuiltPackage && !requiredTarballs.has(file.basename)) { + yield (_fs || _load_fs()).unlink(file.absolute); + } + } + })(); + } + + /** + * Save updated integrity and lockfiles. + */ + + saveLockfileAndIntegrity(patterns, workspaceLayout) { + var _this11 = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + const resolvedPatterns = {}; + Object.keys(_this11.resolver.patterns).forEach(function (pattern) { + if (!workspaceLayout || !workspaceLayout.getManifestByPattern(pattern)) { + resolvedPatterns[pattern] = _this11.resolver.patterns[pattern]; + } + }); + + // TODO this code is duplicated in a few places, need a common way to filter out workspace patterns from lockfile + patterns = patterns.filter(function (p) { + return !workspaceLayout || !workspaceLayout.getManifestByPattern(p); + }); + + const lockfileBasedOnResolver = _this11.lockfile.getLockfile(resolvedPatterns); + + if (_this11.config.pruneOfflineMirror) { + yield _this11.pruneOfflineMirror(lockfileBasedOnResolver); + } + + // write integrity hash + if (!_this11.config.plugnplayEnabled) { + yield _this11.integrityChecker.save(patterns, lockfileBasedOnResolver, _this11.flags, workspaceLayout, _this11.scripts.getArtifacts()); + } + + // --no-lockfile or --pure-lockfile or --frozen-lockfile + if (_this11.flags.lockfile === false || _this11.flags.pureLockfile || _this11.flags.frozenLockfile) { + return; + } + + const lockFileHasAllPatterns = patterns.every(function (p) { + return _this11.lockfile.getLocked(p); + }); + const lockfilePatternsMatch = Object.keys(_this11.lockfile.cache || {}).every(function (p) { + return lockfileBasedOnResolver[p]; + }); + const resolverPatternsAreSameAsInLockfile = Object.keys(lockfileBasedOnResolver).every(function (pattern) { + const manifest = _this11.lockfile.getLocked(pattern); + return manifest && manifest.resolved === lockfileBasedOnResolver[pattern].resolved && deepEqual(manifest.prebuiltVariants, lockfileBasedOnResolver[pattern].prebuiltVariants); + }); + const integrityPatternsAreSameAsInLockfile = Object.keys(lockfileBasedOnResolver).every(function (pattern) { + const existingIntegrityInfo = lockfileBasedOnResolver[pattern].integrity; + if (!existingIntegrityInfo) { + // if this entry does not have an integrity, no need to re-write the lockfile because of it + return true; + } + const manifest = _this11.lockfile.getLocked(pattern); + if (manifest && manifest.integrity) { + const manifestIntegrity = ssri.stringify(manifest.integrity); + return manifestIntegrity === existingIntegrityInfo; + } + return false; + }); + + // remove command is followed by install with force, lockfile will be rewritten in any case then + if (!_this11.flags.force && _this11.lockfile.parseResultType === 'success' && lockFileHasAllPatterns && lockfilePatternsMatch && resolverPatternsAreSameAsInLockfile && integrityPatternsAreSameAsInLockfile && patterns.length) { + return; + } + + // build lockfile location + const loc = path.join(_this11.config.lockfileFolder, (_constants || _load_constants()).LOCKFILE_FILENAME); + + // write lockfile + const lockSource = (0, (_lockfile2 || _load_lockfile2()).stringify)(lockfileBasedOnResolver, false, _this11.config.enableLockfileVersions); + yield (_fs || _load_fs()).writeFilePreservingEol(loc, lockSource); + + _this11._logSuccessSaveLockfile(); + })(); + } + + _logSuccessSaveLockfile() { + this.reporter.success(this.reporter.lang('savedLockfile')); + } + + /** + * Load the dependency graph of the current install. Only does package resolving and wont write to the cwd. + */ + hydrate(ignoreUnusedPatterns) { + var _this12 = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + const request = yield _this12.fetchRequestFromCwd([], ignoreUnusedPatterns); + const depRequests = request.requests, + rawPatterns = request.patterns, + ignorePatterns = request.ignorePatterns, + workspaceLayout = request.workspaceLayout; + + + yield _this12.resolver.init(depRequests, { + isFlat: _this12.flags.flat, + isFrozen: _this12.flags.frozenLockfile, + workspaceLayout + }); + yield _this12.flatten(rawPatterns); + _this12.markIgnored(ignorePatterns); + + // fetch packages, should hit cache most of the time + const manifests = yield (_packageFetcher || _load_packageFetcher()).fetch(_this12.resolver.getManifests(), _this12.config); + _this12.resolver.updateManifests(manifests); + yield (_packageCompatibility || _load_packageCompatibility()).check(_this12.resolver.getManifests(), _this12.config, _this12.flags.ignoreEngines); + + // expand minimal manifests + for (var _iterator15 = _this12.resolver.getManifests(), _isArray15 = Array.isArray(_iterator15), _i15 = 0, _iterator15 = _isArray15 ? _iterator15 : _iterator15[Symbol.iterator]();;) { + var _ref28; + + if (_isArray15) { + if (_i15 >= _iterator15.length) break; + _ref28 = _iterator15[_i15++]; + } else { + _i15 = _iterator15.next(); + if (_i15.done) break; + _ref28 = _i15.value; + } + + const manifest = _ref28; + + const ref = manifest._reference; + invariant(ref, 'expected reference'); + const type = ref.remote.type; + // link specifier won't ever hit cache + + let loc = ''; + if (type === 'link') { + continue; + } else if (type === 'workspace') { + if (!ref.remote.reference) { + continue; + } + loc = ref.remote.reference; + } else { + loc = _this12.config.generateModuleCachePath(ref); + } + const newPkg = yield _this12.config.readManifest(loc); + yield _this12.resolver.updateManifest(ref, newPkg); + } + + return request; + })(); + } + + /** + * Check for updates every day and output a nag message if there's a newer version. + */ + + checkUpdate() { + if (this.config.nonInteractive) { + // don't show upgrade dialog on CI or non-TTY terminals + return; + } + + // don't check if disabled + if (this.config.getOption('disable-self-update-check')) { + return; + } + + // only check for updates once a day + const lastUpdateCheck = Number(this.config.getOption('lastUpdateCheck')) || 0; + if (lastUpdateCheck && Date.now() - lastUpdateCheck < ONE_DAY) { + return; + } + + // don't bug for updates on tagged releases + if ((_yarnVersion || _load_yarnVersion()).version.indexOf('-') >= 0) { + return; + } + + this._checkUpdate().catch(() => { + // swallow errors + }); + } + + _checkUpdate() { + var _this13 = this; + + return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { + let latestVersion = yield _this13.config.requestManager.request({ + url: (_constants || _load_constants()).SELF_UPDATE_VERSION_URL + }); + invariant(typeof latestVersion === 'string', 'expected string'); + latestVersion = latestVersion.trim(); + if (!semver.valid(latestVersion)) { + return; + } + + // ensure we only check for updates periodically + _this13.config.registries.yarn.saveHomeConfig({ + lastUpdateCheck: Date.now() + }); + + if (semver.gt(latestVersion, (_yarnVersion || _load_yarnVersion()).version)) { + const installationMethod = yield (0, (_yarnVersion || _load_yarnVersion()).getInstallationMethod)(); + _this13.maybeOutputUpdate = function () { + _this13.reporter.warn(_this13.reporter.lang('yarnOutdated', latestVersion, (_yarnVersion || _load_yarnVersion()).version)); + + const command = getUpdateCommand(installationMethod); + if (command) { + _this13.reporter.info(_this13.reporter.lang('yarnOutdatedCommand')); + _this13.reporter.command(command); + } else { + const installer = getUpdateInstaller(installationMethod); + if (installer) { + _this13.reporter.info(_this13.reporter.lang('yarnOutdatedInstaller', installer)); + } + } + }; + } + })(); + } + + /** + * Method to override with a possible upgrade message. + */ + + maybeOutputUpdate() {} +} + +exports.Install = Install; +function hasWrapper(commander, args) { + return true; +} + +function setFlags(commander) { + commander.description('Yarn install is used to install all dependencies for a project.'); + commander.usage('install [flags]'); + commander.option('-A, --audit', 'Run vulnerability audit on installed packages'); + commander.option('-g, --global', 'DEPRECATED'); + commander.option('-S, --save', 'DEPRECATED - save package to your `dependencies`'); + commander.option('-D, --save-dev', 'DEPRECATED - save package to your `devDependencies`'); + commander.option('-P, --save-peer', 'DEPRECATED - save package to your `peerDependencies`'); + commander.option('-O, --save-optional', 'DEPRECATED - save package to your `optionalDependencies`'); + commander.option('-E, --save-exact', 'DEPRECATED'); + commander.option('-T, --save-tilde', 'DEPRECATED'); +} + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(53); +module.exports = function (it) { + if (!isObject(it)) throw TypeError(it + ' is not an object!'); + return it; +}; + + +/***/ }), +/* 36 */ +/***/ (function(module, __webpack_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 __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Observable__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Subscriber__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Subscription__ = __webpack_require__(25); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_ObjectUnsubscribedError__ = __webpack_require__(190); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__SubjectSubscription__ = __webpack_require__(422); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__internal_symbol_rxSubscriber__ = __webpack_require__(321); +/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */ + + + + + + + +var SubjectSubscriber = /*@__PURE__*/ (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](SubjectSubscriber, _super); + function SubjectSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + return _this; + } + return SubjectSubscriber; +}(__WEBPACK_IMPORTED_MODULE_2__Subscriber__["a" /* Subscriber */])); + +var Subject = /*@__PURE__*/ (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __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[__WEBPACK_IMPORTED_MODULE_6__internal_symbol_rxSubscriber__["a" /* 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 __WEBPACK_IMPORTED_MODULE_4__util_ObjectUnsubscribedError__["a" /* 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 __WEBPACK_IMPORTED_MODULE_4__util_ObjectUnsubscribedError__["a" /* 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 __WEBPACK_IMPORTED_MODULE_4__util_ObjectUnsubscribedError__["a" /* 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 __WEBPACK_IMPORTED_MODULE_4__util_ObjectUnsubscribedError__["a" /* ObjectUnsubscribedError */](); + } + else { + return _super.prototype._trySubscribe.call(this, subscriber); + } + }; + Subject.prototype._subscribe = function (subscriber) { + if (this.closed) { + throw new __WEBPACK_IMPORTED_MODULE_4__util_ObjectUnsubscribedError__["a" /* ObjectUnsubscribedError */](); + } + else if (this.hasError) { + subscriber.error(this.thrownError); + return __WEBPACK_IMPORTED_MODULE_3__Subscription__["a" /* Subscription */].EMPTY; + } + else if (this.isStopped) { + subscriber.complete(); + return __WEBPACK_IMPORTED_MODULE_3__Subscription__["a" /* Subscription */].EMPTY; + } + else { + this.observers.push(subscriber); + return new __WEBPACK_IMPORTED_MODULE_5__SubjectSubscription__["a" /* SubjectSubscription */](this, subscriber); + } + }; + Subject.prototype.asObservable = function () { + var observable = new __WEBPACK_IMPORTED_MODULE_1__Observable__["a" /* Observable */](); + observable.source = this; + return observable; + }; + Subject.create = function (destination, source) { + return new AnonymousSubject(destination, source); + }; + return Subject; +}(__WEBPACK_IMPORTED_MODULE_1__Observable__["a" /* Observable */])); + +var AnonymousSubject = /*@__PURE__*/ (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __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 __WEBPACK_IMPORTED_MODULE_3__Subscription__["a" /* Subscription */].EMPTY; + } + }; + return AnonymousSubject; +}(Subject)); + +//# sourceMappingURL=Subject.js.map + + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.normalizePattern = normalizePattern; + +/** + * Explode and normalize a pattern into its name and range. + */ + +function normalizePattern(pattern) { + let hasVersion = false; + let range = 'latest'; + let name = pattern; + + // if we're a scope then remove the @ and add it back later + let isScoped = false; + if (name[0] === '@') { + isScoped = true; + name = name.slice(1); + } + + // take first part as the name + const parts = name.split('@'); + if (parts.length > 1) { + name = parts.shift(); + range = parts.join('@'); + + if (range) { + hasVersion = true; + } else { + range = '*'; + } + } + + // add back @ scope suffix + if (isScoped) { + name = `@${name}`; + } + + return { name, range, hasVersion }; +} + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_RESULT__;/** + * @license + * Lodash + * Copyright JS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ +;(function() { + + /** Used as a safe reference for `undefined` in pre-ES5 environments. */ + var undefined; + + /** Used as the semantic version number. */ + var VERSION = '4.17.10'; + + /** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE = 200; + + /** Error message constants. */ + var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', + FUNC_ERROR_TEXT = 'Expected a function'; + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED = '__lodash_hash_undefined__'; + + /** Used as the maximum memoize cache size. */ + var MAX_MEMOIZE_SIZE = 500; + + /** Used as the internal argument placeholder. */ + var PLACEHOLDER = '__lodash_placeholder__'; + + /** Used to compose bitmasks for cloning. */ + var CLONE_DEEP_FLAG = 1, + CLONE_FLAT_FLAG = 2, + CLONE_SYMBOLS_FLAG = 4; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + + /** Used to compose bitmasks for function metadata. */ + var WRAP_BIND_FLAG = 1, + WRAP_BIND_KEY_FLAG = 2, + WRAP_CURRY_BOUND_FLAG = 4, + WRAP_CURRY_FLAG = 8, + WRAP_CURRY_RIGHT_FLAG = 16, + WRAP_PARTIAL_FLAG = 32, + WRAP_PARTIAL_RIGHT_FLAG = 64, + WRAP_ARY_FLAG = 128, + WRAP_REARG_FLAG = 256, + WRAP_FLIP_FLAG = 512; + + /** Used as default options for `_.truncate`. */ + var DEFAULT_TRUNC_LENGTH = 30, + DEFAULT_TRUNC_OMISSION = '...'; + + /** Used to detect hot functions by number of calls within a span of milliseconds. */ + var HOT_COUNT = 800, + HOT_SPAN = 16; + + /** Used to indicate the type of lazy iteratees. */ + var LAZY_FILTER_FLAG = 1, + LAZY_MAP_FLAG = 2, + LAZY_WHILE_FLAG = 3; + + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0, + MAX_SAFE_INTEGER = 9007199254740991, + MAX_INTEGER = 1.7976931348623157e+308, + NAN = 0 / 0; + + /** Used as references for the maximum length and index of an array. */ + var MAX_ARRAY_LENGTH = 4294967295, + MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, + HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; + + /** Used to associate wrap methods with their bit flags. */ + var wrapFlags = [ + ['ary', WRAP_ARY_FLAG], + ['bind', WRAP_BIND_FLAG], + ['bindKey', WRAP_BIND_KEY_FLAG], + ['curry', WRAP_CURRY_FLAG], + ['curryRight', WRAP_CURRY_RIGHT_FLAG], + ['flip', WRAP_FLIP_FLAG], + ['partial', WRAP_PARTIAL_FLAG], + ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], + ['rearg', WRAP_REARG_FLAG] + ]; + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + asyncTag = '[object AsyncFunction]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + domExcTag = '[object DOMException]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + mapTag = '[object Map]', + numberTag = '[object Number]', + nullTag = '[object Null]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + proxyTag = '[object Proxy]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]', + undefinedTag = '[object Undefined]', + weakMapTag = '[object WeakMap]', + weakSetTag = '[object WeakSet]'; + + var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + + /** Used to match empty string literals in compiled template source. */ + var reEmptyStringLeading = /\b__p \+= '';/g, + reEmptyStringMiddle = /\b(__p \+=) '' \+/g, + reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; + + /** Used to match HTML entities and HTML characters. */ + var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, + reUnescapedHtml = /[&<>"']/g, + reHasEscapedHtml = RegExp(reEscapedHtml.source), + reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + + /** Used to match template delimiters. */ + var reEscape = /<%-([\s\S]+?)%>/g, + reEvaluate = /<%([\s\S]+?)%>/g, + reInterpolate = /<%=([\s\S]+?)%>/g; + + /** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/, + rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + + /** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, + reHasRegExpChar = RegExp(reRegExpChar.source); + + /** Used to match leading and trailing whitespace. */ + var reTrim = /^\s+|\s+$/g, + reTrimStart = /^\s+/, + reTrimEnd = /\s+$/; + + /** Used to match wrap detail comments. */ + var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, + reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, + reSplitDetails = /,? & /; + + /** Used to match words composed of alphanumeric characters. */ + var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; + + /** Used to match backslashes in property paths. */ + var reEscapeChar = /\\(\\)?/g; + + /** + * Used to match + * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components). + */ + var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; + + /** Used to match `RegExp` flags from their coerced string values. */ + var reFlags = /\w*$/; + + /** Used to detect bad signed hexadecimal string values. */ + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + + /** Used to detect binary string values. */ + var reIsBinary = /^0b[01]+$/i; + + /** Used to detect host constructors (Safari). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** Used to detect octal string values. */ + var reIsOctal = /^0o[0-7]+$/i; + + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + + /** Used to match Latin Unicode letters (excluding mathematical operators). */ + var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + + /** Used to ensure capturing order of template delimiters. */ + var reNoMatch = /($^)/; + + /** Used to match unescaped characters in compiled string literals. */ + var reUnescapedString = /['\n\r\u2028\u2029\\]/g; + + /** Used to compose unicode character classes. */ + var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsDingbatRange = '\\u2700-\\u27bf', + rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', + rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', + rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', + rsPunctuationRange = '\\u2000-\\u206f', + rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', + rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', + rsVarRange = '\\ufe0e\\ufe0f', + rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; + + /** Used to compose unicode capture groups. */ + var rsApos = "['\u2019]", + rsAstral = '[' + rsAstralRange + ']', + rsBreak = '[' + rsBreakRange + ']', + rsCombo = '[' + rsComboRange + ']', + rsDigits = '\\d+', + rsDingbat = '[' + rsDingbatRange + ']', + rsLower = '[' + rsLowerRange + ']', + rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', + rsNonAstral = '[^' + rsAstralRange + ']', + rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', + rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', + rsUpper = '[' + rsUpperRange + ']', + rsZWJ = '\\u200d'; + + /** Used to compose unicode regexes. */ + var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', + rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', + rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', + rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', + reOptMod = rsModifier + '?', + rsOptVar = '[' + rsVarRange + ']?', + rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', + rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', + rsSeq = rsOptVar + reOptMod + rsOptJoin, + rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, + rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; + + /** Used to match apostrophes. */ + var reApos = RegExp(rsApos, 'g'); + + /** + * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and + * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). + */ + var reComboMark = RegExp(rsCombo, 'g'); + + /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ + var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); + + /** Used to match complex or compound words. */ + var reUnicodeWord = RegExp([ + rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', + rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', + rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, + rsUpper + '+' + rsOptContrUpper, + rsOrdUpper, + rsOrdLower, + rsDigits, + rsEmoji + ].join('|'), 'g'); + + /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ + var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); + + /** Used to detect strings that need a more robust regexp to match words. */ + var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; + + /** Used to assign default `context` object properties. */ + var contextProps = [ + 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array', + 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', + 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', + 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', + '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout' + ]; + + /** Used to make template sourceURLs easier to identify. */ + var templateCounter = -1; + + /** Used to identify `toStringTag` values of typed arrays. */ + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = + typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = + typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = + typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = + typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag] = typedArrayTags[arrayTag] = + typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = + typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = + typedArrayTags[errorTag] = typedArrayTags[funcTag] = + typedArrayTags[mapTag] = typedArrayTags[numberTag] = + typedArrayTags[objectTag] = typedArrayTags[regexpTag] = + typedArrayTags[setTag] = typedArrayTags[stringTag] = + typedArrayTags[weakMapTag] = false; + + /** Used to identify `toStringTag` values supported by `_.clone`. */ + var cloneableTags = {}; + cloneableTags[argsTag] = cloneableTags[arrayTag] = + cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = + cloneableTags[boolTag] = cloneableTags[dateTag] = + cloneableTags[float32Tag] = cloneableTags[float64Tag] = + cloneableTags[int8Tag] = cloneableTags[int16Tag] = + cloneableTags[int32Tag] = cloneableTags[mapTag] = + cloneableTags[numberTag] = cloneableTags[objectTag] = + cloneableTags[regexpTag] = cloneableTags[setTag] = + cloneableTags[stringTag] = cloneableTags[symbolTag] = + cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = + cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; + cloneableTags[errorTag] = cloneableTags[funcTag] = + cloneableTags[weakMapTag] = false; + + /** Used to map Latin Unicode letters to basic Latin letters. */ + var deburredLetters = { + // Latin-1 Supplement block. + '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', + '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', + '\xc7': 'C', '\xe7': 'c', + '\xd0': 'D', '\xf0': 'd', + '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', + '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', + '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', + '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', + '\xd1': 'N', '\xf1': 'n', + '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', + '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', + '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', + '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', + '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', + '\xc6': 'Ae', '\xe6': 'ae', + '\xde': 'Th', '\xfe': 'th', + '\xdf': 'ss', + // Latin Extended-A block. + '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', + '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', + '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', + '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', + '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', + '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', + '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', + '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', + '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', + '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', + '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', + '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', + '\u0134': 'J', '\u0135': 'j', + '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', + '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', + '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', + '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', + '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', + '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', + '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', + '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', + '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', + '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', + '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', + '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', + '\u0163': 't', '\u0165': 't', '\u0167': 't', + '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', + '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', + '\u0174': 'W', '\u0175': 'w', + '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', + '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', + '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', + '\u0132': 'IJ', '\u0133': 'ij', + '\u0152': 'Oe', '\u0153': 'oe', + '\u0149': "'n", '\u017f': 's' + }; + + /** Used to map characters to HTML entities. */ + var htmlEscapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' + }; + + /** Used to map HTML entities to characters. */ + var htmlUnescapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + ''': "'" + }; + + /** Used to escape characters for inclusion in compiled string literals. */ + var stringEscapes = { + '\\': '\\', + "'": "'", + '\n': 'n', + '\r': 'r', + '\u2028': 'u2028', + '\u2029': 'u2029' + }; + + /** Built-in method references without a dependency on `root`. */ + var freeParseFloat = parseFloat, + freeParseInt = parseInt; + + /** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + + /** Used as a reference to the global object. */ + var root = freeGlobal || freeSelf || Function('return this')(); + + /** Detect free variable `exports`. */ + var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + + /** Detect the popular CommonJS extension `module.exports`. */ + var moduleExports = freeModule && freeModule.exports === freeExports; + + /** Detect free variable `process` from Node.js. */ + var freeProcess = moduleExports && freeGlobal.process; + + /** Used to access faster Node.js helpers. */ + var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} + }()); + + /* Node.js helper references. */ + var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, + nodeIsDate = nodeUtil && nodeUtil.isDate, + nodeIsMap = nodeUtil && nodeUtil.isMap, + nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, + nodeIsSet = nodeUtil && nodeUtil.isSet, + nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + + /*--------------------------------------------------------------------------*/ + + /** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ + function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); + } + + /** + * A specialized version of `baseAggregator` for arrays. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */ + function arrayAggregator(array, setter, iteratee, accumulator) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + var value = array[index]; + setter(accumulator, value, iteratee(value), array); + } + return accumulator; + } + + /** + * A specialized version of `_.forEach` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ + function arrayEach(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; + } + + /** + * A specialized version of `_.forEachRight` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ + function arrayEachRight(array, iteratee) { + var length = array == null ? 0 : array.length; + + while (length--) { + if (iteratee(array[length], length, array) === false) { + break; + } + } + return array; + } + + /** + * A specialized version of `_.every` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + */ + function arrayEvery(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (!predicate(array[index], index, array)) { + return false; + } + } + return true; + } + + /** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; + } + + /** + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ + function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && baseIndexOf(array, value, 0) > -1; + } + + /** + * This function is like `arrayIncludes` except that it accepts a comparator. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ + function arrayIncludesWith(array, value, comparator) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + return false; + } + + /** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + + /** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; + } + + /** + * A specialized version of `_.reduce` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initAccum] Specify using the first element of `array` as + * the initial value. + * @returns {*} Returns the accumulated value. + */ + function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, + length = array == null ? 0 : array.length; + + if (initAccum && length) { + accumulator = array[++index]; + } + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; + } + + /** + * A specialized version of `_.reduceRight` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initAccum] Specify using the last element of `array` as + * the initial value. + * @returns {*} Returns the accumulated value. + */ + function arrayReduceRight(array, iteratee, accumulator, initAccum) { + var length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[--length]; + } + while (length--) { + accumulator = iteratee(accumulator, array[length], length, array); + } + return accumulator; + } + + /** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; + } + + /** + * Gets the size of an ASCII `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ + var asciiSize = baseProperty('length'); + + /** + * Converts an ASCII `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ + function asciiToArray(string) { + return string.split(''); + } + + /** + * Splits an ASCII `string` into an array of its words. + * + * @private + * @param {string} The string to inspect. + * @returns {Array} Returns the words of `string`. + */ + function asciiWords(string) { + return string.match(reAsciiWord) || []; + } + + /** + * The base implementation of methods like `_.findKey` and `_.findLastKey`, + * without support for iteratee shorthands, which iterates over `collection` + * using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the found element or its key, else `undefined`. + */ + function baseFindKey(collection, predicate, eachFunc) { + var result; + eachFunc(collection, function(value, key, collection) { + if (predicate(value, key, collection)) { + result = key; + return false; + } + }); + return result; + } + + /** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + + /** + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseIndexOf(array, value, fromIndex) { + return value === value + ? strictIndexOf(array, value, fromIndex) + : baseFindIndex(array, baseIsNaN, fromIndex); + } + + /** + * This function is like `baseIndexOf` except that it accepts a comparator. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @param {Function} comparator The comparator invoked per element. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseIndexOfWith(array, value, fromIndex, comparator) { + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (comparator(array[index], value)) { + return index; + } + } + return -1; + } + + /** + * The base implementation of `_.isNaN` without support for number objects. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + */ + function baseIsNaN(value) { + return value !== value; + } + + /** + * The base implementation of `_.mean` and `_.meanBy` without support for + * iteratee shorthands. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {number} Returns the mean. + */ + function baseMean(array, iteratee) { + var length = array == null ? 0 : array.length; + return length ? (baseSum(array, iteratee) / length) : NAN; + } + + /** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; + } + + /** + * The base implementation of `_.propertyOf` without support for deep paths. + * + * @private + * @param {Object} object The object to query. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyOf(object) { + return function(key) { + return object == null ? undefined : object[key]; + }; + } + + /** + * The base implementation of `_.reduce` and `_.reduceRight`, without support + * for iteratee shorthands, which iterates over `collection` using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} accumulator The initial value. + * @param {boolean} initAccum Specify using the first or last element of + * `collection` as the initial value. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the accumulated value. + */ + function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection) { + accumulator = initAccum + ? (initAccum = false, value) + : iteratee(accumulator, value, index, collection); + }); + return accumulator; + } + + /** + * The base implementation of `_.sortBy` which uses `comparer` to define the + * sort order of `array` and replaces criteria objects with their corresponding + * values. + * + * @private + * @param {Array} array The array to sort. + * @param {Function} comparer The function to define sort order. + * @returns {Array} Returns `array`. + */ + function baseSortBy(array, comparer) { + var length = array.length; + + array.sort(comparer); + while (length--) { + array[length] = array[length].value; + } + return array; + } + + /** + * The base implementation of `_.sum` and `_.sumBy` without support for + * iteratee shorthands. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {number} Returns the sum. + */ + function baseSum(array, iteratee) { + var result, + index = -1, + length = array.length; + + while (++index < length) { + var current = iteratee(array[index]); + if (current !== undefined) { + result = result === undefined ? current : (result + current); + } + } + return result; + } + + /** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ + function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + + /** + * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array + * of key-value pairs for `object` corresponding to the property names of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the key-value pairs. + */ + function baseToPairs(object, props) { + return arrayMap(props, function(key) { + return [key, object[key]]; + }); + } + + /** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ + function baseUnary(func) { + return function(value) { + return func(value); + }; + } + + /** + * The base implementation of `_.values` and `_.valuesIn` which creates an + * array of `object` property values corresponding to the property names + * of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the array of property values. + */ + function baseValues(object, props) { + return arrayMap(props, function(key) { + return object[key]; + }); + } + + /** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function cacheHas(cache, key) { + return cache.has(key); + } + + /** + * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol + * that is not found in the character symbols. + * + * @private + * @param {Array} strSymbols The string symbols to inspect. + * @param {Array} chrSymbols The character symbols to find. + * @returns {number} Returns the index of the first unmatched string symbol. + */ + function charsStartIndex(strSymbols, chrSymbols) { + var index = -1, + length = strSymbols.length; + + while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} + return index; + } + + /** + * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol + * that is not found in the character symbols. + * + * @private + * @param {Array} strSymbols The string symbols to inspect. + * @param {Array} chrSymbols The character symbols to find. + * @returns {number} Returns the index of the last unmatched string symbol. + */ + function charsEndIndex(strSymbols, chrSymbols) { + var index = strSymbols.length; + + while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} + return index; + } + + /** + * Gets the number of `placeholder` occurrences in `array`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} placeholder The placeholder to search for. + * @returns {number} Returns the placeholder count. + */ + function countHolders(array, placeholder) { + var length = array.length, + result = 0; + + while (length--) { + if (array[length] === placeholder) { + ++result; + } + } + return result; + } + + /** + * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A + * letters to basic Latin letters. + * + * @private + * @param {string} letter The matched letter to deburr. + * @returns {string} Returns the deburred letter. + */ + var deburrLetter = basePropertyOf(deburredLetters); + + /** + * Used by `_.escape` to convert characters to HTML entities. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */ + var escapeHtmlChar = basePropertyOf(htmlEscapes); + + /** + * Used by `_.template` to escape characters for inclusion in compiled string literals. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */ + function escapeStringChar(chr) { + return '\\' + stringEscapes[chr]; + } + + /** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function getValue(object, key) { + return object == null ? undefined : object[key]; + } + + /** + * Checks if `string` contains Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a symbol is found, else `false`. + */ + function hasUnicode(string) { + return reHasUnicode.test(string); + } + + /** + * Checks if `string` contains a word composed of Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a word is found, else `false`. + */ + function hasUnicodeWord(string) { + return reHasUnicodeWord.test(string); + } + + /** + * Converts `iterator` to an array. + * + * @private + * @param {Object} iterator The iterator to convert. + * @returns {Array} Returns the converted array. + */ + function iteratorToArray(iterator) { + var data, + result = []; + + while (!(data = iterator.next()).done) { + result.push(data.value); + } + return result; + } + + /** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ + function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; + } + + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + + /** + * Replaces all `placeholder` elements in `array` with an internal placeholder + * and returns an array of their indexes. + * + * @private + * @param {Array} array The array to modify. + * @param {*} placeholder The placeholder to replace. + * @returns {Array} Returns the new array of placeholder indexes. + */ + function replaceHolders(array, placeholder) { + var index = -1, + length = array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (value === placeholder || value === PLACEHOLDER) { + array[index] = PLACEHOLDER; + result[resIndex++] = index; + } + } + return result; + } + + /** + * Gets the value at `key`, unless `key` is "__proto__". + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function safeGet(object, key) { + return key == '__proto__' + ? undefined + : object[key]; + } + + /** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ + function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; + } + + /** + * Converts `set` to its value-value pairs. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the value-value pairs. + */ + function setToPairs(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = [value, value]; + }); + return result; + } + + /** + * A specialized version of `_.indexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; + } + + /** + * A specialized version of `_.lastIndexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function strictLastIndexOf(array, value, fromIndex) { + var index = fromIndex + 1; + while (index--) { + if (array[index] === value) { + return index; + } + } + return index; + } + + /** + * Gets the number of symbols in `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the string size. + */ + function stringSize(string) { + return hasUnicode(string) + ? unicodeSize(string) + : asciiSize(string); + } + + /** + * Converts `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ + function stringToArray(string) { + return hasUnicode(string) + ? unicodeToArray(string) + : asciiToArray(string); + } + + /** + * Used by `_.unescape` to convert HTML entities to characters. + * + * @private + * @param {string} chr The matched character to unescape. + * @returns {string} Returns the unescaped character. + */ + var unescapeHtmlChar = basePropertyOf(htmlUnescapes); + + /** + * Gets the size of a Unicode `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ + function unicodeSize(string) { + var result = reUnicode.lastIndex = 0; + while (reUnicode.test(string)) { + ++result; + } + return result; + } + + /** + * Converts a Unicode `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ + function unicodeToArray(string) { + return string.match(reUnicode) || []; + } + + /** + * Splits a Unicode `string` into an array of its words. + * + * @private + * @param {string} The string to inspect. + * @returns {Array} Returns the words of `string`. + */ + function unicodeWords(string) { + return string.match(reUnicodeWord) || []; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Create a new pristine `lodash` function using the `context` object. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Util + * @param {Object} [context=root] The context object. + * @returns {Function} Returns a new `lodash` function. + * @example + * + * _.mixin({ 'foo': _.constant('foo') }); + * + * var lodash = _.runInContext(); + * lodash.mixin({ 'bar': lodash.constant('bar') }); + * + * _.isFunction(_.foo); + * // => true + * _.isFunction(_.bar); + * // => false + * + * lodash.isFunction(lodash.foo); + * // => false + * lodash.isFunction(lodash.bar); + * // => true + * + * // Create a suped-up `defer` in Node.js. + * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; + */ + var runInContext = (function runInContext(context) { + context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); + + /** Built-in constructor references. */ + var Array = context.Array, + Date = context.Date, + Error = context.Error, + Function = context.Function, + Math = context.Math, + Object = context.Object, + RegExp = context.RegExp, + String = context.String, + TypeError = context.TypeError; + + /** Used for built-in method references. */ + var arrayProto = Array.prototype, + funcProto = Function.prototype, + objectProto = Object.prototype; + + /** Used to detect overreaching core-js shims. */ + var coreJsData = context['__core-js_shared__']; + + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Used to generate unique IDs. */ + var idCounter = 0; + + /** Used to detect methods masquerading as native. */ + var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; + }()); + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = objectProto.toString; + + /** Used to infer the `Object` constructor. */ + var objectCtorString = funcToString.call(Object); + + /** Used to restore the original `_` reference in `_.noConflict`. */ + var oldDash = root._; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /** Built-in value references. */ + var Buffer = moduleExports ? context.Buffer : undefined, + Symbol = context.Symbol, + Uint8Array = context.Uint8Array, + allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined, + getPrototype = overArg(Object.getPrototypeOf, Object), + objectCreate = Object.create, + propertyIsEnumerable = objectProto.propertyIsEnumerable, + splice = arrayProto.splice, + spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined, + symIterator = Symbol ? Symbol.iterator : undefined, + symToStringTag = Symbol ? Symbol.toStringTag : undefined; + + var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} + }()); + + /** Mocked built-ins. */ + var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, + ctxNow = Date && Date.now !== root.Date.now && Date.now, + ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeCeil = Math.ceil, + nativeFloor = Math.floor, + nativeGetSymbols = Object.getOwnPropertySymbols, + nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, + nativeIsFinite = context.isFinite, + nativeJoin = arrayProto.join, + nativeKeys = overArg(Object.keys, Object), + nativeMax = Math.max, + nativeMin = Math.min, + nativeNow = Date.now, + nativeParseInt = context.parseInt, + nativeRandom = Math.random, + nativeReverse = arrayProto.reverse; + + /* Built-in method references that are verified to be native. */ + var DataView = getNative(context, 'DataView'), + Map = getNative(context, 'Map'), + Promise = getNative(context, 'Promise'), + Set = getNative(context, 'Set'), + WeakMap = getNative(context, 'WeakMap'), + nativeCreate = getNative(Object, 'create'); + + /** Used to store function metadata. */ + var metaMap = WeakMap && new WeakMap; + + /** Used to lookup unminified function names. */ + var realNames = {}; + + /** Used to detect maps, sets, and weakmaps. */ + var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + + /** Used to convert symbols to primitives and strings. */ + var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a `lodash` object which wraps `value` to enable implicit method + * chain sequences. Methods that operate on and return arrays, collections, + * and functions can be chained together. Methods that retrieve a single value + * or may return a primitive value will automatically end the chain sequence + * and return the unwrapped value. Otherwise, the value must be unwrapped + * with `_#value`. + * + * Explicit chain sequences, which must be unwrapped with `_#value`, may be + * enabled using `_.chain`. + * + * The execution of chained methods is lazy, that is, it's deferred until + * `_#value` is implicitly or explicitly called. + * + * Lazy evaluation allows several methods to support shortcut fusion. + * Shortcut fusion is an optimization to merge iteratee calls; this avoids + * the creation of intermediate arrays and can greatly reduce the number of + * iteratee executions. Sections of a chain sequence qualify for shortcut + * fusion if the section is applied to an array and iteratees accept only + * one argument. The heuristic for whether a section qualifies for shortcut + * fusion is subject to change. + * + * Chaining is supported in custom builds as long as the `_#value` method is + * directly or indirectly included in the build. + * + * In addition to lodash methods, wrappers have `Array` and `String` methods. + * + * The wrapper `Array` methods are: + * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` + * + * The wrapper `String` methods are: + * `replace` and `split` + * + * The wrapper methods that support shortcut fusion are: + * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, + * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, + * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` + * + * The chainable wrapper methods are: + * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, + * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, + * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, + * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, + * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, + * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, + * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, + * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, + * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, + * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, + * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, + * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, + * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, + * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, + * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, + * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, + * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, + * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, + * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, + * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, + * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, + * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, + * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, + * `zipObject`, `zipObjectDeep`, and `zipWith` + * + * The wrapper methods that are **not** chainable by default are: + * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, + * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, + * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, + * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, + * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, + * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, + * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, + * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, + * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, + * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, + * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, + * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, + * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, + * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, + * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, + * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, + * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, + * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, + * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, + * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, + * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, + * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, + * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, + * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, + * `upperFirst`, `value`, and `words` + * + * @name _ + * @constructor + * @category Seq + * @param {*} value The value to wrap in a `lodash` instance. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * function square(n) { + * return n * n; + * } + * + * var wrapped = _([1, 2, 3]); + * + * // Returns an unwrapped value. + * wrapped.reduce(_.add); + * // => 6 + * + * // Returns a wrapped value. + * var squares = wrapped.map(square); + * + * _.isArray(squares); + * // => false + * + * _.isArray(squares.value()); + * // => true + */ + function lodash(value) { + if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { + if (value instanceof LodashWrapper) { + return value; + } + if (hasOwnProperty.call(value, '__wrapped__')) { + return wrapperClone(value); + } + } + return new LodashWrapper(value); + } + + /** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ + var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; + }()); + + /** + * The function whose prototype chain sequence wrappers inherit from. + * + * @private + */ + function baseLodash() { + // No operation performed. + } + + /** + * The base constructor for creating `lodash` wrapper objects. + * + * @private + * @param {*} value The value to wrap. + * @param {boolean} [chainAll] Enable explicit method chain sequences. + */ + function LodashWrapper(value, chainAll) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__chain__ = !!chainAll; + this.__index__ = 0; + this.__values__ = undefined; + } + + /** + * By default, the template delimiters used by lodash are like those in + * embedded Ruby (ERB) as well as ES2015 template strings. Change the + * following template settings to use alternative delimiters. + * + * @static + * @memberOf _ + * @type {Object} + */ + lodash.templateSettings = { + + /** + * Used to detect `data` property values to be HTML-escaped. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + 'escape': reEscape, + + /** + * Used to detect code to be evaluated. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + 'evaluate': reEvaluate, + + /** + * Used to detect `data` property values to inject. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + 'interpolate': reInterpolate, + + /** + * Used to reference the data object in the template text. + * + * @memberOf _.templateSettings + * @type {string} + */ + 'variable': '', + + /** + * Used to import variables into the compiled template. + * + * @memberOf _.templateSettings + * @type {Object} + */ + 'imports': { + + /** + * A reference to the `lodash` function. + * + * @memberOf _.templateSettings.imports + * @type {Function} + */ + '_': lodash + } + }; + + // Ensure wrappers are instances of `baseLodash`. + lodash.prototype = baseLodash.prototype; + lodash.prototype.constructor = lodash; + + LodashWrapper.prototype = baseCreate(baseLodash.prototype); + LodashWrapper.prototype.constructor = LodashWrapper; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. + * + * @private + * @constructor + * @param {*} value The value to wrap. + */ + function LazyWrapper(value) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__dir__ = 1; + this.__filtered__ = false; + this.__iteratees__ = []; + this.__takeCount__ = MAX_ARRAY_LENGTH; + this.__views__ = []; + } + + /** + * Creates a clone of the lazy wrapper object. + * + * @private + * @name clone + * @memberOf LazyWrapper + * @returns {Object} Returns the cloned `LazyWrapper` object. + */ + function lazyClone() { + var result = new LazyWrapper(this.__wrapped__); + result.__actions__ = copyArray(this.__actions__); + result.__dir__ = this.__dir__; + result.__filtered__ = this.__filtered__; + result.__iteratees__ = copyArray(this.__iteratees__); + result.__takeCount__ = this.__takeCount__; + result.__views__ = copyArray(this.__views__); + return result; + } + + /** + * Reverses the direction of lazy iteration. + * + * @private + * @name reverse + * @memberOf LazyWrapper + * @returns {Object} Returns the new reversed `LazyWrapper` object. + */ + function lazyReverse() { + if (this.__filtered__) { + var result = new LazyWrapper(this); + result.__dir__ = -1; + result.__filtered__ = true; + } else { + result = this.clone(); + result.__dir__ *= -1; + } + return result; + } + + /** + * Extracts the unwrapped value from its lazy wrapper. + * + * @private + * @name value + * @memberOf LazyWrapper + * @returns {*} Returns the unwrapped value. + */ + function lazyValue() { + var array = this.__wrapped__.value(), + dir = this.__dir__, + isArr = isArray(array), + isRight = dir < 0, + arrLength = isArr ? array.length : 0, + view = getView(0, arrLength, this.__views__), + start = view.start, + end = view.end, + length = end - start, + index = isRight ? end : (start - 1), + iteratees = this.__iteratees__, + iterLength = iteratees.length, + resIndex = 0, + takeCount = nativeMin(length, this.__takeCount__); + + if (!isArr || (!isRight && arrLength == length && takeCount == length)) { + return baseWrapperValue(array, this.__actions__); + } + var result = []; + + outer: + while (length-- && resIndex < takeCount) { + index += dir; + + var iterIndex = -1, + value = array[index]; + + while (++iterIndex < iterLength) { + var data = iteratees[iterIndex], + iteratee = data.iteratee, + type = data.type, + computed = iteratee(value); + + if (type == LAZY_MAP_FLAG) { + value = computed; + } else if (!computed) { + if (type == LAZY_FILTER_FLAG) { + continue outer; + } else { + break outer; + } + } + } + result[resIndex++] = value; + } + return result; + } + + // Ensure `LazyWrapper` is an instance of `baseLodash`. + LazyWrapper.prototype = baseCreate(baseLodash.prototype); + LazyWrapper.prototype.constructor = LazyWrapper; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + /** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; + } + + /** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; + } + + /** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; + } + + /** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); + } + + /** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; + } + + // Add methods to `Hash`. + Hash.prototype.clear = hashClear; + Hash.prototype['delete'] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + + /*------------------------------------------------------------------------*/ + + /** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + /** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + + /** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; + } + + /** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; + } + + /** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + + /** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ + function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + + // Add methods to `ListCache`. + ListCache.prototype.clear = listCacheClear; + ListCache.prototype['delete'] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + /** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ + function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; + } + + /** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; + } + + /** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + + /** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + + /** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ + function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; + } + + // Add methods to `MapCache`. + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype['delete'] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + + /*------------------------------------------------------------------------*/ + + /** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ + function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } + } + + /** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ + function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; + } + + /** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ + function setCacheHas(value) { + return this.__data__.has(value); + } + + // Add methods to `SetCache`. + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; + } + + /** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ + function stackClear() { + this.__data__ = new ListCache; + this.size = 0; + } + + /** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; + } + + /** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function stackGet(key) { + return this.__data__.get(key); + } + + /** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function stackHas(key) { + return this.__data__.has(key); + } + + /** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ + function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; + } + + // Add methods to `Stack`. + Stack.prototype.clear = stackClear; + Stack.prototype['delete'] = stackDelete; + Stack.prototype.get = stackGet; + Stack.prototype.has = stackHas; + Stack.prototype.set = stackSet; + + /*------------------------------------------------------------------------*/ + + /** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ + function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; + } + + /** + * A specialized version of `_.sample` for arrays. + * + * @private + * @param {Array} array The array to sample. + * @returns {*} Returns the random element. + */ + function arraySample(array) { + var length = array.length; + return length ? array[baseRandom(0, length - 1)] : undefined; + } + + /** + * A specialized version of `_.sampleSize` for arrays. + * + * @private + * @param {Array} array The array to sample. + * @param {number} n The number of elements to sample. + * @returns {Array} Returns the random elements. + */ + function arraySampleSize(array, n) { + return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); + } + + /** + * A specialized version of `_.shuffle` for arrays. + * + * @private + * @param {Array} array The array to shuffle. + * @returns {Array} Returns the new shuffled array. + */ + function arrayShuffle(array) { + return shuffleSelf(copyArray(array)); + } + + /** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignMergeValue(object, key, value) { + if ((value !== undefined && !eq(object[key], value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } + } + + /** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } + } + + /** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; + } + + /** + * Aggregates elements of `collection` on `accumulator` with keys transformed + * by `iteratee` and values set by `setter`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */ + function baseAggregator(collection, setter, iteratee, accumulator) { + baseEach(collection, function(value, key, collection) { + setter(accumulator, value, iteratee(value), collection); + }); + return accumulator; + } + + /** + * The base implementation of `_.assign` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); + } + + /** + * The base implementation of `_.assignIn` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); + } + + /** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } + } + + /** + * The base implementation of `_.at` without support for individual paths. + * + * @private + * @param {Object} object The object to iterate over. + * @param {string[]} paths The property paths to pick. + * @returns {Array} Returns the picked elements. + */ + function baseAt(object, paths) { + var index = -1, + length = paths.length, + result = Array(length), + skip = object == null; + + while (++index < length) { + result[index] = skip ? undefined : get(object, paths[index]); + } + return result; + } + + /** + * The base implementation of `_.clamp` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + */ + function baseClamp(number, lower, upper) { + if (number === number) { + if (upper !== undefined) { + number = number <= upper ? number : upper; + } + if (lower !== undefined) { + number = number >= lower ? number : lower; + } + } + return number; + } + + /** + * The base implementation of `_.clone` and `_.cloneDeep` which tracks + * traversed objects. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} bitmask The bitmask flags. + * 1 - Deep clone + * 2 - Flatten inherited properties + * 4 - Clone symbols + * @param {Function} [customizer] The function to customize cloning. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The parent object of `value`. + * @param {Object} [stack] Tracks traversed objects and their clone counterparts. + * @returns {*} Returns the cloned value. + */ + function baseClone(value, bitmask, customizer, key, object, stack) { + var result, + isDeep = bitmask & CLONE_DEEP_FLAG, + isFlat = bitmask & CLONE_FLAT_FLAG, + isFull = bitmask & CLONE_SYMBOLS_FLAG; + + if (customizer) { + result = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result !== undefined) { + return result; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) { + return copyArray(value, result); + } + } else { + var tag = getTag(value), + isFunc = tag == funcTag || tag == genTag; + + if (isBuffer(value)) { + return cloneBuffer(value, isDeep); + } + if (tag == objectTag || tag == argsTag || (isFunc && !object)) { + result = (isFlat || isFunc) ? {} : initCloneObject(value); + if (!isDeep) { + return isFlat + ? copySymbolsIn(value, baseAssignIn(result, value)) + : copySymbols(value, baseAssign(result, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result = initCloneByTag(value, tag, isDeep); + } + } + // Check for circular references and return its corresponding clone. + stack || (stack = new Stack); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result); + + if (isSet(value)) { + value.forEach(function(subValue) { + result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + + return result; + } + + if (isMap(value)) { + value.forEach(function(subValue, key) { + result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + + return result; + } + + var keysFunc = isFull + ? (isFlat ? getAllKeysIn : getAllKeys) + : (isFlat ? keysIn : keys); + + var props = isArr ? undefined : keysFunc(value); + arrayEach(props || value, function(subValue, key) { + if (props) { + key = subValue; + subValue = value[key]; + } + // Recursively populate clone (susceptible to call stack limits). + assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + return result; + } + + /** + * The base implementation of `_.conforms` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property predicates to conform to. + * @returns {Function} Returns the new spec function. + */ + function baseConforms(source) { + var props = keys(source); + return function(object) { + return baseConformsTo(object, source, props); + }; + } + + /** + * The base implementation of `_.conformsTo` which accepts `props` to check. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property predicates to conform to. + * @returns {boolean} Returns `true` if `object` conforms, else `false`. + */ + function baseConformsTo(object, source, props) { + var length = props.length; + if (object == null) { + return !length; + } + object = Object(object); + while (length--) { + var key = props[length], + predicate = source[key], + value = object[key]; + + if ((value === undefined && !(key in object)) || !predicate(value)) { + return false; + } + } + return true; + } + + /** + * The base implementation of `_.delay` and `_.defer` which accepts `args` + * to provide to `func`. + * + * @private + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {Array} args The arguments to provide to `func`. + * @returns {number|Object} Returns the timer id or timeout object. + */ + function baseDelay(func, wait, args) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return setTimeout(function() { func.apply(undefined, args); }, wait); + } + + /** + * The base implementation of methods like `_.difference` without support + * for excluding multiple arrays or iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Array} values The values to exclude. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + */ + function baseDifference(array, values, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + isCommon = true, + length = array.length, + result = [], + valuesLength = values.length; + + if (!length) { + return result; + } + if (iteratee) { + values = arrayMap(values, baseUnary(iteratee)); + } + if (comparator) { + includes = arrayIncludesWith; + isCommon = false; + } + else if (values.length >= LARGE_ARRAY_SIZE) { + includes = cacheHas; + isCommon = false; + values = new SetCache(values); + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee == null ? value : iteratee(value); + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values[valuesIndex] === computed) { + continue outer; + } + } + result.push(value); + } + else if (!includes(values, computed, comparator)) { + result.push(value); + } + } + return result; + } + + /** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ + var baseEach = createBaseEach(baseForOwn); + + /** + * The base implementation of `_.forEachRight` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ + var baseEachRight = createBaseEach(baseForOwnRight, true); + + /** + * The base implementation of `_.every` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false` + */ + function baseEvery(collection, predicate) { + var result = true; + baseEach(collection, function(value, index, collection) { + result = !!predicate(value, index, collection); + return result; + }); + return result; + } + + /** + * The base implementation of methods like `_.max` and `_.min` which accepts a + * `comparator` to determine the extremum value. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The iteratee invoked per iteration. + * @param {Function} comparator The comparator used to compare values. + * @returns {*} Returns the extremum value. + */ + function baseExtremum(array, iteratee, comparator) { + var index = -1, + length = array.length; + + while (++index < length) { + var value = array[index], + current = iteratee(value); + + if (current != null && (computed === undefined + ? (current === current && !isSymbol(current)) + : comparator(current, computed) + )) { + var computed = current, + result = value; + } + } + return result; + } + + /** + * The base implementation of `_.fill` without an iteratee call guard. + * + * @private + * @param {Array} array The array to fill. + * @param {*} value The value to fill `array` with. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns `array`. + */ + function baseFill(array, value, start, end) { + var length = array.length; + + start = toInteger(start); + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = (end === undefined || end > length) ? length : toInteger(end); + if (end < 0) { + end += length; + } + end = start > end ? 0 : toLength(end); + while (start < end) { + array[start++] = value; + } + return array; + } + + /** + * The base implementation of `_.filter` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function baseFilter(collection, predicate) { + var result = []; + baseEach(collection, function(value, index, collection) { + if (predicate(value, index, collection)) { + result.push(value); + } + }); + return result; + } + + /** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ + function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; + + predicate || (predicate = isFlattenable); + result || (result = []); + + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; + } + + /** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); + + /** + * This function is like `baseFor` except that it iterates over properties + * in the opposite order. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseForRight = createBaseFor(true); + + /** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); + } + + /** + * The base implementation of `_.forOwnRight` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwnRight(object, iteratee) { + return object && baseForRight(object, iteratee, keys); + } + + /** + * The base implementation of `_.functions` which creates an array of + * `object` function property names filtered from `props`. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} props The property names to filter. + * @returns {Array} Returns the function names. + */ + function baseFunctions(object, props) { + return arrayFilter(props, function(key) { + return isFunction(object[key]); + }); + } + + /** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ + function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; + } + + /** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); + } + + /** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); + } + + /** + * The base implementation of `_.gt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than `other`, + * else `false`. + */ + function baseGt(value, other) { + return value > other; + } + + /** + * The base implementation of `_.has` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ + function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); + } + + /** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ + function baseHasIn(object, key) { + return object != null && key in Object(object); + } + + /** + * The base implementation of `_.inRange` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to check. + * @param {number} start The start of the range. + * @param {number} end The end of the range. + * @returns {boolean} Returns `true` if `number` is in the range, else `false`. + */ + function baseInRange(number, start, end) { + return number >= nativeMin(start, end) && number < nativeMax(start, end); + } + + /** + * The base implementation of methods like `_.intersection`, without support + * for iteratee shorthands, that accepts an array of arrays to inspect. + * + * @private + * @param {Array} arrays The arrays to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of shared values. + */ + function baseIntersection(arrays, iteratee, comparator) { + var includes = comparator ? arrayIncludesWith : arrayIncludes, + length = arrays[0].length, + othLength = arrays.length, + othIndex = othLength, + caches = Array(othLength), + maxLength = Infinity, + result = []; + + while (othIndex--) { + var array = arrays[othIndex]; + if (othIndex && iteratee) { + array = arrayMap(array, baseUnary(iteratee)); + } + maxLength = nativeMin(array.length, maxLength); + caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) + ? new SetCache(othIndex && array) + : undefined; + } + array = arrays[0]; + + var index = -1, + seen = caches[0]; + + outer: + while (++index < length && result.length < maxLength) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (!(seen + ? cacheHas(seen, computed) + : includes(result, computed, comparator) + )) { + othIndex = othLength; + while (--othIndex) { + var cache = caches[othIndex]; + if (!(cache + ? cacheHas(cache, computed) + : includes(arrays[othIndex], computed, comparator)) + ) { + continue outer; + } + } + if (seen) { + seen.push(computed); + } + result.push(value); + } + } + return result; + } + + /** + * The base implementation of `_.invert` and `_.invertBy` which inverts + * `object` with values transformed by `iteratee` and set by `setter`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform values. + * @param {Object} accumulator The initial inverted object. + * @returns {Function} Returns `accumulator`. + */ + function baseInverter(object, setter, iteratee, accumulator) { + baseForOwn(object, function(value, key, object) { + setter(accumulator, iteratee(value), key, object); + }); + return accumulator; + } + + /** + * The base implementation of `_.invoke` without support for individual + * method arguments. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the method to invoke. + * @param {Array} args The arguments to invoke the method with. + * @returns {*} Returns the result of the invoked method. + */ + function baseInvoke(object, path, args) { + path = castPath(path, object); + object = parent(object, path); + var func = object == null ? object : object[toKey(last(path))]; + return func == null ? undefined : apply(func, object, args); + } + + /** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; + } + + /** + * The base implementation of `_.isArrayBuffer` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. + */ + function baseIsArrayBuffer(value) { + return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; + } + + /** + * The base implementation of `_.isDate` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + */ + function baseIsDate(value) { + return isObjectLike(value) && baseGetTag(value) == dateTag; + } + + /** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } + + /** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : getTag(object), + othTag = othIsArr ? arrayTag : getTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); + } + + /** + * The base implementation of `_.isMap` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + */ + function baseIsMap(value) { + return isObjectLike(value) && getTag(value) == mapTag; + } + + /** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ + function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result === undefined + ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) + : result + )) { + return false; + } + } + } + return true; + } + + /** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ + function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); + } + + /** + * The base implementation of `_.isRegExp` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + */ + function baseIsRegExp(value) { + return isObjectLike(value) && baseGetTag(value) == regexpTag; + } + + /** + * The base implementation of `_.isSet` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + */ + function baseIsSet(value) { + return isObjectLike(value) && getTag(value) == setTag; + } + + /** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ + function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + } + + /** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ + function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == 'object') { + return isArray(value) + ? baseMatchesProperty(value[0], value[1]) + : baseMatches(value); + } + return property(value); + } + + /** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; + } + + /** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; + + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; + } + + /** + * The base implementation of `_.lt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than `other`, + * else `false`. + */ + function baseLt(value, other) { + return value < other; + } + + /** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; + } + + /** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; + } + + /** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return (objValue === undefined && objValue === srcValue) + ? hasIn(object, path) + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; + } + + /** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ + function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + if (isObject(srcValue)) { + stack || (stack = new Stack); + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } + else { + var newValue = customizer + ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) + : undefined; + + if (newValue === undefined) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); + } + + /** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ + function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), + srcValue = safeGet(source, key), + stacked = stack.get(srcValue); + + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer + ? customizer(objValue, srcValue, (key + ''), object, source, stack) + : undefined; + + var isCommon = newValue === undefined; + + if (isCommon) { + var isArr = isArray(srcValue), + isBuff = !isArr && isBuffer(srcValue), + isTyped = !isArr && !isBuff && isTypedArray(srcValue); + + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } + else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } + else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } + else { + newValue = []; + } + } + else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } + else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) { + newValue = initCloneObject(srcValue); + } + } + else { + isCommon = false; + } + } + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack['delete'](srcValue); + } + assignMergeValue(object, key, newValue); + } + + /** + * The base implementation of `_.nth` which doesn't coerce arguments. + * + * @private + * @param {Array} array The array to query. + * @param {number} n The index of the element to return. + * @returns {*} Returns the nth element of `array`. + */ + function baseNth(array, n) { + var length = array.length; + if (!length) { + return; + } + n += n < 0 ? length : 0; + return isIndex(n, length) ? array[n] : undefined; + } + + /** + * The base implementation of `_.orderBy` without param guards. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. + * @param {string[]} orders The sort orders of `iteratees`. + * @returns {Array} Returns the new sorted array. + */ + function baseOrderBy(collection, iteratees, orders) { + var index = -1; + iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(getIteratee())); + + var result = baseMap(collection, function(value, key, collection) { + var criteria = arrayMap(iteratees, function(iteratee) { + return iteratee(value); + }); + return { 'criteria': criteria, 'index': ++index, 'value': value }; + }); + + return baseSortBy(result, function(object, other) { + return compareMultiple(object, other, orders); + }); + } + + /** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ + function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); + } + + /** + * The base implementation of `_.pickBy` without support for iteratee shorthands. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @param {Function} predicate The function invoked per property. + * @returns {Object} Returns the new object. + */ + function basePickBy(object, paths, predicate) { + var index = -1, + length = paths.length, + result = {}; + + while (++index < length) { + var path = paths[index], + value = baseGet(object, path); + + if (predicate(value, path)) { + baseSet(result, castPath(path, object), value); + } + } + return result; + } + + /** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; + } + + /** + * The base implementation of `_.pullAllBy` without support for iteratee + * shorthands. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns `array`. + */ + function basePullAll(array, values, iteratee, comparator) { + var indexOf = comparator ? baseIndexOfWith : baseIndexOf, + index = -1, + length = values.length, + seen = array; + + if (array === values) { + values = copyArray(values); + } + if (iteratee) { + seen = arrayMap(array, baseUnary(iteratee)); + } + while (++index < length) { + var fromIndex = 0, + value = values[index], + computed = iteratee ? iteratee(value) : value; + + while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) { + if (seen !== array) { + splice.call(seen, fromIndex, 1); + } + splice.call(array, fromIndex, 1); + } + } + return array; + } + + /** + * The base implementation of `_.pullAt` without support for individual + * indexes or capturing the removed elements. + * + * @private + * @param {Array} array The array to modify. + * @param {number[]} indexes The indexes of elements to remove. + * @returns {Array} Returns `array`. + */ + function basePullAt(array, indexes) { + var length = array ? indexes.length : 0, + lastIndex = length - 1; + + while (length--) { + var index = indexes[length]; + if (length == lastIndex || index !== previous) { + var previous = index; + if (isIndex(index)) { + splice.call(array, index, 1); + } else { + baseUnset(array, index); + } + } + } + return array; + } + + /** + * The base implementation of `_.random` without support for returning + * floating-point numbers. + * + * @private + * @param {number} lower The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the random number. + */ + function baseRandom(lower, upper) { + return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); + } + + /** + * The base implementation of `_.range` and `_.rangeRight` which doesn't + * coerce arguments. + * + * @private + * @param {number} start The start of the range. + * @param {number} end The end of the range. + * @param {number} step The value to increment or decrement by. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Array} Returns the range of numbers. + */ + function baseRange(start, end, step, fromRight) { + var index = -1, + length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), + result = Array(length); + + while (length--) { + result[fromRight ? length : ++index] = start; + start += step; + } + return result; + } + + /** + * The base implementation of `_.repeat` which doesn't coerce arguments. + * + * @private + * @param {string} string The string to repeat. + * @param {number} n The number of times to repeat the string. + * @returns {string} Returns the repeated string. + */ + function baseRepeat(string, n) { + var result = ''; + if (!string || n < 1 || n > MAX_SAFE_INTEGER) { + return result; + } + // Leverage the exponentiation by squaring algorithm for a faster repeat. + // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. + do { + if (n % 2) { + result += string; + } + n = nativeFloor(n / 2); + if (n) { + string += string; + } + } while (n); + + return result; + } + + /** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ + function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); + } + + /** + * The base implementation of `_.sample`. + * + * @private + * @param {Array|Object} collection The collection to sample. + * @returns {*} Returns the random element. + */ + function baseSample(collection) { + return arraySample(values(collection)); + } + + /** + * The base implementation of `_.sampleSize` without param guards. + * + * @private + * @param {Array|Object} collection The collection to sample. + * @param {number} n The number of elements to sample. + * @returns {Array} Returns the random elements. + */ + function baseSampleSize(collection, n) { + var array = values(collection); + return shuffleSelf(array, baseClamp(n, 0, array.length)); + } + + /** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ + function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = toKey(path[index]), + newValue = value; + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject(objValue) + ? objValue + : (isIndex(path[index + 1]) ? [] : {}); + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + + /** + * The base implementation of `setData` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ + var baseSetData = !metaMap ? identity : function(func, data) { + metaMap.set(func, data); + return func; + }; + + /** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); + }; + + /** + * The base implementation of `_.shuffle`. + * + * @private + * @param {Array|Object} collection The collection to shuffle. + * @returns {Array} Returns the new shuffled array. + */ + function baseShuffle(collection) { + return shuffleSelf(values(collection)); + } + + /** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; + } + + /** + * The base implementation of `_.some` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function baseSome(collection, predicate) { + var result; + + baseEach(collection, function(value, index, collection) { + result = predicate(value, index, collection); + return !result; + }); + return !!result; + } + + /** + * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which + * performs a binary search of `array` to determine the index at which `value` + * should be inserted into `array` in order to maintain its sort order. + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ + function baseSortedIndex(array, value, retHighest) { + var low = 0, + high = array == null ? low : array.length; + + if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { + while (low < high) { + var mid = (low + high) >>> 1, + computed = array[mid]; + + if (computed !== null && !isSymbol(computed) && + (retHighest ? (computed <= value) : (computed < value))) { + low = mid + 1; + } else { + high = mid; + } + } + return high; + } + return baseSortedIndexBy(array, value, identity, retHighest); + } + + /** + * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy` + * which invokes `iteratee` for `value` and each element of `array` to compute + * their sort ranking. The iteratee is invoked with one argument; (value). + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} iteratee The iteratee invoked per element. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ + function baseSortedIndexBy(array, value, iteratee, retHighest) { + value = iteratee(value); + + var low = 0, + high = array == null ? 0 : array.length, + valIsNaN = value !== value, + valIsNull = value === null, + valIsSymbol = isSymbol(value), + valIsUndefined = value === undefined; + + while (low < high) { + var mid = nativeFloor((low + high) / 2), + computed = iteratee(array[mid]), + othIsDefined = computed !== undefined, + othIsNull = computed === null, + othIsReflexive = computed === computed, + othIsSymbol = isSymbol(computed); + + if (valIsNaN) { + var setLow = retHighest || othIsReflexive; + } else if (valIsUndefined) { + setLow = othIsReflexive && (retHighest || othIsDefined); + } else if (valIsNull) { + setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); + } else if (valIsSymbol) { + setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); + } else if (othIsNull || othIsSymbol) { + setLow = false; + } else { + setLow = retHighest ? (computed <= value) : (computed < value); + } + if (setLow) { + low = mid + 1; + } else { + high = mid; + } + } + return nativeMin(high, MAX_ARRAY_INDEX); + } + + /** + * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ + function baseSortedUniq(array, iteratee) { + var index = -1, + length = array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + if (!index || !eq(computed, seen)) { + var seen = computed; + result[resIndex++] = value === 0 ? 0 : value; + } + } + return result; + } + + /** + * The base implementation of `_.toNumber` which doesn't ensure correct + * conversions of binary, hexadecimal, or octal string values. + * + * @private + * @param {*} value The value to process. + * @returns {number} Returns the number. + */ + function baseToNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + return +value; + } + + /** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ + function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; + } + + /** + * The base implementation of `_.uniqBy` without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ + function baseUniq(array, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + length = array.length, + isCommon = true, + result = [], + seen = result; + + if (comparator) { + isCommon = false; + includes = arrayIncludesWith; + } + else if (length >= LARGE_ARRAY_SIZE) { + var set = iteratee ? null : createSet(array); + if (set) { + return setToArray(set); + } + isCommon = false; + includes = cacheHas; + seen = new SetCache; + } + else { + seen = iteratee ? [] : result; + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee) { + seen.push(computed); + } + result.push(value); + } + else if (!includes(seen, computed, comparator)) { + if (seen !== result) { + seen.push(computed); + } + result.push(value); + } + } + return result; + } + + /** + * The base implementation of `_.unset`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The property path to unset. + * @returns {boolean} Returns `true` if the property is deleted, else `false`. + */ + function baseUnset(object, path) { + path = castPath(path, object); + object = parent(object, path); + return object == null || delete object[toKey(last(path))]; + } + + /** + * The base implementation of `_.update`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to update. + * @param {Function} updater The function to produce the updated value. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ + function baseUpdate(object, path, updater, customizer) { + return baseSet(object, path, updater(baseGet(object, path)), customizer); + } + + /** + * The base implementation of methods like `_.dropWhile` and `_.takeWhile` + * without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to query. + * @param {Function} predicate The function invoked per iteration. + * @param {boolean} [isDrop] Specify dropping elements instead of taking them. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Array} Returns the slice of `array`. + */ + function baseWhile(array, predicate, isDrop, fromRight) { + var length = array.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length) && + predicate(array[index], index, array)) {} + + return isDrop + ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length)) + : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index)); + } + + /** + * The base implementation of `wrapperValue` which returns the result of + * performing a sequence of actions on the unwrapped `value`, where each + * successive action is supplied the return value of the previous. + * + * @private + * @param {*} value The unwrapped value. + * @param {Array} actions Actions to perform to resolve the unwrapped value. + * @returns {*} Returns the resolved value. + */ + function baseWrapperValue(value, actions) { + var result = value; + if (result instanceof LazyWrapper) { + result = result.value(); + } + return arrayReduce(actions, function(result, action) { + return action.func.apply(action.thisArg, arrayPush([result], action.args)); + }, result); + } + + /** + * The base implementation of methods like `_.xor`, without support for + * iteratee shorthands, that accepts an array of arrays to inspect. + * + * @private + * @param {Array} arrays The arrays to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of values. + */ + function baseXor(arrays, iteratee, comparator) { + var length = arrays.length; + if (length < 2) { + return length ? baseUniq(arrays[0]) : []; + } + var index = -1, + result = Array(length); + + while (++index < length) { + var array = arrays[index], + othIndex = -1; + + while (++othIndex < length) { + if (othIndex != index) { + result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); + } + } + } + return baseUniq(baseFlatten(result, 1), iteratee, comparator); + } + + /** + * This base implementation of `_.zipObject` which assigns values using `assignFunc`. + * + * @private + * @param {Array} props The property identifiers. + * @param {Array} values The property values. + * @param {Function} assignFunc The function to assign values. + * @returns {Object} Returns the new object. + */ + function baseZipObject(props, values, assignFunc) { + var index = -1, + length = props.length, + valsLength = values.length, + result = {}; + + while (++index < length) { + var value = index < valsLength ? values[index] : undefined; + assignFunc(result, props[index], value); + } + return result; + } + + /** + * Casts `value` to an empty array if it's not an array like object. + * + * @private + * @param {*} value The value to inspect. + * @returns {Array|Object} Returns the cast array-like object. + */ + function castArrayLikeObject(value) { + return isArrayLikeObject(value) ? value : []; + } + + /** + * Casts `value` to `identity` if it's not a function. + * + * @private + * @param {*} value The value to inspect. + * @returns {Function} Returns cast function. + */ + function castFunction(value) { + return typeof value == 'function' ? value : identity; + } + + /** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ + function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); + } + + /** + * A `baseRest` alias which can be replaced with `identity` by module + * replacement plugins. + * + * @private + * @type {Function} + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + var castRest = baseRest; + + /** + * Casts `array` to a slice if it's needed. + * + * @private + * @param {Array} array The array to inspect. + * @param {number} start The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the cast slice. + */ + function castSlice(array, start, end) { + var length = array.length; + end = end === undefined ? length : end; + return (!start && end >= length) ? array : baseSlice(array, start, end); + } + + /** + * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout). + * + * @private + * @param {number|Object} id The timer id or timeout object of the timer to clear. + */ + var clearTimeout = ctxClearTimeout || function(id) { + return root.clearTimeout(id); + }; + + /** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ + function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + + buffer.copy(result); + return result; + } + + /** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ + function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array(result).set(new Uint8Array(arrayBuffer)); + return result; + } + + /** + * Creates a clone of `dataView`. + * + * @private + * @param {Object} dataView The data view to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned data view. + */ + function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); + } + + /** + * Creates a clone of `regexp`. + * + * @private + * @param {Object} regexp The regexp to clone. + * @returns {Object} Returns the cloned regexp. + */ + function cloneRegExp(regexp) { + var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result.lastIndex = regexp.lastIndex; + return result; + } + + /** + * Creates a clone of the `symbol` object. + * + * @private + * @param {Object} symbol The symbol object to clone. + * @returns {Object} Returns the cloned symbol object. + */ + function cloneSymbol(symbol) { + return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; + } + + /** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ + function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); + } + + /** + * Compares values to sort them in ascending order. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {number} Returns the sort order indicator for `value`. + */ + function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== undefined, + valIsNull = value === null, + valIsReflexive = value === value, + valIsSymbol = isSymbol(value); + + var othIsDefined = other !== undefined, + othIsNull = other === null, + othIsReflexive = other === other, + othIsSymbol = isSymbol(other); + + if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || + (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || + (valIsNull && othIsDefined && othIsReflexive) || + (!valIsDefined && othIsReflexive) || + !valIsReflexive) { + return 1; + } + if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || + (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || + (othIsNull && valIsDefined && valIsReflexive) || + (!othIsDefined && valIsReflexive) || + !othIsReflexive) { + return -1; + } + } + return 0; + } + + /** + * Used by `_.orderBy` to compare multiple properties of a value to another + * and stable sort them. + * + * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, + * specify an order of "desc" for descending or "asc" for ascending sort order + * of corresponding values. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {boolean[]|string[]} orders The order to sort by for each property. + * @returns {number} Returns the sort order indicator for `object`. + */ + function compareMultiple(object, other, orders) { + var index = -1, + objCriteria = object.criteria, + othCriteria = other.criteria, + length = objCriteria.length, + ordersLength = orders.length; + + while (++index < length) { + var result = compareAscending(objCriteria[index], othCriteria[index]); + if (result) { + if (index >= ordersLength) { + return result; + } + var order = orders[index]; + return result * (order == 'desc' ? -1 : 1); + } + } + // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications + // that causes it, under certain circumstances, to provide the same value for + // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 + // for more details. + // + // This also ensures a stable sort in V8 and other engines. + // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. + return object.index - other.index; + } + + /** + * Creates an array that is the composition of partially applied arguments, + * placeholders, and provided arguments into a single array of arguments. + * + * @private + * @param {Array} args The provided arguments. + * @param {Array} partials The arguments to prepend to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @params {boolean} [isCurried] Specify composing for a curried function. + * @returns {Array} Returns the new array of composed arguments. + */ + function composeArgs(args, partials, holders, isCurried) { + var argsIndex = -1, + argsLength = args.length, + holdersLength = holders.length, + leftIndex = -1, + leftLength = partials.length, + rangeLength = nativeMax(argsLength - holdersLength, 0), + result = Array(leftLength + rangeLength), + isUncurried = !isCurried; + + while (++leftIndex < leftLength) { + result[leftIndex] = partials[leftIndex]; + } + while (++argsIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result[holders[argsIndex]] = args[argsIndex]; + } + } + while (rangeLength--) { + result[leftIndex++] = args[argsIndex++]; + } + return result; + } + + /** + * This function is like `composeArgs` except that the arguments composition + * is tailored for `_.partialRight`. + * + * @private + * @param {Array} args The provided arguments. + * @param {Array} partials The arguments to append to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @params {boolean} [isCurried] Specify composing for a curried function. + * @returns {Array} Returns the new array of composed arguments. + */ + function composeArgsRight(args, partials, holders, isCurried) { + var argsIndex = -1, + argsLength = args.length, + holdersIndex = -1, + holdersLength = holders.length, + rightIndex = -1, + rightLength = partials.length, + rangeLength = nativeMax(argsLength - holdersLength, 0), + result = Array(rangeLength + rightLength), + isUncurried = !isCurried; + + while (++argsIndex < rangeLength) { + result[argsIndex] = args[argsIndex]; + } + var offset = argsIndex; + while (++rightIndex < rightLength) { + result[offset + rightIndex] = partials[rightIndex]; + } + while (++holdersIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result[offset + holders[holdersIndex]] = args[argsIndex++]; + } + } + return result; + } + + /** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ + function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; + } + + /** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; + } + + /** + * Copies own symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ + function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); + } + + /** + * Copies own and inherited symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ + function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); + } + + /** + * Creates a function like `_.groupBy`. + * + * @private + * @param {Function} setter The function to set accumulator values. + * @param {Function} [initializer] The accumulator object initializer. + * @returns {Function} Returns the new aggregator function. + */ + function createAggregator(setter, initializer) { + return function(collection, iteratee) { + var func = isArray(collection) ? arrayAggregator : baseAggregator, + accumulator = initializer ? initializer() : {}; + + return func(collection, setter, getIteratee(iteratee, 2), accumulator); + }; + } + + /** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); + } + + /** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } + + /** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + + /** + * Creates a function that wraps `func` to invoke it with the optional `this` + * binding of `thisArg`. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} [thisArg] The `this` binding of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createBind(func, bitmask, thisArg) { + var isBind = bitmask & WRAP_BIND_FLAG, + Ctor = createCtor(func); + + function wrapper() { + var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + return fn.apply(isBind ? thisArg : this, arguments); + } + return wrapper; + } + + /** + * Creates a function like `_.lowerFirst`. + * + * @private + * @param {string} methodName The name of the `String` case method to use. + * @returns {Function} Returns the new case function. + */ + function createCaseFirst(methodName) { + return function(string) { + string = toString(string); + + var strSymbols = hasUnicode(string) + ? stringToArray(string) + : undefined; + + var chr = strSymbols + ? strSymbols[0] + : string.charAt(0); + + var trailing = strSymbols + ? castSlice(strSymbols, 1).join('') + : string.slice(1); + + return chr[methodName]() + trailing; + }; + } + + /** + * Creates a function like `_.camelCase`. + * + * @private + * @param {Function} callback The function to combine each word. + * @returns {Function} Returns the new compounder function. + */ + function createCompounder(callback) { + return function(string) { + return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); + }; + } + + /** + * Creates a function that produces an instance of `Ctor` regardless of + * whether it was invoked as part of a `new` expression or by `call` or `apply`. + * + * @private + * @param {Function} Ctor The constructor to wrap. + * @returns {Function} Returns the new wrapped function. + */ + function createCtor(Ctor) { + return function() { + // Use a `switch` statement to work with class constructors. See + // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist + // for more details. + var args = arguments; + switch (args.length) { + case 0: return new Ctor; + case 1: return new Ctor(args[0]); + case 2: return new Ctor(args[0], args[1]); + case 3: return new Ctor(args[0], args[1], args[2]); + case 4: return new Ctor(args[0], args[1], args[2], args[3]); + case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); + case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); + case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); + } + var thisBinding = baseCreate(Ctor.prototype), + result = Ctor.apply(thisBinding, args); + + // Mimic the constructor's `return` behavior. + // See https://es5.github.io/#x13.2.2 for more details. + return isObject(result) ? result : thisBinding; + }; + } + + /** + * Creates a function that wraps `func` to enable currying. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {number} arity The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createCurry(func, bitmask, arity) { + var Ctor = createCtor(func); + + function wrapper() { + var length = arguments.length, + args = Array(length), + index = length, + placeholder = getHolder(wrapper); + + while (index--) { + args[index] = arguments[index]; + } + var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder) + ? [] + : replaceHolders(args, placeholder); + + length -= holders.length; + if (length < arity) { + return createRecurry( + func, bitmask, createHybrid, wrapper.placeholder, undefined, + args, holders, undefined, undefined, arity - length); + } + var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + return apply(fn, this, args); + } + return wrapper; + } + + /** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} findIndexFunc The function to find the collection index. + * @returns {Function} Returns the new find function. + */ + function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object(collection); + if (!isArrayLike(collection)) { + var iteratee = getIteratee(predicate, 3); + collection = keys(collection); + predicate = function(key) { return iteratee(iterable[key], key, iterable); }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; + }; + } + + /** + * Creates a `_.flow` or `_.flowRight` function. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new flow function. + */ + function createFlow(fromRight) { + return flatRest(function(funcs) { + var length = funcs.length, + index = length, + prereq = LodashWrapper.prototype.thru; + + if (fromRight) { + funcs.reverse(); + } + while (index--) { + var func = funcs[index]; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (prereq && !wrapper && getFuncName(func) == 'wrapper') { + var wrapper = new LodashWrapper([], true); + } + } + index = wrapper ? index : length; + while (++index < length) { + func = funcs[index]; + + var funcName = getFuncName(func), + data = funcName == 'wrapper' ? getData(func) : undefined; + + if (data && isLaziable(data[0]) && + data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && + !data[4].length && data[9] == 1 + ) { + wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); + } else { + wrapper = (func.length == 1 && isLaziable(func)) + ? wrapper[funcName]() + : wrapper.thru(func); + } + } + return function() { + var args = arguments, + value = args[0]; + + if (wrapper && args.length == 1 && isArray(value)) { + return wrapper.plant(value).value(); + } + var index = 0, + result = length ? funcs[index].apply(this, args) : value; + + while (++index < length) { + result = funcs[index].call(this, result); + } + return result; + }; + }); + } + + /** + * Creates a function that wraps `func` to invoke it with optional `this` + * binding of `thisArg`, partial application, and currying. + * + * @private + * @param {Function|string} func The function or method name to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to prepend to those provided to + * the new function. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [partialsRight] The arguments to append to those provided + * to the new function. + * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { + var isAry = bitmask & WRAP_ARY_FLAG, + isBind = bitmask & WRAP_BIND_FLAG, + isBindKey = bitmask & WRAP_BIND_KEY_FLAG, + isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), + isFlip = bitmask & WRAP_FLIP_FLAG, + Ctor = isBindKey ? undefined : createCtor(func); + + function wrapper() { + var length = arguments.length, + args = Array(length), + index = length; + + while (index--) { + args[index] = arguments[index]; + } + if (isCurried) { + var placeholder = getHolder(wrapper), + holdersCount = countHolders(args, placeholder); + } + if (partials) { + args = composeArgs(args, partials, holders, isCurried); + } + if (partialsRight) { + args = composeArgsRight(args, partialsRight, holdersRight, isCurried); + } + length -= holdersCount; + if (isCurried && length < arity) { + var newHolders = replaceHolders(args, placeholder); + return createRecurry( + func, bitmask, createHybrid, wrapper.placeholder, thisArg, + args, newHolders, argPos, ary, arity - length + ); + } + var thisBinding = isBind ? thisArg : this, + fn = isBindKey ? thisBinding[func] : func; + + length = args.length; + if (argPos) { + args = reorder(args, argPos); + } else if (isFlip && length > 1) { + args.reverse(); + } + if (isAry && ary < length) { + args.length = ary; + } + if (this && this !== root && this instanceof wrapper) { + fn = Ctor || createCtor(fn); + } + return fn.apply(thisBinding, args); + } + return wrapper; + } + + /** + * Creates a function like `_.invertBy`. + * + * @private + * @param {Function} setter The function to set accumulator values. + * @param {Function} toIteratee The function to resolve iteratees. + * @returns {Function} Returns the new inverter function. + */ + function createInverter(setter, toIteratee) { + return function(object, iteratee) { + return baseInverter(object, setter, toIteratee(iteratee), {}); + }; + } + + /** + * Creates a function that performs a mathematical operation on two values. + * + * @private + * @param {Function} operator The function to perform the operation. + * @param {number} [defaultValue] The value used for `undefined` arguments. + * @returns {Function} Returns the new mathematical operation function. + */ + function createMathOperation(operator, defaultValue) { + return function(value, other) { + var result; + if (value === undefined && other === undefined) { + return defaultValue; + } + if (value !== undefined) { + result = value; + } + if (other !== undefined) { + if (result === undefined) { + return other; + } + if (typeof value == 'string' || typeof other == 'string') { + value = baseToString(value); + other = baseToString(other); + } else { + value = baseToNumber(value); + other = baseToNumber(other); + } + result = operator(value, other); + } + return result; + }; + } + + /** + * Creates a function like `_.over`. + * + * @private + * @param {Function} arrayFunc The function to iterate over iteratees. + * @returns {Function} Returns the new over function. + */ + function createOver(arrayFunc) { + return flatRest(function(iteratees) { + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); + return baseRest(function(args) { + var thisArg = this; + return arrayFunc(iteratees, function(iteratee) { + return apply(iteratee, thisArg, args); + }); + }); + }); + } + + /** + * Creates the padding for `string` based on `length`. The `chars` string + * is truncated if the number of characters exceeds `length`. + * + * @private + * @param {number} length The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padding for `string`. + */ + function createPadding(length, chars) { + chars = chars === undefined ? ' ' : baseToString(chars); + + var charsLength = chars.length; + if (charsLength < 2) { + return charsLength ? baseRepeat(chars, length) : chars; + } + var result = baseRepeat(chars, nativeCeil(length / stringSize(chars))); + return hasUnicode(chars) + ? castSlice(stringToArray(result), 0, length).join('') + : result.slice(0, length); + } + + /** + * Creates a function that wraps `func` to invoke it with the `this` binding + * of `thisArg` and `partials` prepended to the arguments it receives. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} partials The arguments to prepend to those provided to + * the new function. + * @returns {Function} Returns the new wrapped function. + */ + function createPartial(func, bitmask, thisArg, partials) { + var isBind = bitmask & WRAP_BIND_FLAG, + Ctor = createCtor(func); + + function wrapper() { + var argsIndex = -1, + argsLength = arguments.length, + leftIndex = -1, + leftLength = partials.length, + args = Array(leftLength + argsLength), + fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + return apply(fn, isBind ? thisArg : this, args); + } + return wrapper; + } + + /** + * Creates a `_.range` or `_.rangeRight` function. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new range function. + */ + function createRange(fromRight) { + return function(start, end, step) { + if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { + end = step = undefined; + } + // Ensure the sign of `-0` is preserved. + start = toFinite(start); + if (end === undefined) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + step = step === undefined ? (start < end ? 1 : -1) : toFinite(step); + return baseRange(start, end, step, fromRight); + }; + } + + /** + * Creates a function that performs a relational operation on two values. + * + * @private + * @param {Function} operator The function to perform the operation. + * @returns {Function} Returns the new relational operation function. + */ + function createRelationalOperation(operator) { + return function(value, other) { + if (!(typeof value == 'string' && typeof other == 'string')) { + value = toNumber(value); + other = toNumber(other); + } + return operator(value, other); + }; + } + + /** + * Creates a function that wraps `func` to continue currying. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {Function} wrapFunc The function to create the `func` wrapper. + * @param {*} placeholder The placeholder value. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to prepend to those provided to + * the new function. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) { + var isCurry = bitmask & WRAP_CURRY_FLAG, + newHolders = isCurry ? holders : undefined, + newHoldersRight = isCurry ? undefined : holders, + newPartials = isCurry ? partials : undefined, + newPartialsRight = isCurry ? undefined : partials; + + bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG); + bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); + + if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { + bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); + } + var newData = [ + func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, + newHoldersRight, argPos, ary, arity + ]; + + var result = wrapFunc.apply(undefined, newData); + if (isLaziable(func)) { + setData(result, newData); + } + result.placeholder = placeholder; + return setWrapToString(result, func, bitmask); + } + + /** + * Creates a function like `_.round`. + * + * @private + * @param {string} methodName The name of the `Math` method to use when rounding. + * @returns {Function} Returns the new round function. + */ + function createRound(methodName) { + var func = Math[methodName]; + return function(number, precision) { + number = toNumber(number); + precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); + if (precision) { + // Shift with exponential notation to avoid floating-point issues. + // See [MDN](https://mdn.io/round#Examples) for more details. + var pair = (toString(number) + 'e').split('e'), + value = func(pair[0] + 'e' + (+pair[1] + precision)); + + pair = (toString(value) + 'e').split('e'); + return +(pair[0] + 'e' + (+pair[1] - precision)); + } + return func(number); + }; + } + + /** + * Creates a set object of `values`. + * + * @private + * @param {Array} values The values to add to the set. + * @returns {Object} Returns the new set. + */ + var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { + return new Set(values); + }; + + /** + * Creates a `_.toPairs` or `_.toPairsIn` function. + * + * @private + * @param {Function} keysFunc The function to get the keys of a given object. + * @returns {Function} Returns the new pairs function. + */ + function createToPairs(keysFunc) { + return function(object) { + var tag = getTag(object); + if (tag == mapTag) { + return mapToArray(object); + } + if (tag == setTag) { + return setToPairs(object); + } + return baseToPairs(object, keysFunc(object)); + }; + } + + /** + * Creates a function that either curries or invokes `func` with optional + * `this` binding and partially applied arguments. + * + * @private + * @param {Function|string} func The function or method name to wrap. + * @param {number} bitmask The bitmask flags. + * 1 - `_.bind` + * 2 - `_.bindKey` + * 4 - `_.curry` or `_.curryRight` of a bound function + * 8 - `_.curry` + * 16 - `_.curryRight` + * 32 - `_.partial` + * 64 - `_.partialRight` + * 128 - `_.rearg` + * 256 - `_.ary` + * 512 - `_.flip` + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to be partially applied. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { + var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; + if (!isBindKey && typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + var length = partials ? partials.length : 0; + if (!length) { + bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); + partials = holders = undefined; + } + ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0); + arity = arity === undefined ? arity : toInteger(arity); + length -= holders ? holders.length : 0; + + if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { + var partialsRight = partials, + holdersRight = holders; + + partials = holders = undefined; + } + var data = isBindKey ? undefined : getData(func); + + var newData = [ + func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, + argPos, ary, arity + ]; + + if (data) { + mergeData(newData, data); + } + func = newData[0]; + bitmask = newData[1]; + thisArg = newData[2]; + partials = newData[3]; + holders = newData[4]; + arity = newData[9] = newData[9] === undefined + ? (isBindKey ? 0 : func.length) + : nativeMax(newData[9] - length, 0); + + if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { + bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); + } + if (!bitmask || bitmask == WRAP_BIND_FLAG) { + var result = createBind(func, bitmask, thisArg); + } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { + result = createCurry(func, bitmask, arity); + } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { + result = createPartial(func, bitmask, thisArg, partials); + } else { + result = createHybrid.apply(undefined, newData); + } + var setter = data ? baseSetData : setData; + return setWrapToString(setter(result, newData), func, bitmask); + } + + /** + * Used by `_.defaults` to customize its `_.assignIn` use to assign properties + * of source objects to the destination object for all destination properties + * that resolve to `undefined`. + * + * @private + * @param {*} objValue The destination value. + * @param {*} srcValue The source value. + * @param {string} key The key of the property to assign. + * @param {Object} object The parent object of `objValue`. + * @returns {*} Returns the value to assign. + */ + function customDefaultsAssignIn(objValue, srcValue, key, object) { + if (objValue === undefined || + (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) { + return srcValue; + } + return objValue; + } + + /** + * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source + * objects into destination objects that are passed thru. + * + * @private + * @param {*} objValue The destination value. + * @param {*} srcValue The source value. + * @param {string} key The key of the property to merge. + * @param {Object} object The parent object of `objValue`. + * @param {Object} source The parent object of `srcValue`. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + * @returns {*} Returns the value to assign. + */ + function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { + if (isObject(objValue) && isObject(srcValue)) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, objValue); + baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack); + stack['delete'](srcValue); + } + return objValue; + } + + /** + * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain + * objects. + * + * @private + * @param {*} value The value to inspect. + * @param {string} key The key of the property to inspect. + * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. + */ + function customOmitClone(value) { + return isPlainObject(value) ? undefined : value; + } + + /** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(array); + if (stacked && stack.get(other)) { + return stacked == other; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; + } + + /** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag: + var convert = mapToArray; + + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; + } + + /** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked && stack.get(other)) { + return stacked == other; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; + } + + /** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + function flatRest(func) { + return setToString(overRest(func, undefined, flatten), func + ''); + } + + /** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); + } + + /** + * Creates an array of own and inherited enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); + } + + /** + * Gets metadata for `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {*} Returns the metadata for `func`. + */ + var getData = !metaMap ? noop : function(func) { + return metaMap.get(func); + }; + + /** + * Gets the name of `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {string} Returns the function name. + */ + function getFuncName(func) { + var result = (func.name + ''), + array = realNames[result], + length = hasOwnProperty.call(realNames, result) ? array.length : 0; + + while (length--) { + var data = array[length], + otherFunc = data.func; + if (otherFunc == null || otherFunc == func) { + return data.name; + } + } + return result; + } + + /** + * Gets the argument placeholder value for `func`. + * + * @private + * @param {Function} func The function to inspect. + * @returns {*} Returns the placeholder value. + */ + function getHolder(func) { + var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func; + return object.placeholder; + } + + /** + * Gets the appropriate "iteratee" function. If `_.iteratee` is customized, + * this function returns the custom method, otherwise it returns `baseIteratee`. + * If arguments are provided, the chosen function is invoked with them and + * its result is returned. + * + * @private + * @param {*} [value] The value to convert to an iteratee. + * @param {number} [arity] The arity of the created iteratee. + * @returns {Function} Returns the chosen function or its result. + */ + function getIteratee() { + var result = lodash.iteratee || iteratee; + result = result === iteratee ? baseIteratee : result; + return arguments.length ? result(arguments[0], arguments[1]) : result; + } + + /** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ + function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; + } + + /** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ + function getMatchData(object) { + var result = keys(object), + length = result.length; + + while (length--) { + var key = result[length], + value = object[key]; + + result[length] = [key, value, isStrictComparable(value)]; + } + return result; + } + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; + } + + /** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ + function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; + } + + /** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); + }; + + /** + * Creates an array of the own and inherited enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { + var result = []; + while (object) { + arrayPush(result, getSymbols(object)); + object = getPrototype(object); + } + return result; + }; + + /** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + var getTag = baseGetTag; + + // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. + if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; + } + + /** + * Gets the view, applying any `transforms` to the `start` and `end` positions. + * + * @private + * @param {number} start The start of the view. + * @param {number} end The end of the view. + * @param {Array} transforms The transformations to apply to the view. + * @returns {Object} Returns an object containing the `start` and `end` + * positions of the view. + */ + function getView(start, end, transforms) { + var index = -1, + length = transforms.length; + + while (++index < length) { + var data = transforms[index], + size = data.size; + + switch (data.type) { + case 'drop': start += size; break; + case 'dropRight': end -= size; break; + case 'take': end = nativeMin(end, start + size); break; + case 'takeRight': start = nativeMax(start, end - size); break; + } + } + return { 'start': start, 'end': end }; + } + + /** + * Extracts wrapper details from the `source` body comment. + * + * @private + * @param {string} source The source to inspect. + * @returns {Array} Returns the wrapper details. + */ + function getWrapDetails(source) { + var match = source.match(reWrapDetails); + return match ? match[1].split(reSplitDetails) : []; + } + + /** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ + function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); + } + + /** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ + function initCloneArray(array) { + var length = array.length, + result = new array.constructor(length); + + // Add properties assigned by `RegExp#exec`. + if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { + result.index = array.index; + result.input = array.input; + } + return result; + } + + /** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneObject(object) { + return (typeof object.constructor == 'function' && !isPrototype(object)) + ? baseCreate(getPrototype(object)) + : {}; + } + + /** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return cloneArrayBuffer(object); + + case boolTag: + case dateTag: + return new Ctor(+object); + + case dataViewTag: + return cloneDataView(object, isDeep); + + case float32Tag: case float64Tag: + case int8Tag: case int16Tag: case int32Tag: + case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: + return cloneTypedArray(object, isDeep); + + case mapTag: + return new Ctor; + + case numberTag: + case stringTag: + return new Ctor(object); + + case regexpTag: + return cloneRegExp(object); + + case setTag: + return new Ctor; + + case symbolTag: + return cloneSymbol(object); + } + } + + /** + * Inserts wrapper `details` in a comment at the top of the `source` body. + * + * @private + * @param {string} source The source to modify. + * @returns {Array} details The details to insert. + * @returns {string} Returns the modified source. + */ + function insertWrapDetails(source, details) { + var length = details.length; + if (!length) { + return source; + } + var lastIndex = length - 1; + details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; + details = details.join(length > 2 ? ', ' : ' '); + return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); + } + + /** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ + function isFlattenable(value) { + return isArray(value) || isArguments(value) || + !!(spreadableSymbol && value && value[spreadableSymbol]); + } + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); + } + + /** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ + function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; + } + + /** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ + function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); + } + + /** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ + function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); + } + + /** + * Checks if `func` has a lazy counterpart. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` has a lazy counterpart, + * else `false`. + */ + function isLaziable(func) { + var funcName = getFuncName(func), + other = lodash[funcName]; + + if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { + return false; + } + if (func === other) { + return true; + } + var data = getData(other); + return !!data && func === data[0]; + } + + /** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ + function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); + } + + /** + * Checks if `func` is capable of being masked. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `func` is maskable, else `false`. + */ + var isMaskable = coreJsData ? isFunction : stubFalse; + + /** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ + function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; + } + + /** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ + function isStrictComparable(value) { + return value === value && !isObject(value); + } + + /** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; + } + + /** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ + function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; + } + + /** + * Merges the function metadata of `source` into `data`. + * + * Merging metadata reduces the number of wrappers used to invoke a function. + * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` + * may be applied regardless of execution order. Methods like `_.ary` and + * `_.rearg` modify function arguments, making the order in which they are + * executed important, preventing the merging of metadata. However, we make + * an exception for a safe combined case where curried functions have `_.ary` + * and or `_.rearg` applied. + * + * @private + * @param {Array} data The destination metadata. + * @param {Array} source The source metadata. + * @returns {Array} Returns `data`. + */ + function mergeData(data, source) { + var bitmask = data[1], + srcBitmask = source[1], + newBitmask = bitmask | srcBitmask, + isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); + + var isCombo = + ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) || + ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) || + ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG)); + + // Exit early if metadata can't be merged. + if (!(isCommon || isCombo)) { + return data; + } + // Use source `thisArg` if available. + if (srcBitmask & WRAP_BIND_FLAG) { + data[2] = source[2]; + // Set when currying a bound function. + newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; + } + // Compose partial arguments. + var value = source[3]; + if (value) { + var partials = data[3]; + data[3] = partials ? composeArgs(partials, value, source[4]) : value; + data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; + } + // Compose partial right arguments. + value = source[5]; + if (value) { + partials = data[5]; + data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; + data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; + } + // Use source `argPos` if available. + value = source[7]; + if (value) { + data[7] = value; + } + // Use source `ary` if it's smaller. + if (srcBitmask & WRAP_ARY_FLAG) { + data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); + } + // Use source `arity` if one is not provided. + if (data[9] == null) { + data[9] = source[9]; + } + // Use source `func` and merge bitmasks. + data[0] = source[0]; + data[1] = newBitmask; + + return data; + } + + /** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; + } + + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString(value) { + return nativeObjectToString.call(value); + } + + /** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ + function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; + } + + /** + * Gets the parent value at `path` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path to get the parent value of. + * @returns {*} Returns the parent value. + */ + function parent(object, path) { + return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); + } + + /** + * Reorder `array` according to the specified indexes where the element at + * the first index is assigned as the first element, the element at + * the second index is assigned as the second element, and so on. + * + * @private + * @param {Array} array The array to reorder. + * @param {Array} indexes The arranged array indexes. + * @returns {Array} Returns `array`. + */ + function reorder(array, indexes) { + var arrLength = array.length, + length = nativeMin(indexes.length, arrLength), + oldArray = copyArray(array); + + while (length--) { + var index = indexes[length]; + array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; + } + return array; + } + + /** + * Sets metadata for `func`. + * + * **Note:** If this function becomes hot, i.e. is invoked a lot in a short + * period of time, it will trip its breaker and transition to an identity + * function to avoid garbage collection pauses in V8. See + * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070) + * for more details. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ + var setData = shortOut(baseSetData); + + /** + * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout). + * + * @private + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @returns {number|Object} Returns the timer id or timeout object. + */ + var setTimeout = ctxSetTimeout || function(func, wait) { + return root.setTimeout(func, wait); + }; + + /** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var setToString = shortOut(baseSetToString); + + /** + * Sets the `toString` method of `wrapper` to mimic the source of `reference` + * with wrapper details in a comment at the top of the source body. + * + * @private + * @param {Function} wrapper The function to modify. + * @param {Function} reference The reference function. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @returns {Function} Returns `wrapper`. + */ + function setWrapToString(wrapper, reference, bitmask) { + var source = (reference + ''); + return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); + } + + /** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ + function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; + } + + /** + * A specialized version of `_.shuffle` which mutates and sets the size of `array`. + * + * @private + * @param {Array} array The array to shuffle. + * @param {number} [size=array.length] The size of `array`. + * @returns {Array} Returns `array`. + */ + function shuffleSelf(array, size) { + var index = -1, + length = array.length, + lastIndex = length - 1; + + size = size === undefined ? length : size; + while (++index < size) { + var rand = baseRandom(index, lastIndex), + value = array[rand]; + + array[rand] = array[index]; + array[index] = value; + } + array.length = size; + return array; + } + + /** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ + var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; + }); + + /** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ + function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; + } + + /** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ + function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; + } + + /** + * Updates wrapper `details` based on `bitmask` flags. + * + * @private + * @returns {Array} details The details to modify. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @returns {Array} Returns `details`. + */ + function updateWrapDetails(details, bitmask) { + arrayEach(wrapFlags, function(pair) { + var value = '_.' + pair[0]; + if ((bitmask & pair[1]) && !arrayIncludes(details, value)) { + details.push(value); + } + }); + return details.sort(); + } + + /** + * Creates a clone of `wrapper`. + * + * @private + * @param {Object} wrapper The wrapper to clone. + * @returns {Object} Returns the cloned wrapper. + */ + function wrapperClone(wrapper) { + if (wrapper instanceof LazyWrapper) { + return wrapper.clone(); + } + var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); + result.__actions__ = copyArray(wrapper.__actions__); + result.__index__ = wrapper.__index__; + result.__values__ = wrapper.__values__; + return result; + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates an array of elements split into groups the length of `size`. + * If `array` can't be split evenly, the final chunk will be the remaining + * elements. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to process. + * @param {number} [size=1] The length of each chunk + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the new array of chunks. + * @example + * + * _.chunk(['a', 'b', 'c', 'd'], 2); + * // => [['a', 'b'], ['c', 'd']] + * + * _.chunk(['a', 'b', 'c', 'd'], 3); + * // => [['a', 'b', 'c'], ['d']] + */ + function chunk(array, size, guard) { + if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) { + size = 1; + } else { + size = nativeMax(toInteger(size), 0); + } + var length = array == null ? 0 : array.length; + if (!length || size < 1) { + return []; + } + var index = 0, + resIndex = 0, + result = Array(nativeCeil(length / size)); + + while (index < length) { + result[resIndex++] = baseSlice(array, index, (index += size)); + } + return result; + } + + /** + * Creates an array with all falsey values removed. The values `false`, `null`, + * `0`, `""`, `undefined`, and `NaN` are falsey. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to compact. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.compact([0, 1, false, 2, '', 3]); + * // => [1, 2, 3] + */ + function compact(array) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (value) { + result[resIndex++] = value; + } + } + return result; + } + + /** + * Creates a new array concatenating `array` with any additional arrays + * and/or values. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to concatenate. + * @param {...*} [values] The values to concatenate. + * @returns {Array} Returns the new concatenated array. + * @example + * + * var array = [1]; + * var other = _.concat(array, 2, [3], [[4]]); + * + * console.log(other); + * // => [1, 2, 3, [4]] + * + * console.log(array); + * // => [1] + */ + function concat() { + var length = arguments.length; + if (!length) { + return []; + } + var args = Array(length - 1), + array = arguments[0], + index = length; + + while (index--) { + args[index - 1] = arguments[index]; + } + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); + } + + /** + * Creates an array of `array` values not included in the other given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * **Note:** Unlike `_.pullAll`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @see _.without, _.xor + * @example + * + * _.difference([2, 1], [2, 3]); + * // => [1] + */ + var difference = baseRest(function(array, values) { + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) + : []; + }); + + /** + * This method is like `_.difference` except that it accepts `iteratee` which + * is invoked for each element of `array` and `values` to generate the criterion + * by which they're compared. The order and references of result values are + * determined by the first array. The iteratee is invoked with one argument: + * (value). + * + * **Note:** Unlike `_.pullAllBy`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [1.2] + * + * // The `_.property` iteratee shorthand. + * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); + * // => [{ 'x': 2 }] + */ + var differenceBy = baseRest(function(array, values) { + var iteratee = last(values); + if (isArrayLikeObject(iteratee)) { + iteratee = undefined; + } + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) + : []; + }); + + /** + * This method is like `_.difference` except that it accepts `comparator` + * which is invoked to compare elements of `array` to `values`. The order and + * references of result values are determined by the first array. The comparator + * is invoked with two arguments: (arrVal, othVal). + * + * **Note:** Unlike `_.pullAllWith`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * + * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); + * // => [{ 'x': 2, 'y': 1 }] + */ + var differenceWith = baseRest(function(array, values) { + var comparator = last(values); + if (isArrayLikeObject(comparator)) { + comparator = undefined; + } + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator) + : []; + }); + + /** + * Creates a slice of `array` with `n` elements dropped from the beginning. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to drop. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.drop([1, 2, 3]); + * // => [2, 3] + * + * _.drop([1, 2, 3], 2); + * // => [3] + * + * _.drop([1, 2, 3], 5); + * // => [] + * + * _.drop([1, 2, 3], 0); + * // => [1, 2, 3] + */ + function drop(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + return baseSlice(array, n < 0 ? 0 : n, length); + } + + /** + * Creates a slice of `array` with `n` elements dropped from the end. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to drop. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.dropRight([1, 2, 3]); + * // => [1, 2] + * + * _.dropRight([1, 2, 3], 2); + * // => [1] + * + * _.dropRight([1, 2, 3], 5); + * // => [] + * + * _.dropRight([1, 2, 3], 0); + * // => [1, 2, 3] + */ + function dropRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, 0, n < 0 ? 0 : n); + } + + /** + * Creates a slice of `array` excluding elements dropped from the end. + * Elements are dropped until `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.dropRightWhile(users, function(o) { return !o.active; }); + * // => objects for ['barney'] + * + * // The `_.matches` iteratee shorthand. + * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); + * // => objects for ['barney', 'fred'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.dropRightWhile(users, ['active', false]); + * // => objects for ['barney'] + * + * // The `_.property` iteratee shorthand. + * _.dropRightWhile(users, 'active'); + * // => objects for ['barney', 'fred', 'pebbles'] + */ + function dropRightWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, getIteratee(predicate, 3), true, true) + : []; + } + + /** + * Creates a slice of `array` excluding elements dropped from the beginning. + * Elements are dropped until `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.dropWhile(users, function(o) { return !o.active; }); + * // => objects for ['pebbles'] + * + * // The `_.matches` iteratee shorthand. + * _.dropWhile(users, { 'user': 'barney', 'active': false }); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.dropWhile(users, ['active', false]); + * // => objects for ['pebbles'] + * + * // The `_.property` iteratee shorthand. + * _.dropWhile(users, 'active'); + * // => objects for ['barney', 'fred', 'pebbles'] + */ + function dropWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, getIteratee(predicate, 3), true) + : []; + } + + /** + * Fills elements of `array` with `value` from `start` up to, but not + * including, `end`. + * + * **Note:** This method mutates `array`. + * + * @static + * @memberOf _ + * @since 3.2.0 + * @category Array + * @param {Array} array The array to fill. + * @param {*} value The value to fill `array` with. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns `array`. + * @example + * + * var array = [1, 2, 3]; + * + * _.fill(array, 'a'); + * console.log(array); + * // => ['a', 'a', 'a'] + * + * _.fill(Array(3), 2); + * // => [2, 2, 2] + * + * _.fill([4, 6, 8, 10], '*', 1, 3); + * // => [4, '*', '*', 10] + */ + function fill(array, value, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { + start = 0; + end = length; + } + return baseFill(array, value, start, end); + } + + /** + * This method is like `_.find` except that it returns the index of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.findIndex(users, function(o) { return o.user == 'barney'; }); + * // => 0 + * + * // The `_.matches` iteratee shorthand. + * _.findIndex(users, { 'user': 'fred', 'active': false }); + * // => 1 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findIndex(users, ['active', false]); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.findIndex(users, 'active'); + * // => 2 + */ + function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, getIteratee(predicate, 3), index); + } + + /** + * This method is like `_.findIndex` except that it iterates over elements + * of `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); + * // => 2 + * + * // The `_.matches` iteratee shorthand. + * _.findLastIndex(users, { 'user': 'barney', 'active': true }); + * // => 0 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastIndex(users, ['active', false]); + * // => 2 + * + * // The `_.property` iteratee shorthand. + * _.findLastIndex(users, 'active'); + * // => 0 + */ + function findLastIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length - 1; + if (fromIndex !== undefined) { + index = toInteger(fromIndex); + index = fromIndex < 0 + ? nativeMax(length + index, 0) + : nativeMin(index, length - 1); + } + return baseFindIndex(array, getIteratee(predicate, 3), index, true); + } + + /** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ + function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; + } + + /** + * Recursively flattens `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flattenDeep([1, [2, [3, [4]], 5]]); + * // => [1, 2, 3, 4, 5] + */ + function flattenDeep(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, INFINITY) : []; + } + + /** + * Recursively flatten `array` up to `depth` times. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Array + * @param {Array} array The array to flatten. + * @param {number} [depth=1] The maximum recursion depth. + * @returns {Array} Returns the new flattened array. + * @example + * + * var array = [1, [2, [3, [4]], 5]]; + * + * _.flattenDepth(array, 1); + * // => [1, 2, [3, [4]], 5] + * + * _.flattenDepth(array, 2); + * // => [1, 2, 3, [4], 5] + */ + function flattenDepth(array, depth) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + depth = depth === undefined ? 1 : toInteger(depth); + return baseFlatten(array, depth); + } + + /** + * The inverse of `_.toPairs`; this method returns an object composed + * from key-value `pairs`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} pairs The key-value pairs. + * @returns {Object} Returns the new object. + * @example + * + * _.fromPairs([['a', 1], ['b', 2]]); + * // => { 'a': 1, 'b': 2 } + */ + function fromPairs(pairs) { + var index = -1, + length = pairs == null ? 0 : pairs.length, + result = {}; + + while (++index < length) { + var pair = pairs[index]; + result[pair[0]] = pair[1]; + } + return result; + } + + /** + * Gets the first element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias first + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the first element of `array`. + * @example + * + * _.head([1, 2, 3]); + * // => 1 + * + * _.head([]); + * // => undefined + */ + function head(array) { + return (array && array.length) ? array[0] : undefined; + } + + /** + * Gets the index at which the first occurrence of `value` is found in `array` + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it's used as the + * offset from the end of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.indexOf([1, 2, 1, 2], 2); + * // => 1 + * + * // Search from the `fromIndex`. + * _.indexOf([1, 2, 1, 2], 2, 2); + * // => 3 + */ + function indexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseIndexOf(array, value, index); + } + + /** + * Gets all but the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.initial([1, 2, 3]); + * // => [1, 2] + */ + function initial(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 0, -1) : []; + } + + /** + * Creates an array of unique values that are included in all given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * _.intersection([2, 1], [2, 3]); + * // => [2] + */ + var intersection = baseRest(function(arrays) { + var mapped = arrayMap(arrays, castArrayLikeObject); + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped) + : []; + }); + + /** + * This method is like `_.intersection` except that it accepts `iteratee` + * which is invoked for each element of each `arrays` to generate the criterion + * by which they're compared. The order and references of result values are + * determined by the first array. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [2.1] + * + * // The `_.property` iteratee shorthand. + * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }] + */ + var intersectionBy = baseRest(function(arrays) { + var iteratee = last(arrays), + mapped = arrayMap(arrays, castArrayLikeObject); + + if (iteratee === last(mapped)) { + iteratee = undefined; + } else { + mapped.pop(); + } + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped, getIteratee(iteratee, 2)) + : []; + }); + + /** + * This method is like `_.intersection` except that it accepts `comparator` + * which is invoked to compare elements of `arrays`. The order and references + * of result values are determined by the first array. The comparator is + * invoked with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.intersectionWith(objects, others, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }] + */ + var intersectionWith = baseRest(function(arrays) { + var comparator = last(arrays), + mapped = arrayMap(arrays, castArrayLikeObject); + + comparator = typeof comparator == 'function' ? comparator : undefined; + if (comparator) { + mapped.pop(); + } + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped, undefined, comparator) + : []; + }); + + /** + * Converts all elements in `array` into a string separated by `separator`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to convert. + * @param {string} [separator=','] The element separator. + * @returns {string} Returns the joined string. + * @example + * + * _.join(['a', 'b', 'c'], '~'); + * // => 'a~b~c' + */ + function join(array, separator) { + return array == null ? '' : nativeJoin.call(array, separator); + } + + /** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ + function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined; + } + + /** + * This method is like `_.indexOf` except that it iterates over elements of + * `array` from right to left. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.lastIndexOf([1, 2, 1, 2], 2); + * // => 3 + * + * // Search from the `fromIndex`. + * _.lastIndexOf([1, 2, 1, 2], 2, 2); + * // => 1 + */ + function lastIndexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length; + if (fromIndex !== undefined) { + index = toInteger(fromIndex); + index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return value === value + ? strictLastIndexOf(array, value, index) + : baseFindIndex(array, baseIsNaN, index, true); + } + + /** + * Gets the element at index `n` of `array`. If `n` is negative, the nth + * element from the end is returned. + * + * @static + * @memberOf _ + * @since 4.11.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=0] The index of the element to return. + * @returns {*} Returns the nth element of `array`. + * @example + * + * var array = ['a', 'b', 'c', 'd']; + * + * _.nth(array, 1); + * // => 'b' + * + * _.nth(array, -2); + * // => 'c'; + */ + function nth(array, n) { + return (array && array.length) ? baseNth(array, toInteger(n)) : undefined; + } + + /** + * Removes all given values from `array` using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` + * to remove elements from an array by predicate. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {...*} [values] The values to remove. + * @returns {Array} Returns `array`. + * @example + * + * var array = ['a', 'b', 'c', 'a', 'b', 'c']; + * + * _.pull(array, 'a', 'c'); + * console.log(array); + * // => ['b', 'b'] + */ + var pull = baseRest(pullAll); + + /** + * This method is like `_.pull` except that it accepts an array of values to remove. + * + * **Note:** Unlike `_.difference`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @returns {Array} Returns `array`. + * @example + * + * var array = ['a', 'b', 'c', 'a', 'b', 'c']; + * + * _.pullAll(array, ['a', 'c']); + * console.log(array); + * // => ['b', 'b'] + */ + function pullAll(array, values) { + return (array && array.length && values && values.length) + ? basePullAll(array, values) + : array; + } + + /** + * This method is like `_.pullAll` except that it accepts `iteratee` which is + * invoked for each element of `array` and `values` to generate the criterion + * by which they're compared. The iteratee is invoked with one argument: (value). + * + * **Note:** Unlike `_.differenceBy`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns `array`. + * @example + * + * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; + * + * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x'); + * console.log(array); + * // => [{ 'x': 2 }] + */ + function pullAllBy(array, values, iteratee) { + return (array && array.length && values && values.length) + ? basePullAll(array, values, getIteratee(iteratee, 2)) + : array; + } + + /** + * This method is like `_.pullAll` except that it accepts `comparator` which + * is invoked to compare elements of `array` to `values`. The comparator is + * invoked with two arguments: (arrVal, othVal). + * + * **Note:** Unlike `_.differenceWith`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 4.6.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns `array`. + * @example + * + * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; + * + * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); + * console.log(array); + * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }] + */ + function pullAllWith(array, values, comparator) { + return (array && array.length && values && values.length) + ? basePullAll(array, values, undefined, comparator) + : array; + } + + /** + * Removes elements from `array` corresponding to `indexes` and returns an + * array of removed elements. + * + * **Note:** Unlike `_.at`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {...(number|number[])} [indexes] The indexes of elements to remove. + * @returns {Array} Returns the new array of removed elements. + * @example + * + * var array = ['a', 'b', 'c', 'd']; + * var pulled = _.pullAt(array, [1, 3]); + * + * console.log(array); + * // => ['a', 'c'] + * + * console.log(pulled); + * // => ['b', 'd'] + */ + var pullAt = flatRest(function(array, indexes) { + var length = array == null ? 0 : array.length, + result = baseAt(array, indexes); + + basePullAt(array, arrayMap(indexes, function(index) { + return isIndex(index, length) ? +index : index; + }).sort(compareAscending)); + + return result; + }); + + /** + * Removes all elements from `array` that `predicate` returns truthy for + * and returns an array of the removed elements. The predicate is invoked + * with three arguments: (value, index, array). + * + * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull` + * to pull elements from an array by value. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new array of removed elements. + * @example + * + * var array = [1, 2, 3, 4]; + * var evens = _.remove(array, function(n) { + * return n % 2 == 0; + * }); + * + * console.log(array); + * // => [1, 3] + * + * console.log(evens); + * // => [2, 4] + */ + function remove(array, predicate) { + var result = []; + if (!(array && array.length)) { + return result; + } + var index = -1, + indexes = [], + length = array.length; + + predicate = getIteratee(predicate, 3); + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result.push(value); + indexes.push(index); + } + } + basePullAt(array, indexes); + return result; + } + + /** + * Reverses `array` so that the first element becomes the last, the second + * element becomes the second to last, and so on. + * + * **Note:** This method mutates `array` and is based on + * [`Array#reverse`](https://mdn.io/Array/reverse). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to modify. + * @returns {Array} Returns `array`. + * @example + * + * var array = [1, 2, 3]; + * + * _.reverse(array); + * // => [3, 2, 1] + * + * console.log(array); + * // => [3, 2, 1] + */ + function reverse(array) { + return array == null ? array : nativeReverse.call(array); + } + + /** + * Creates a slice of `array` from `start` up to, but not including, `end`. + * + * **Note:** This method is used instead of + * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are + * returned. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function slice(array, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { + start = 0; + end = length; + } + else { + start = start == null ? 0 : toInteger(start); + end = end === undefined ? length : toInteger(end); + } + return baseSlice(array, start, end); + } + + /** + * Uses a binary search to determine the lowest index at which `value` + * should be inserted into `array` in order to maintain its sort order. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * _.sortedIndex([30, 50], 40); + * // => 1 + */ + function sortedIndex(array, value) { + return baseSortedIndex(array, value); + } + + /** + * This method is like `_.sortedIndex` except that it accepts `iteratee` + * which is invoked for `value` and each element of `array` to compute their + * sort ranking. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * var objects = [{ 'x': 4 }, { 'x': 5 }]; + * + * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.sortedIndexBy(objects, { 'x': 4 }, 'x'); + * // => 0 + */ + function sortedIndexBy(array, value, iteratee) { + return baseSortedIndexBy(array, value, getIteratee(iteratee, 2)); + } + + /** + * This method is like `_.indexOf` except that it performs a binary + * search on a sorted `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.sortedIndexOf([4, 5, 5, 5, 6], 5); + * // => 1 + */ + function sortedIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value); + if (index < length && eq(array[index], value)) { + return index; + } + } + return -1; + } + + /** + * This method is like `_.sortedIndex` except that it returns the highest + * index at which `value` should be inserted into `array` in order to + * maintain its sort order. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * _.sortedLastIndex([4, 5, 5, 5, 6], 5); + * // => 4 + */ + function sortedLastIndex(array, value) { + return baseSortedIndex(array, value, true); + } + + /** + * This method is like `_.sortedLastIndex` except that it accepts `iteratee` + * which is invoked for `value` and each element of `array` to compute their + * sort ranking. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * var objects = [{ 'x': 4 }, { 'x': 5 }]; + * + * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); + * // => 1 + * + * // The `_.property` iteratee shorthand. + * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x'); + * // => 1 + */ + function sortedLastIndexBy(array, value, iteratee) { + return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true); + } + + /** + * This method is like `_.lastIndexOf` except that it performs a binary + * search on a sorted `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5); + * // => 3 + */ + function sortedLastIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value, true) - 1; + if (eq(array[index], value)) { + return index; + } + } + return -1; + } + + /** + * This method is like `_.uniq` except that it's designed and optimized + * for sorted arrays. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.sortedUniq([1, 1, 2]); + * // => [1, 2] + */ + function sortedUniq(array) { + return (array && array.length) + ? baseSortedUniq(array) + : []; + } + + /** + * This method is like `_.uniqBy` except that it's designed and optimized + * for sorted arrays. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); + * // => [1.1, 2.3] + */ + function sortedUniqBy(array, iteratee) { + return (array && array.length) + ? baseSortedUniq(array, getIteratee(iteratee, 2)) + : []; + } + + /** + * Gets all but the first element of `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to query. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.tail([1, 2, 3]); + * // => [2, 3] + */ + function tail(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 1, length) : []; + } + + /** + * Creates a slice of `array` with `n` elements taken from the beginning. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to take. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.take([1, 2, 3]); + * // => [1] + * + * _.take([1, 2, 3], 2); + * // => [1, 2] + * + * _.take([1, 2, 3], 5); + * // => [1, 2, 3] + * + * _.take([1, 2, 3], 0); + * // => [] + */ + function take(array, n, guard) { + if (!(array && array.length)) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + return baseSlice(array, 0, n < 0 ? 0 : n); + } + + /** + * Creates a slice of `array` with `n` elements taken from the end. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to take. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.takeRight([1, 2, 3]); + * // => [3] + * + * _.takeRight([1, 2, 3], 2); + * // => [2, 3] + * + * _.takeRight([1, 2, 3], 5); + * // => [1, 2, 3] + * + * _.takeRight([1, 2, 3], 0); + * // => [] + */ + function takeRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, n < 0 ? 0 : n, length); + } + + /** + * Creates a slice of `array` with elements taken from the end. Elements are + * taken until `predicate` returns falsey. The predicate is invoked with + * three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.takeRightWhile(users, function(o) { return !o.active; }); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.matches` iteratee shorthand. + * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); + * // => objects for ['pebbles'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.takeRightWhile(users, ['active', false]); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.property` iteratee shorthand. + * _.takeRightWhile(users, 'active'); + * // => [] + */ + function takeRightWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, getIteratee(predicate, 3), false, true) + : []; + } + + /** + * Creates a slice of `array` with elements taken from the beginning. Elements + * are taken until `predicate` returns falsey. The predicate is invoked with + * three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.takeWhile(users, function(o) { return !o.active; }); + * // => objects for ['barney', 'fred'] + * + * // The `_.matches` iteratee shorthand. + * _.takeWhile(users, { 'user': 'barney', 'active': false }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.takeWhile(users, ['active', false]); + * // => objects for ['barney', 'fred'] + * + * // The `_.property` iteratee shorthand. + * _.takeWhile(users, 'active'); + * // => [] + */ + function takeWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, getIteratee(predicate, 3)) + : []; + } + + /** + * Creates an array of unique values, in order, from all given arrays using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.union([2], [1, 2]); + * // => [2, 1] + */ + var union = baseRest(function(arrays) { + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); + }); + + /** + * This method is like `_.union` except that it accepts `iteratee` which is + * invoked for each element of each `arrays` to generate the criterion by + * which uniqueness is computed. Result values are chosen from the first + * array in which the value occurs. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.unionBy([2.1], [1.2, 2.3], Math.floor); + * // => [2.1, 1.2] + * + * // The `_.property` iteratee shorthand. + * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] + */ + var unionBy = baseRest(function(arrays) { + var iteratee = last(arrays); + if (isArrayLikeObject(iteratee)) { + iteratee = undefined; + } + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)); + }); + + /** + * This method is like `_.union` except that it accepts `comparator` which + * is invoked to compare elements of `arrays`. Result values are chosen from + * the first array in which the value occurs. The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of combined values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.unionWith(objects, others, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] + */ + var unionWith = baseRest(function(arrays) { + var comparator = last(arrays); + comparator = typeof comparator == 'function' ? comparator : undefined; + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator); + }); + + /** + * Creates a duplicate-free version of an array, using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons, in which only the first occurrence of each element + * is kept. The order of result values is determined by the order they occur + * in the array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.uniq([2, 1, 2]); + * // => [2, 1] + */ + function uniq(array) { + return (array && array.length) ? baseUniq(array) : []; + } + + /** + * This method is like `_.uniq` except that it accepts `iteratee` which is + * invoked for each element in `array` to generate the criterion by which + * uniqueness is computed. The order of result values is determined by the + * order they occur in the array. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.uniqBy([2.1, 1.2, 2.3], Math.floor); + * // => [2.1, 1.2] + * + * // The `_.property` iteratee shorthand. + * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] + */ + function uniqBy(array, iteratee) { + return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : []; + } + + /** + * This method is like `_.uniq` except that it accepts `comparator` which + * is invoked to compare elements of `array`. The order of result values is + * determined by the order they occur in the array.The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.uniqWith(objects, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] + */ + function uniqWith(array, comparator) { + comparator = typeof comparator == 'function' ? comparator : undefined; + return (array && array.length) ? baseUniq(array, undefined, comparator) : []; + } + + /** + * This method is like `_.zip` except that it accepts an array of grouped + * elements and creates an array regrouping the elements to their pre-zip + * configuration. + * + * @static + * @memberOf _ + * @since 1.2.0 + * @category Array + * @param {Array} array The array of grouped elements to process. + * @returns {Array} Returns the new array of regrouped elements. + * @example + * + * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); + * // => [['a', 1, true], ['b', 2, false]] + * + * _.unzip(zipped); + * // => [['a', 'b'], [1, 2], [true, false]] + */ + function unzip(array) { + if (!(array && array.length)) { + return []; + } + var length = 0; + array = arrayFilter(array, function(group) { + if (isArrayLikeObject(group)) { + length = nativeMax(group.length, length); + return true; + } + }); + return baseTimes(length, function(index) { + return arrayMap(array, baseProperty(index)); + }); + } + + /** + * This method is like `_.unzip` except that it accepts `iteratee` to specify + * how regrouped values should be combined. The iteratee is invoked with the + * elements of each group: (...group). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Array + * @param {Array} array The array of grouped elements to process. + * @param {Function} [iteratee=_.identity] The function to combine + * regrouped values. + * @returns {Array} Returns the new array of regrouped elements. + * @example + * + * var zipped = _.zip([1, 2], [10, 20], [100, 200]); + * // => [[1, 10, 100], [2, 20, 200]] + * + * _.unzipWith(zipped, _.add); + * // => [3, 30, 300] + */ + function unzipWith(array, iteratee) { + if (!(array && array.length)) { + return []; + } + var result = unzip(array); + if (iteratee == null) { + return result; + } + return arrayMap(result, function(group) { + return apply(iteratee, undefined, group); + }); + } + + /** + * Creates an array excluding all given values using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * **Note:** Unlike `_.pull`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...*} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @see _.difference, _.xor + * @example + * + * _.without([2, 1, 2, 3], 1, 2); + * // => [3] + */ + var without = baseRest(function(array, values) { + return isArrayLikeObject(array) + ? baseDifference(array, values) + : []; + }); + + /** + * Creates an array of unique values that is the + * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) + * of the given arrays. The order of result values is determined by the order + * they occur in the arrays. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of filtered values. + * @see _.difference, _.without + * @example + * + * _.xor([2, 1], [2, 3]); + * // => [1, 3] + */ + var xor = baseRest(function(arrays) { + return baseXor(arrayFilter(arrays, isArrayLikeObject)); + }); + + /** + * This method is like `_.xor` except that it accepts `iteratee` which is + * invoked for each element of each `arrays` to generate the criterion by + * which by which they're compared. The order of result values is determined + * by the order they occur in the arrays. The iteratee is invoked with one + * argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [1.2, 3.4] + * + * // The `_.property` iteratee shorthand. + * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 2 }] + */ + var xorBy = baseRest(function(arrays) { + var iteratee = last(arrays); + if (isArrayLikeObject(iteratee)) { + iteratee = undefined; + } + return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2)); + }); + + /** + * This method is like `_.xor` except that it accepts `comparator` which is + * invoked to compare elements of `arrays`. The order of result values is + * determined by the order they occur in the arrays. The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.xorWith(objects, others, _.isEqual); + * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] + */ + var xorWith = baseRest(function(arrays) { + var comparator = last(arrays); + comparator = typeof comparator == 'function' ? comparator : undefined; + return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator); + }); + + /** + * Creates an array of grouped elements, the first of which contains the + * first elements of the given arrays, the second of which contains the + * second elements of the given arrays, and so on. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to process. + * @returns {Array} Returns the new array of grouped elements. + * @example + * + * _.zip(['a', 'b'], [1, 2], [true, false]); + * // => [['a', 1, true], ['b', 2, false]] + */ + var zip = baseRest(unzip); + + /** + * This method is like `_.fromPairs` except that it accepts two arrays, + * one of property identifiers and one of corresponding values. + * + * @static + * @memberOf _ + * @since 0.4.0 + * @category Array + * @param {Array} [props=[]] The property identifiers. + * @param {Array} [values=[]] The property values. + * @returns {Object} Returns the new object. + * @example + * + * _.zipObject(['a', 'b'], [1, 2]); + * // => { 'a': 1, 'b': 2 } + */ + function zipObject(props, values) { + return baseZipObject(props || [], values || [], assignValue); + } + + /** + * This method is like `_.zipObject` except that it supports property paths. + * + * @static + * @memberOf _ + * @since 4.1.0 + * @category Array + * @param {Array} [props=[]] The property identifiers. + * @param {Array} [values=[]] The property values. + * @returns {Object} Returns the new object. + * @example + * + * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); + * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } + */ + function zipObjectDeep(props, values) { + return baseZipObject(props || [], values || [], baseSet); + } + + /** + * This method is like `_.zip` except that it accepts `iteratee` to specify + * how grouped values should be combined. The iteratee is invoked with the + * elements of each group: (...group). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Array + * @param {...Array} [arrays] The arrays to process. + * @param {Function} [iteratee=_.identity] The function to combine + * grouped values. + * @returns {Array} Returns the new array of grouped elements. + * @example + * + * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { + * return a + b + c; + * }); + * // => [111, 222] + */ + var zipWith = baseRest(function(arrays) { + var length = arrays.length, + iteratee = length > 1 ? arrays[length - 1] : undefined; + + iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined; + return unzipWith(arrays, iteratee); + }); + + /*------------------------------------------------------------------------*/ + + /** + * Creates a `lodash` wrapper instance that wraps `value` with explicit method + * chain sequences enabled. The result of such sequences must be unwrapped + * with `_#value`. + * + * @static + * @memberOf _ + * @since 1.3.0 + * @category Seq + * @param {*} value The value to wrap. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'pebbles', 'age': 1 } + * ]; + * + * var youngest = _ + * .chain(users) + * .sortBy('age') + * .map(function(o) { + * return o.user + ' is ' + o.age; + * }) + * .head() + * .value(); + * // => 'pebbles is 1' + */ + function chain(value) { + var result = lodash(value); + result.__chain__ = true; + return result; + } + + /** + * This method invokes `interceptor` and returns `value`. The interceptor + * is invoked with one argument; (value). The purpose of this method is to + * "tap into" a method chain sequence in order to modify intermediate results. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns `value`. + * @example + * + * _([1, 2, 3]) + * .tap(function(array) { + * // Mutate input array. + * array.pop(); + * }) + * .reverse() + * .value(); + * // => [2, 1] + */ + function tap(value, interceptor) { + interceptor(value); + return value; + } + + /** + * This method is like `_.tap` except that it returns the result of `interceptor`. + * The purpose of this method is to "pass thru" values replacing intermediate + * results in a method chain sequence. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns the result of `interceptor`. + * @example + * + * _(' abc ') + * .chain() + * .trim() + * .thru(function(value) { + * return [value]; + * }) + * .value(); + * // => ['abc'] + */ + function thru(value, interceptor) { + return interceptor(value); + } + + /** + * This method is the wrapper version of `_.at`. + * + * @name at + * @memberOf _ + * @since 1.0.0 + * @category Seq + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; + * + * _(object).at(['a[0].b.c', 'a[1]']).value(); + * // => [3, 4] + */ + var wrapperAt = flatRest(function(paths) { + var length = paths.length, + start = length ? paths[0] : 0, + value = this.__wrapped__, + interceptor = function(object) { return baseAt(object, paths); }; + + if (length > 1 || this.__actions__.length || + !(value instanceof LazyWrapper) || !isIndex(start)) { + return this.thru(interceptor); + } + value = value.slice(start, +start + (length ? 1 : 0)); + value.__actions__.push({ + 'func': thru, + 'args': [interceptor], + 'thisArg': undefined + }); + return new LodashWrapper(value, this.__chain__).thru(function(array) { + if (length && !array.length) { + array.push(undefined); + } + return array; + }); + }); + + /** + * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. + * + * @name chain + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 } + * ]; + * + * // A sequence without explicit chaining. + * _(users).head(); + * // => { 'user': 'barney', 'age': 36 } + * + * // A sequence with explicit chaining. + * _(users) + * .chain() + * .head() + * .pick('user') + * .value(); + * // => { 'user': 'barney' } + */ + function wrapperChain() { + return chain(this); + } + + /** + * Executes the chain sequence and returns the wrapped result. + * + * @name commit + * @memberOf _ + * @since 3.2.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var array = [1, 2]; + * var wrapped = _(array).push(3); + * + * console.log(array); + * // => [1, 2] + * + * wrapped = wrapped.commit(); + * console.log(array); + * // => [1, 2, 3] + * + * wrapped.last(); + * // => 3 + * + * console.log(array); + * // => [1, 2, 3] + */ + function wrapperCommit() { + return new LodashWrapper(this.value(), this.__chain__); + } + + /** + * Gets the next value on a wrapped object following the + * [iterator protocol](https://mdn.io/iteration_protocols#iterator). + * + * @name next + * @memberOf _ + * @since 4.0.0 + * @category Seq + * @returns {Object} Returns the next iterator value. + * @example + * + * var wrapped = _([1, 2]); + * + * wrapped.next(); + * // => { 'done': false, 'value': 1 } + * + * wrapped.next(); + * // => { 'done': false, 'value': 2 } + * + * wrapped.next(); + * // => { 'done': true, 'value': undefined } + */ + function wrapperNext() { + if (this.__values__ === undefined) { + this.__values__ = toArray(this.value()); + } + var done = this.__index__ >= this.__values__.length, + value = done ? undefined : this.__values__[this.__index__++]; + + return { 'done': done, 'value': value }; + } + + /** + * Enables the wrapper to be iterable. + * + * @name Symbol.iterator + * @memberOf _ + * @since 4.0.0 + * @category Seq + * @returns {Object} Returns the wrapper object. + * @example + * + * var wrapped = _([1, 2]); + * + * wrapped[Symbol.iterator]() === wrapped; + * // => true + * + * Array.from(wrapped); + * // => [1, 2] + */ + function wrapperToIterator() { + return this; + } + + /** + * Creates a clone of the chain sequence planting `value` as the wrapped value. + * + * @name plant + * @memberOf _ + * @since 3.2.0 + * @category Seq + * @param {*} value The value to plant. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * function square(n) { + * return n * n; + * } + * + * var wrapped = _([1, 2]).map(square); + * var other = wrapped.plant([3, 4]); + * + * other.value(); + * // => [9, 16] + * + * wrapped.value(); + * // => [1, 4] + */ + function wrapperPlant(value) { + var result, + parent = this; + + while (parent instanceof baseLodash) { + var clone = wrapperClone(parent); + clone.__index__ = 0; + clone.__values__ = undefined; + if (result) { + previous.__wrapped__ = clone; + } else { + result = clone; + } + var previous = clone; + parent = parent.__wrapped__; + } + previous.__wrapped__ = value; + return result; + } + + /** + * This method is the wrapper version of `_.reverse`. + * + * **Note:** This method mutates the wrapped array. + * + * @name reverse + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var array = [1, 2, 3]; + * + * _(array).reverse().value() + * // => [3, 2, 1] + * + * console.log(array); + * // => [3, 2, 1] + */ + function wrapperReverse() { + var value = this.__wrapped__; + if (value instanceof LazyWrapper) { + var wrapped = value; + if (this.__actions__.length) { + wrapped = new LazyWrapper(this); + } + wrapped = wrapped.reverse(); + wrapped.__actions__.push({ + 'func': thru, + 'args': [reverse], + 'thisArg': undefined + }); + return new LodashWrapper(wrapped, this.__chain__); + } + return this.thru(reverse); + } + + /** + * Executes the chain sequence to resolve the unwrapped value. + * + * @name value + * @memberOf _ + * @since 0.1.0 + * @alias toJSON, valueOf + * @category Seq + * @returns {*} Returns the resolved unwrapped value. + * @example + * + * _([1, 2, 3]).value(); + * // => [1, 2, 3] + */ + function wrapperValue() { + return baseWrapperValue(this.__wrapped__, this.__actions__); + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The corresponding value of + * each key is the number of times the key was returned by `iteratee`. The + * iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.countBy([6.1, 4.2, 6.3], Math.floor); + * // => { '4': 1, '6': 2 } + * + * // The `_.property` iteratee shorthand. + * _.countBy(['one', 'two', 'three'], 'length'); + * // => { '3': 2, '5': 1 } + */ + var countBy = createAggregator(function(result, value, key) { + if (hasOwnProperty.call(result, key)) { + ++result[key]; + } else { + baseAssignValue(result, key, 1); + } + }); + + /** + * Checks if `predicate` returns truthy for **all** elements of `collection`. + * Iteration is stopped once `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * **Note:** This method returns `true` for + * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because + * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of + * elements of empty collections. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + * @example + * + * _.every([true, 1, null, 'yes'], Boolean); + * // => false + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.every(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.every(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.every(users, 'active'); + * // => false + */ + function every(collection, predicate, guard) { + var func = isArray(collection) ? arrayEvery : baseEvery; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined; + } + return func(collection, getIteratee(predicate, 3)); + } + + /** + * Iterates over elements of `collection`, returning an array of all elements + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * **Note:** Unlike `_.remove`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.reject + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * _.filter(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, { 'age': 36, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.filter(users, 'active'); + * // => objects for ['barney'] + */ + function filter(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, getIteratee(predicate, 3)); + } + + /** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.find(users, function(o) { return o.age < 40; }); + * // => object for 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.find(users, { 'age': 1, 'active': true }); + * // => object for 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.find(users, ['active', false]); + * // => object for 'fred' + * + * // The `_.property` iteratee shorthand. + * _.find(users, 'active'); + * // => object for 'barney' + */ + var find = createFind(findIndex); + + /** + * This method is like `_.find` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=collection.length-1] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * _.findLast([1, 2, 3, 4], function(n) { + * return n % 2 == 1; + * }); + * // => 3 + */ + var findLast = createFind(findLastIndex); + + /** + * Creates a flattened array of values by running each element in `collection` + * thru `iteratee` and flattening the mapped results. The iteratee is invoked + * with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [n, n]; + * } + * + * _.flatMap([1, 2], duplicate); + * // => [1, 1, 2, 2] + */ + function flatMap(collection, iteratee) { + return baseFlatten(map(collection, iteratee), 1); + } + + /** + * This method is like `_.flatMap` except that it recursively flattens the + * mapped results. + * + * @static + * @memberOf _ + * @since 4.7.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [[[n, n]]]; + * } + * + * _.flatMapDeep([1, 2], duplicate); + * // => [1, 1, 2, 2] + */ + function flatMapDeep(collection, iteratee) { + return baseFlatten(map(collection, iteratee), INFINITY); + } + + /** + * This method is like `_.flatMap` except that it recursively flattens the + * mapped results up to `depth` times. + * + * @static + * @memberOf _ + * @since 4.7.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {number} [depth=1] The maximum recursion depth. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [[[n, n]]]; + * } + * + * _.flatMapDepth([1, 2], duplicate, 2); + * // => [[1, 1], [2, 2]] + */ + function flatMapDepth(collection, iteratee, depth) { + depth = depth === undefined ? 1 : toInteger(depth); + return baseFlatten(map(collection, iteratee), depth); + } + + /** + * Iterates over elements of `collection` and invokes `iteratee` for each element. + * The iteratee is invoked with three arguments: (value, index|key, collection). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" + * property are iterated like arrays. To avoid this behavior use `_.forIn` + * or `_.forOwn` for object iteration. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias each + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEachRight + * @example + * + * _.forEach([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `1` then `2`. + * + * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ + function forEach(collection, iteratee) { + var func = isArray(collection) ? arrayEach : baseEach; + return func(collection, getIteratee(iteratee, 3)); + } + + /** + * This method is like `_.forEach` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @alias eachRight + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEach + * @example + * + * _.forEachRight([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `2` then `1`. + */ + function forEachRight(collection, iteratee) { + var func = isArray(collection) ? arrayEachRight : baseEachRight; + return func(collection, getIteratee(iteratee, 3)); + } + + /** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The order of grouped values + * is determined by the order they occur in `collection`. The corresponding + * value of each key is an array of elements responsible for generating the + * key. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.groupBy([6.1, 4.2, 6.3], Math.floor); + * // => { '4': [4.2], '6': [6.1, 6.3] } + * + * // The `_.property` iteratee shorthand. + * _.groupBy(['one', 'two', 'three'], 'length'); + * // => { '3': ['one', 'two'], '5': ['three'] } + */ + var groupBy = createAggregator(function(result, value, key) { + if (hasOwnProperty.call(result, key)) { + result[key].push(value); + } else { + baseAssignValue(result, key, [value]); + } + }); + + /** + * Checks if `value` is in `collection`. If `collection` is a string, it's + * checked for a substring of `value`, otherwise + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * is used for equality comparisons. If `fromIndex` is negative, it's used as + * the offset from the end of `collection`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. + * @returns {boolean} Returns `true` if `value` is found, else `false`. + * @example + * + * _.includes([1, 2, 3], 1); + * // => true + * + * _.includes([1, 2, 3], 1, 2); + * // => false + * + * _.includes({ 'a': 1, 'b': 2 }, 1); + * // => true + * + * _.includes('abcd', 'bc'); + * // => true + */ + function includes(collection, value, fromIndex, guard) { + collection = isArrayLike(collection) ? collection : values(collection); + fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; + + var length = collection.length; + if (fromIndex < 0) { + fromIndex = nativeMax(length + fromIndex, 0); + } + return isString(collection) + ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) + : (!!length && baseIndexOf(collection, value, fromIndex) > -1); + } + + /** + * Invokes the method at `path` of each element in `collection`, returning + * an array of the results of each invoked method. Any additional arguments + * are provided to each invoked method. If `path` is a function, it's invoked + * for, and `this` bound to, each element in `collection`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Array|Function|string} path The path of the method to invoke or + * the function invoked per iteration. + * @param {...*} [args] The arguments to invoke each method with. + * @returns {Array} Returns the array of results. + * @example + * + * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); + * // => [[1, 5, 7], [1, 2, 3]] + * + * _.invokeMap([123, 456], String.prototype.split, ''); + * // => [['1', '2', '3'], ['4', '5', '6']] + */ + var invokeMap = baseRest(function(collection, path, args) { + var index = -1, + isFunc = typeof path == 'function', + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value) { + result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); + }); + return result; + }); + + /** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The corresponding value of + * each key is the last element responsible for generating the key. The + * iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * var array = [ + * { 'dir': 'left', 'code': 97 }, + * { 'dir': 'right', 'code': 100 } + * ]; + * + * _.keyBy(array, function(o) { + * return String.fromCharCode(o.code); + * }); + * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } + * + * _.keyBy(array, 'dir'); + * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } + */ + var keyBy = createAggregator(function(result, value, key) { + baseAssignValue(result, key, value); + }); + + /** + * Creates an array of values by running each element in `collection` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, + * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, + * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, + * `template`, `trim`, `trimEnd`, `trimStart`, and `words` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + * @example + * + * function square(n) { + * return n * n; + * } + * + * _.map([4, 8], square); + * // => [16, 64] + * + * _.map({ 'a': 4, 'b': 8 }, square); + * // => [16, 64] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // The `_.property` iteratee shorthand. + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ + function map(collection, iteratee) { + var func = isArray(collection) ? arrayMap : baseMap; + return func(collection, getIteratee(iteratee, 3)); + } + + /** + * This method is like `_.sortBy` except that it allows specifying the sort + * orders of the iteratees to sort by. If `orders` is unspecified, all values + * are sorted in ascending order. Otherwise, specify an order of "desc" for + * descending or "asc" for ascending sort order of corresponding values. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]] + * The iteratees to sort by. + * @param {string[]} [orders] The sort orders of `iteratees`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. + * @returns {Array} Returns the new sorted array. + * @example + * + * var users = [ + * { 'user': 'fred', 'age': 48 }, + * { 'user': 'barney', 'age': 34 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'barney', 'age': 36 } + * ]; + * + * // Sort by `user` in ascending order and by `age` in descending order. + * _.orderBy(users, ['user', 'age'], ['asc', 'desc']); + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] + */ + function orderBy(collection, iteratees, orders, guard) { + if (collection == null) { + return []; + } + if (!isArray(iteratees)) { + iteratees = iteratees == null ? [] : [iteratees]; + } + orders = guard ? undefined : orders; + if (!isArray(orders)) { + orders = orders == null ? [] : [orders]; + } + return baseOrderBy(collection, iteratees, orders); + } + + /** + * Creates an array of elements split into two groups, the first of which + * contains elements `predicate` returns truthy for, the second of which + * contains elements `predicate` returns falsey for. The predicate is + * invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the array of grouped elements. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': true }, + * { 'user': 'pebbles', 'age': 1, 'active': false } + * ]; + * + * _.partition(users, function(o) { return o.active; }); + * // => objects for [['fred'], ['barney', 'pebbles']] + * + * // The `_.matches` iteratee shorthand. + * _.partition(users, { 'age': 1, 'active': false }); + * // => objects for [['pebbles'], ['barney', 'fred']] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.partition(users, ['active', false]); + * // => objects for [['barney', 'pebbles'], ['fred']] + * + * // The `_.property` iteratee shorthand. + * _.partition(users, 'active'); + * // => objects for [['fred'], ['barney', 'pebbles']] + */ + var partition = createAggregator(function(result, value, key) { + result[key ? 0 : 1].push(value); + }, function() { return [[], []]; }); + + /** + * Reduces `collection` to a value which is the accumulated result of running + * each element in `collection` thru `iteratee`, where each successive + * invocation is supplied the return value of the previous. If `accumulator` + * is not given, the first element of `collection` is used as the initial + * value. The iteratee is invoked with four arguments: + * (accumulator, value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.reduce`, `_.reduceRight`, and `_.transform`. + * + * The guarded methods are: + * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, + * and `sortBy` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduceRight + * @example + * + * _.reduce([1, 2], function(sum, n) { + * return sum + n; + * }, 0); + * // => 3 + * + * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * return result; + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) + */ + function reduce(collection, iteratee, accumulator) { + var func = isArray(collection) ? arrayReduce : baseReduce, + initAccum = arguments.length < 3; + + return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach); + } + + /** + * This method is like `_.reduce` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduce + * @example + * + * var array = [[0, 1], [2, 3], [4, 5]]; + * + * _.reduceRight(array, function(flattened, other) { + * return flattened.concat(other); + * }, []); + * // => [4, 5, 2, 3, 0, 1] + */ + function reduceRight(collection, iteratee, accumulator) { + var func = isArray(collection) ? arrayReduceRight : baseReduce, + initAccum = arguments.length < 3; + + return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight); + } + + /** + * The opposite of `_.filter`; this method returns the elements of `collection` + * that `predicate` does **not** return truthy for. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.filter + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': true } + * ]; + * + * _.reject(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.reject(users, { 'age': 40, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.reject(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.reject(users, 'active'); + * // => objects for ['barney'] + */ + function reject(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, negate(getIteratee(predicate, 3))); + } + + /** + * Gets a random element from `collection`. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Collection + * @param {Array|Object} collection The collection to sample. + * @returns {*} Returns the random element. + * @example + * + * _.sample([1, 2, 3, 4]); + * // => 2 + */ + function sample(collection) { + var func = isArray(collection) ? arraySample : baseSample; + return func(collection); + } + + /** + * Gets `n` random elements at unique keys from `collection` up to the + * size of `collection`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to sample. + * @param {number} [n=1] The number of elements to sample. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the random elements. + * @example + * + * _.sampleSize([1, 2, 3], 2); + * // => [3, 1] + * + * _.sampleSize([1, 2, 3], 4); + * // => [2, 3, 1] + */ + function sampleSize(collection, n, guard) { + if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) { + n = 1; + } else { + n = toInteger(n); + } + var func = isArray(collection) ? arraySampleSize : baseSampleSize; + return func(collection, n); + } + + /** + * Creates an array of shuffled values, using a version of the + * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to shuffle. + * @returns {Array} Returns the new shuffled array. + * @example + * + * _.shuffle([1, 2, 3, 4]); + * // => [4, 1, 3, 2] + */ + function shuffle(collection) { + var func = isArray(collection) ? arrayShuffle : baseShuffle; + return func(collection); + } + + /** + * Gets the size of `collection` by returning its length for array-like + * values or the number of own enumerable string keyed properties for objects. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @returns {number} Returns the collection size. + * @example + * + * _.size([1, 2, 3]); + * // => 3 + * + * _.size({ 'a': 1, 'b': 2 }); + * // => 2 + * + * _.size('pebbles'); + * // => 7 + */ + function size(collection) { + if (collection == null) { + return 0; + } + if (isArrayLike(collection)) { + return isString(collection) ? stringSize(collection) : collection.length; + } + var tag = getTag(collection); + if (tag == mapTag || tag == setTag) { + return collection.size; + } + return baseKeys(collection).length; + } + + /** + * Checks if `predicate` returns truthy for **any** element of `collection`. + * Iteration is stopped once `predicate` returns truthy. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + * @example + * + * _.some([null, 0, 'yes', false], Boolean); + * // => true + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.some(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.some(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.some(users, 'active'); + * // => true + */ + function some(collection, predicate, guard) { + var func = isArray(collection) ? arraySome : baseSome; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined; + } + return func(collection, getIteratee(predicate, 3)); + } + + /** + * Creates an array of elements, sorted in ascending order by the results of + * running each element in a collection thru each iteratee. This method + * performs a stable sort, that is, it preserves the original sort order of + * equal elements. The iteratees are invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {...(Function|Function[])} [iteratees=[_.identity]] + * The iteratees to sort by. + * @returns {Array} Returns the new sorted array. + * @example + * + * var users = [ + * { 'user': 'fred', 'age': 48 }, + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'barney', 'age': 34 } + * ]; + * + * _.sortBy(users, [function(o) { return o.user; }]); + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] + * + * _.sortBy(users, ['user', 'age']); + * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]] + */ + var sortBy = baseRest(function(collection, iteratees) { + if (collection == null) { + return []; + } + var length = iteratees.length; + if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { + iteratees = []; + } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { + iteratees = [iteratees[0]]; + } + return baseOrderBy(collection, baseFlatten(iteratees, 1), []); + }); + + /*------------------------------------------------------------------------*/ + + /** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ + var now = ctxNow || function() { + return root.Date.now(); + }; + + /*------------------------------------------------------------------------*/ + + /** + * The opposite of `_.before`; this method creates a function that invokes + * `func` once it's called `n` or more times. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {number} n The number of calls before `func` is invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var saves = ['profile', 'settings']; + * + * var done = _.after(saves.length, function() { + * console.log('done saving!'); + * }); + * + * _.forEach(saves, function(type) { + * asyncSave({ 'type': type, 'complete': done }); + * }); + * // => Logs 'done saving!' after the two async saves have completed. + */ + function after(n, func) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n < 1) { + return func.apply(this, arguments); + } + }; + } + + /** + * Creates a function that invokes `func`, with up to `n` arguments, + * ignoring any additional arguments. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to cap arguments for. + * @param {number} [n=func.length] The arity cap. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new capped function. + * @example + * + * _.map(['6', '8', '10'], _.ary(parseInt, 1)); + * // => [6, 8, 10] + */ + function ary(func, n, guard) { + n = guard ? undefined : n; + n = (func && n == null) ? func.length : n; + return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n); + } + + /** + * Creates a function that invokes `func`, with the `this` binding and arguments + * of the created function, while it's called less than `n` times. Subsequent + * calls to the created function return the result of the last `func` invocation. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {number} n The number of calls at which `func` is no longer invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * jQuery(element).on('click', _.before(5, addContactToList)); + * // => Allows adding up to 4 contacts to the list. + */ + function before(n, func) { + var result; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n > 0) { + result = func.apply(this, arguments); + } + if (n <= 1) { + func = undefined; + } + return result; + }; + } + + /** + * Creates a function that invokes `func` with the `this` binding of `thisArg` + * and `partials` prepended to the arguments it receives. + * + * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for partially applied arguments. + * + * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" + * property of bound functions. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * function greet(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * + * var object = { 'user': 'fred' }; + * + * var bound = _.bind(greet, object, 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * // Bound with placeholders. + * var bound = _.bind(greet, object, _, '!'); + * bound('hi'); + * // => 'hi fred!' + */ + var bind = baseRest(function(func, thisArg, partials) { + var bitmask = WRAP_BIND_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bind)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(func, bitmask, thisArg, partials, holders); + }); + + /** + * Creates a function that invokes the method at `object[key]` with `partials` + * prepended to the arguments it receives. + * + * This method differs from `_.bind` by allowing bound functions to reference + * methods that may be redefined or don't yet exist. See + * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) + * for more details. + * + * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for partially applied arguments. + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Function + * @param {Object} object The object to invoke the method on. + * @param {string} key The key of the method. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * var object = { + * 'user': 'fred', + * 'greet': function(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * }; + * + * var bound = _.bindKey(object, 'greet', 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * object.greet = function(greeting, punctuation) { + * return greeting + 'ya ' + this.user + punctuation; + * }; + * + * bound('!'); + * // => 'hiya fred!' + * + * // Bound with placeholders. + * var bound = _.bindKey(object, 'greet', _, '!'); + * bound('hi'); + * // => 'hiya fred!' + */ + var bindKey = baseRest(function(object, key, partials) { + var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bindKey)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(key, bitmask, object, partials, holders); + }); + + /** + * Creates a function that accepts arguments of `func` and either invokes + * `func` returning its result, if at least `arity` number of arguments have + * been provided, or returns a function that accepts the remaining `func` + * arguments, and so on. The arity of `func` may be specified if `func.length` + * is not sufficient. + * + * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for provided arguments. + * + * **Note:** This method doesn't set the "length" property of curried functions. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Function + * @param {Function} func The function to curry. + * @param {number} [arity=func.length] The arity of `func`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new curried function. + * @example + * + * var abc = function(a, b, c) { + * return [a, b, c]; + * }; + * + * var curried = _.curry(abc); + * + * curried(1)(2)(3); + * // => [1, 2, 3] + * + * curried(1, 2)(3); + * // => [1, 2, 3] + * + * curried(1, 2, 3); + * // => [1, 2, 3] + * + * // Curried with placeholders. + * curried(1)(_, 3)(2); + * // => [1, 2, 3] + */ + function curry(func, arity, guard) { + arity = guard ? undefined : arity; + var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity); + result.placeholder = curry.placeholder; + return result; + } + + /** + * This method is like `_.curry` except that arguments are applied to `func` + * in the manner of `_.partialRight` instead of `_.partial`. + * + * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for provided arguments. + * + * **Note:** This method doesn't set the "length" property of curried functions. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to curry. + * @param {number} [arity=func.length] The arity of `func`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new curried function. + * @example + * + * var abc = function(a, b, c) { + * return [a, b, c]; + * }; + * + * var curried = _.curryRight(abc); + * + * curried(3)(2)(1); + * // => [1, 2, 3] + * + * curried(2, 3)(1); + * // => [1, 2, 3] + * + * curried(1, 2, 3); + * // => [1, 2, 3] + * + * // Curried with placeholders. + * curried(3)(1, _)(2); + * // => [1, 2, 3] + */ + function curryRight(func, arity, guard) { + arity = guard ? undefined : arity; + var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity); + result.placeholder = curryRight.placeholder; + return result; + } + + /** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ + function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + + return maxing + ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now()); + } + + function debounced() { + var time = now(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + + /** + * Defers invoking the `func` until the current call stack has cleared. Any + * additional arguments are provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to defer. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.defer(function(text) { + * console.log(text); + * }, 'deferred'); + * // => Logs 'deferred' after one millisecond. + */ + var defer = baseRest(function(func, args) { + return baseDelay(func, 1, args); + }); + + /** + * Invokes `func` after `wait` milliseconds. Any additional arguments are + * provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.delay(function(text) { + * console.log(text); + * }, 1000, 'later'); + * // => Logs 'later' after one second. + */ + var delay = baseRest(function(func, wait, args) { + return baseDelay(func, toNumber(wait) || 0, args); + }); + + /** + * Creates a function that invokes `func` with arguments reversed. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to flip arguments for. + * @returns {Function} Returns the new flipped function. + * @example + * + * var flipped = _.flip(function() { + * return _.toArray(arguments); + * }); + * + * flipped('a', 'b', 'c', 'd'); + * // => ['d', 'c', 'b', 'a'] + */ + function flip(func) { + return createWrap(func, WRAP_FLIP_FLAG); + } + + /** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ + function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; + } + + // Expose `MapCache`. + memoize.Cache = MapCache; + + /** + * Creates a function that negates the result of the predicate `func`. The + * `func` predicate is invoked with the `this` binding and arguments of the + * created function. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} predicate The predicate to negate. + * @returns {Function} Returns the new negated function. + * @example + * + * function isEven(n) { + * return n % 2 == 0; + * } + * + * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); + * // => [1, 3, 5] + */ + function negate(predicate) { + if (typeof predicate != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return function() { + var args = arguments; + switch (args.length) { + case 0: return !predicate.call(this); + case 1: return !predicate.call(this, args[0]); + case 2: return !predicate.call(this, args[0], args[1]); + case 3: return !predicate.call(this, args[0], args[1], args[2]); + } + return !predicate.apply(this, args); + }; + } + + /** + * Creates a function that is restricted to invoking `func` once. Repeat calls + * to the function return the value of the first invocation. The `func` is + * invoked with the `this` binding and arguments of the created function. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var initialize = _.once(createApplication); + * initialize(); + * initialize(); + * // => `createApplication` is invoked once + */ + function once(func) { + return before(2, func); + } + + /** + * Creates a function that invokes `func` with its arguments transformed. + * + * @static + * @since 4.0.0 + * @memberOf _ + * @category Function + * @param {Function} func The function to wrap. + * @param {...(Function|Function[])} [transforms=[_.identity]] + * The argument transforms. + * @returns {Function} Returns the new function. + * @example + * + * function doubled(n) { + * return n * 2; + * } + * + * function square(n) { + * return n * n; + * } + * + * var func = _.overArgs(function(x, y) { + * return [x, y]; + * }, [square, doubled]); + * + * func(9, 3); + * // => [81, 6] + * + * func(10, 5); + * // => [100, 10] + */ + var overArgs = castRest(function(func, transforms) { + transforms = (transforms.length == 1 && isArray(transforms[0])) + ? arrayMap(transforms[0], baseUnary(getIteratee())) + : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); + + var funcsLength = transforms.length; + return baseRest(function(args) { + var index = -1, + length = nativeMin(args.length, funcsLength); + + while (++index < length) { + args[index] = transforms[index].call(this, args[index]); + } + return apply(func, this, args); + }); + }); + + /** + * Creates a function that invokes `func` with `partials` prepended to the + * arguments it receives. This method is like `_.bind` except it does **not** + * alter the `this` binding. + * + * The `_.partial.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for partially applied arguments. + * + * **Note:** This method doesn't set the "length" property of partially + * applied functions. + * + * @static + * @memberOf _ + * @since 0.2.0 + * @category Function + * @param {Function} func The function to partially apply arguments to. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new partially applied function. + * @example + * + * function greet(greeting, name) { + * return greeting + ' ' + name; + * } + * + * var sayHelloTo = _.partial(greet, 'hello'); + * sayHelloTo('fred'); + * // => 'hello fred' + * + * // Partially applied with placeholders. + * var greetFred = _.partial(greet, _, 'fred'); + * greetFred('hi'); + * // => 'hi fred' + */ + var partial = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partial)); + return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders); + }); + + /** + * This method is like `_.partial` except that partially applied arguments + * are appended to the arguments it receives. + * + * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for partially applied arguments. + * + * **Note:** This method doesn't set the "length" property of partially + * applied functions. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Function + * @param {Function} func The function to partially apply arguments to. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new partially applied function. + * @example + * + * function greet(greeting, name) { + * return greeting + ' ' + name; + * } + * + * var greetFred = _.partialRight(greet, 'fred'); + * greetFred('hi'); + * // => 'hi fred' + * + * // Partially applied with placeholders. + * var sayHelloTo = _.partialRight(greet, 'hello', _); + * sayHelloTo('fred'); + * // => 'hello fred' + */ + var partialRight = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partialRight)); + return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders); + }); + + /** + * Creates a function that invokes `func` with arguments arranged according + * to the specified `indexes` where the argument value at the first index is + * provided as the first argument, the argument value at the second index is + * provided as the second argument, and so on. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to rearrange arguments for. + * @param {...(number|number[])} indexes The arranged argument indexes. + * @returns {Function} Returns the new function. + * @example + * + * var rearged = _.rearg(function(a, b, c) { + * return [a, b, c]; + * }, [2, 0, 1]); + * + * rearged('b', 'c', 'a') + * // => ['a', 'b', 'c'] + */ + var rearg = flatRest(function(func, indexes) { + return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes); + }); + + /** + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as + * an array. + * + * **Note:** This method is based on the + * [rest parameter](https://mdn.io/rest_parameters). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.rest(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); + * + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' + */ + function rest(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = start === undefined ? start : toInteger(start); + return baseRest(func, start); + } + + /** + * Creates a function that invokes `func` with the `this` binding of the + * create function and an array of arguments much like + * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply). + * + * **Note:** This method is based on the + * [spread operator](https://mdn.io/spread_operator). + * + * @static + * @memberOf _ + * @since 3.2.0 + * @category Function + * @param {Function} func The function to spread arguments over. + * @param {number} [start=0] The start position of the spread. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.spread(function(who, what) { + * return who + ' says ' + what; + * }); + * + * say(['fred', 'hello']); + * // => 'fred says hello' + * + * var numbers = Promise.all([ + * Promise.resolve(40), + * Promise.resolve(36) + * ]); + * + * numbers.then(_.spread(function(x, y) { + * return x + y; + * })); + * // => a Promise of 76 + */ + function spread(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = start == null ? 0 : nativeMax(toInteger(start), 0); + return baseRest(function(args) { + var array = args[start], + otherArgs = castSlice(args, 0, start); + + if (array) { + arrayPush(otherArgs, array); + } + return apply(func, this, otherArgs); + }); + } + + /** + * Creates a throttled function that only invokes `func` at most once per + * every `wait` milliseconds. The throttled function comes with a `cancel` + * method to cancel delayed `func` invocations and a `flush` method to + * immediately invoke them. Provide `options` to indicate whether `func` + * should be invoked on the leading and/or trailing edge of the `wait` + * timeout. The `func` is invoked with the last arguments provided to the + * throttled function. Subsequent calls to the throttled function return the + * result of the last `func` invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the throttled function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.throttle` and `_.debounce`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to throttle. + * @param {number} [wait=0] The number of milliseconds to throttle invocations to. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=true] + * Specify invoking on the leading edge of the timeout. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new throttled function. + * @example + * + * // Avoid excessively updating the position while scrolling. + * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); + * + * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. + * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); + * jQuery(element).on('click', throttled); + * + * // Cancel the trailing throttled invocation. + * jQuery(window).on('popstate', throttled.cancel); + */ + function throttle(func, wait, options) { + var leading = true, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (isObject(options)) { + leading = 'leading' in options ? !!options.leading : leading; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + 'leading': leading, + 'maxWait': wait, + 'trailing': trailing + }); + } + + /** + * Creates a function that accepts up to one argument, ignoring any + * additional arguments. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + * @example + * + * _.map(['6', '8', '10'], _.unary(parseInt)); + * // => [6, 8, 10] + */ + function unary(func) { + return ary(func, 1); + } + + /** + * Creates a function that provides `value` to `wrapper` as its first + * argument. Any additional arguments provided to the function are appended + * to those provided to the `wrapper`. The wrapper is invoked with the `this` + * binding of the created function. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {*} value The value to wrap. + * @param {Function} [wrapper=identity] The wrapper function. + * @returns {Function} Returns the new function. + * @example + * + * var p = _.wrap(_.escape, function(func, text) { + * return '

' + func(text) + '

'; + * }); + * + * p('fred, barney, & pebbles'); + * // => '

fred, barney, & pebbles

' + */ + function wrap(value, wrapper) { + return partial(castFunction(wrapper), value); + } + + /*------------------------------------------------------------------------*/ + + /** + * Casts `value` as an array if it's not one. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Lang + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast array. + * @example + * + * _.castArray(1); + * // => [1] + * + * _.castArray({ 'a': 1 }); + * // => [{ 'a': 1 }] + * + * _.castArray('abc'); + * // => ['abc'] + * + * _.castArray(null); + * // => [null] + * + * _.castArray(undefined); + * // => [undefined] + * + * _.castArray(); + * // => [] + * + * var array = [1, 2, 3]; + * console.log(_.castArray(array) === array); + * // => true + */ + function castArray() { + if (!arguments.length) { + return []; + } + var value = arguments[0]; + return isArray(value) ? value : [value]; + } + + /** + * Creates a shallow clone of `value`. + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) + * and supports cloning arrays, array buffers, booleans, date objects, maps, + * numbers, `Object` objects, regexes, sets, strings, symbols, and typed + * arrays. The own enumerable properties of `arguments` objects are cloned + * as plain objects. An empty object is returned for uncloneable values such + * as error objects, functions, DOM nodes, and WeakMaps. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to clone. + * @returns {*} Returns the cloned value. + * @see _.cloneDeep + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var shallow = _.clone(objects); + * console.log(shallow[0] === objects[0]); + * // => true + */ + function clone(value) { + return baseClone(value, CLONE_SYMBOLS_FLAG); + } + + /** + * This method is like `_.clone` except that it accepts `customizer` which + * is invoked to produce the cloned value. If `customizer` returns `undefined`, + * cloning is handled by the method instead. The `customizer` is invoked with + * up to four arguments; (value [, index|key, object, stack]). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to clone. + * @param {Function} [customizer] The function to customize cloning. + * @returns {*} Returns the cloned value. + * @see _.cloneDeepWith + * @example + * + * function customizer(value) { + * if (_.isElement(value)) { + * return value.cloneNode(false); + * } + * } + * + * var el = _.cloneWith(document.body, customizer); + * + * console.log(el === document.body); + * // => false + * console.log(el.nodeName); + * // => 'BODY' + * console.log(el.childNodes.length); + * // => 0 + */ + function cloneWith(value, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); + } + + /** + * This method is like `_.clone` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @returns {*} Returns the deep cloned value. + * @see _.clone + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); + * // => false + */ + function cloneDeep(value) { + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); + } + + /** + * This method is like `_.cloneWith` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @param {Function} [customizer] The function to customize cloning. + * @returns {*} Returns the deep cloned value. + * @see _.cloneWith + * @example + * + * function customizer(value) { + * if (_.isElement(value)) { + * return value.cloneNode(true); + * } + * } + * + * var el = _.cloneDeepWith(document.body, customizer); + * + * console.log(el === document.body); + * // => false + * console.log(el.nodeName); + * // => 'BODY' + * console.log(el.childNodes.length); + * // => 20 + */ + function cloneDeepWith(value, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); + } + + /** + * Checks if `object` conforms to `source` by invoking the predicate + * properties of `source` with the corresponding property values of `object`. + * + * **Note:** This method is equivalent to `_.conforms` when `source` is + * partially applied. + * + * @static + * @memberOf _ + * @since 4.14.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property predicates to conform to. + * @returns {boolean} Returns `true` if `object` conforms, else `false`. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * + * _.conformsTo(object, { 'b': function(n) { return n > 1; } }); + * // => true + * + * _.conformsTo(object, { 'b': function(n) { return n > 2; } }); + * // => false + */ + function conformsTo(object, source) { + return source == null || baseConformsTo(object, source, keys(source)); + } + + /** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + function eq(value, other) { + return value === other || (value !== value && other !== other); + } + + /** + * Checks if `value` is greater than `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than `other`, + * else `false`. + * @see _.lt + * @example + * + * _.gt(3, 1); + * // => true + * + * _.gt(3, 3); + * // => false + * + * _.gt(1, 3); + * // => false + */ + var gt = createRelationalOperation(baseGt); + + /** + * Checks if `value` is greater than or equal to `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than or equal to + * `other`, else `false`. + * @see _.lte + * @example + * + * _.gte(3, 1); + * // => true + * + * _.gte(3, 3); + * // => true + * + * _.gte(1, 3); + * // => false + */ + var gte = createRelationalOperation(function(value, other) { + return value >= other; + }); + + /** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); + }; + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; + + /** + * Checks if `value` is classified as an `ArrayBuffer` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. + * @example + * + * _.isArrayBuffer(new ArrayBuffer(2)); + * // => true + * + * _.isArrayBuffer(new Array(2)); + * // => false + */ + var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; + + /** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + + /** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + + /** + * Checks if `value` is classified as a boolean primitive or object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. + * @example + * + * _.isBoolean(false); + * // => true + * + * _.isBoolean(null); + * // => false + */ + function isBoolean(value) { + return value === true || value === false || + (isObjectLike(value) && baseGetTag(value) == boolTag); + } + + /** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ + var isBuffer = nativeIsBuffer || stubFalse; + + /** + * Checks if `value` is classified as a `Date` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + * @example + * + * _.isDate(new Date); + * // => true + * + * _.isDate('Mon April 23 2012'); + * // => false + */ + var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; + + /** + * Checks if `value` is likely a DOM element. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. + * @example + * + * _.isElement(document.body); + * // => true + * + * _.isElement(''); + * // => false + */ + function isElement(value) { + return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); + } + + /** + * Checks if `value` is an empty object, collection, map, or set. + * + * Objects are considered empty if they have no own enumerable string keyed + * properties. + * + * Array-like values such as `arguments` objects, arrays, buffers, strings, or + * jQuery-like collections are considered empty if they have a `length` of `0`. + * Similarly, maps and sets are considered empty if they have a `size` of `0`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */ + function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && + (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || + isBuffer(value) || isTypedArray(value) || isArguments(value))) { + return !value.length; + } + var tag = getTag(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + if (isPrototype(value)) { + return !baseKeys(value).length; + } + for (var key in value) { + if (hasOwnProperty.call(value, key)) { + return false; + } + } + return true; + } + + /** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ + function isEqual(value, other) { + return baseIsEqual(value, other); + } + + /** + * This method is like `_.isEqual` except that it accepts `customizer` which + * is invoked to compare values. If `customizer` returns `undefined`, comparisons + * are handled by the method instead. The `customizer` is invoked with up to + * six arguments: (objValue, othValue [, index|key, object, other, stack]). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * function isGreeting(value) { + * return /^h(?:i|ello)$/.test(value); + * } + * + * function customizer(objValue, othValue) { + * if (isGreeting(objValue) && isGreeting(othValue)) { + * return true; + * } + * } + * + * var array = ['hello', 'goodbye']; + * var other = ['hi', 'goodbye']; + * + * _.isEqualWith(array, other, customizer); + * // => true + */ + function isEqualWith(value, other, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + var result = customizer ? customizer(value, other) : undefined; + return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result; + } + + /** + * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, + * `SyntaxError`, `TypeError`, or `URIError` object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an error object, else `false`. + * @example + * + * _.isError(new Error); + * // => true + * + * _.isError(Error); + * // => false + */ + function isError(value) { + if (!isObjectLike(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == errorTag || tag == domExcTag || + (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)); + } + + /** + * Checks if `value` is a finite primitive number. + * + * **Note:** This method is based on + * [`Number.isFinite`](https://mdn.io/Number/isFinite). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. + * @example + * + * _.isFinite(3); + * // => true + * + * _.isFinite(Number.MIN_VALUE); + * // => true + * + * _.isFinite(Infinity); + * // => false + * + * _.isFinite('3'); + * // => false + */ + function isFinite(value) { + return typeof value == 'number' && nativeIsFinite(value); + } + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + + /** + * Checks if `value` is an integer. + * + * **Note:** This method is based on + * [`Number.isInteger`](https://mdn.io/Number/isInteger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an integer, else `false`. + * @example + * + * _.isInteger(3); + * // => true + * + * _.isInteger(Number.MIN_VALUE); + * // => false + * + * _.isInteger(Infinity); + * // => false + * + * _.isInteger('3'); + * // => false + */ + function isInteger(value) { + return typeof value == 'number' && value == toInteger(value); + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return value != null && typeof value == 'object'; + } + + /** + * Checks if `value` is classified as a `Map` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + * @example + * + * _.isMap(new Map); + * // => true + * + * _.isMap(new WeakMap); + * // => false + */ + var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; + + /** + * Performs a partial deep comparison between `object` and `source` to + * determine if `object` contains equivalent property values. + * + * **Note:** This method is equivalent to `_.matches` when `source` is + * partially applied. + * + * Partial comparisons will match empty array and empty object `source` + * values against any array or object value, respectively. See `_.isEqual` + * for a list of supported value comparisons. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * + * _.isMatch(object, { 'b': 2 }); + * // => true + * + * _.isMatch(object, { 'b': 1 }); + * // => false + */ + function isMatch(object, source) { + return object === source || baseIsMatch(object, source, getMatchData(source)); + } + + /** + * This method is like `_.isMatch` except that it accepts `customizer` which + * is invoked to compare values. If `customizer` returns `undefined`, comparisons + * are handled by the method instead. The `customizer` is invoked with five + * arguments: (objValue, srcValue, index|key, object, source). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @example + * + * function isGreeting(value) { + * return /^h(?:i|ello)$/.test(value); + * } + * + * function customizer(objValue, srcValue) { + * if (isGreeting(objValue) && isGreeting(srcValue)) { + * return true; + * } + * } + * + * var object = { 'greeting': 'hello' }; + * var source = { 'greeting': 'hi' }; + * + * _.isMatchWith(object, source, customizer); + * // => true + */ + function isMatchWith(object, source, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseIsMatch(object, source, getMatchData(source), customizer); + } + + /** + * Checks if `value` is `NaN`. + * + * **Note:** This method is based on + * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as + * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for + * `undefined` and other non-number values. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + * @example + * + * _.isNaN(NaN); + * // => true + * + * _.isNaN(new Number(NaN)); + * // => true + * + * isNaN(undefined); + * // => true + * + * _.isNaN(undefined); + * // => false + */ + function isNaN(value) { + // An `NaN` primitive is the only value that is not equal to itself. + // Perform the `toStringTag` check first to avoid errors with some + // ActiveX objects in IE. + return isNumber(value) && value != +value; + } + + /** + * Checks if `value` is a pristine native function. + * + * **Note:** This method can't reliably detect native functions in the presence + * of the core-js package because core-js circumvents this kind of detection. + * Despite multiple requests, the core-js maintainer has made it clear: any + * attempt to fix the detection will be obstructed. As a result, we're left + * with little choice but to throw an error. Unfortunately, this also affects + * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), + * which rely on core-js. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ + function isNative(value) { + if (isMaskable(value)) { + throw new Error(CORE_ERROR_TEXT); + } + return baseIsNative(value); + } + + /** + * Checks if `value` is `null`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `null`, else `false`. + * @example + * + * _.isNull(null); + * // => true + * + * _.isNull(void 0); + * // => false + */ + function isNull(value) { + return value === null; + } + + /** + * Checks if `value` is `null` or `undefined`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is nullish, else `false`. + * @example + * + * _.isNil(null); + * // => true + * + * _.isNil(void 0); + * // => true + * + * _.isNil(NaN); + * // => false + */ + function isNil(value) { + return value == null; + } + + /** + * Checks if `value` is classified as a `Number` primitive or object. + * + * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are + * classified as numbers, use the `_.isFinite` method. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a number, else `false`. + * @example + * + * _.isNumber(3); + * // => true + * + * _.isNumber(Number.MIN_VALUE); + * // => true + * + * _.isNumber(Infinity); + * // => true + * + * _.isNumber('3'); + * // => false + */ + function isNumber(value) { + return typeof value == 'number' || + (isObjectLike(value) && baseGetTag(value) == numberTag); + } + + /** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ + function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; + } + + /** + * Checks if `value` is classified as a `RegExp` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + * @example + * + * _.isRegExp(/abc/); + * // => true + * + * _.isRegExp('/abc/'); + * // => false + */ + var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; + + /** + * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 + * double precision number which isn't the result of a rounded unsafe integer. + * + * **Note:** This method is based on + * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`. + * @example + * + * _.isSafeInteger(3); + * // => true + * + * _.isSafeInteger(Number.MIN_VALUE); + * // => false + * + * _.isSafeInteger(Infinity); + * // => false + * + * _.isSafeInteger('3'); + * // => false + */ + function isSafeInteger(value) { + return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is classified as a `Set` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + * @example + * + * _.isSet(new Set); + * // => true + * + * _.isSet(new WeakSet); + * // => false + */ + var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; + + /** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ + function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); + } + + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); + } + + /** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ + var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + + /** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ + function isUndefined(value) { + return value === undefined; + } + + /** + * Checks if `value` is classified as a `WeakMap` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a weak map, else `false`. + * @example + * + * _.isWeakMap(new WeakMap); + * // => true + * + * _.isWeakMap(new Map); + * // => false + */ + function isWeakMap(value) { + return isObjectLike(value) && getTag(value) == weakMapTag; + } + + /** + * Checks if `value` is classified as a `WeakSet` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a weak set, else `false`. + * @example + * + * _.isWeakSet(new WeakSet); + * // => true + * + * _.isWeakSet(new Set); + * // => false + */ + function isWeakSet(value) { + return isObjectLike(value) && baseGetTag(value) == weakSetTag; + } + + /** + * Checks if `value` is less than `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than `other`, + * else `false`. + * @see _.gt + * @example + * + * _.lt(1, 3); + * // => true + * + * _.lt(3, 3); + * // => false + * + * _.lt(3, 1); + * // => false + */ + var lt = createRelationalOperation(baseLt); + + /** + * Checks if `value` is less than or equal to `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than or equal to + * `other`, else `false`. + * @see _.gte + * @example + * + * _.lte(1, 3); + * // => true + * + * _.lte(3, 3); + * // => true + * + * _.lte(3, 1); + * // => false + */ + var lte = createRelationalOperation(function(value, other) { + return value <= other; + }); + + /** + * Converts `value` to an array. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to convert. + * @returns {Array} Returns the converted array. + * @example + * + * _.toArray({ 'a': 1, 'b': 2 }); + * // => [1, 2] + * + * _.toArray('abc'); + * // => ['a', 'b', 'c'] + * + * _.toArray(1); + * // => [] + * + * _.toArray(null); + * // => [] + */ + function toArray(value) { + if (!value) { + return []; + } + if (isArrayLike(value)) { + return isString(value) ? stringToArray(value) : copyArray(value); + } + if (symIterator && value[symIterator]) { + return iteratorToArray(value[symIterator]()); + } + var tag = getTag(value), + func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values); + + return func(value); + } + + /** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = (value < 0 ? -1 : 1); + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + + /** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ + function toInteger(value) { + var result = toFinite(value), + remainder = result % 1; + + return result === result ? (remainder ? result - remainder : result) : 0; + } + + /** + * Converts `value` to an integer suitable for use as the length of an + * array-like object. + * + * **Note:** This method is based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toLength(3.2); + * // => 3 + * + * _.toLength(Number.MIN_VALUE); + * // => 0 + * + * _.toLength(Infinity); + * // => 4294967295 + * + * _.toLength('3.2'); + * // => 3 + */ + function toLength(value) { + return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; + } + + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); + } + + /** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */ + function toPlainObject(value) { + return copyObject(value, keysIn(value)); + } + + /** + * Converts `value` to a safe integer. A safe integer can be compared and + * represented correctly. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toSafeInteger(3.2); + * // => 3 + * + * _.toSafeInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toSafeInteger(Infinity); + * // => 9007199254740991 + * + * _.toSafeInteger('3.2'); + * // => 3 + */ + function toSafeInteger(value) { + return value + ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) + : (value === 0 ? value : 0); + } + + /** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString(value) { + return value == null ? '' : baseToString(value); + } + + /*------------------------------------------------------------------------*/ + + /** + * Assigns own enumerable string keyed properties of source objects to the + * destination object. Source objects are applied from left to right. + * Subsequent sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object` and is loosely based on + * [`Object.assign`](https://mdn.io/Object/assign). + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assignIn + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assign({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'c': 3 } + */ + var assign = createAssigner(function(object, source) { + if (isPrototype(source) || isArrayLike(source)) { + copyObject(source, keys(source), object); + return; + } + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + assignValue(object, key, source[key]); + } + } + }); + + /** + * This method is like `_.assign` except that it iterates over own and + * inherited source properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extend + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assign + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assignIn({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } + */ + var assignIn = createAssigner(function(object, source) { + copyObject(source, keysIn(source), object); + }); + + /** + * This method is like `_.assignIn` except that it accepts `customizer` + * which is invoked to produce the assigned values. If `customizer` returns + * `undefined`, assignment is handled by the method instead. The `customizer` + * is invoked with five arguments: (objValue, srcValue, key, object, source). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extendWith + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @see _.assignWith + * @example + * + * function customizer(objValue, srcValue) { + * return _.isUndefined(objValue) ? srcValue : objValue; + * } + * + * var defaults = _.partialRight(_.assignInWith, customizer); + * + * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ + var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keysIn(source), object, customizer); + }); + + /** + * This method is like `_.assign` except that it accepts `customizer` + * which is invoked to produce the assigned values. If `customizer` returns + * `undefined`, assignment is handled by the method instead. The `customizer` + * is invoked with five arguments: (objValue, srcValue, key, object, source). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @see _.assignInWith + * @example + * + * function customizer(objValue, srcValue) { + * return _.isUndefined(objValue) ? srcValue : objValue; + * } + * + * var defaults = _.partialRight(_.assignWith, customizer); + * + * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ + var assignWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keys(source), object, customizer); + }); + + /** + * Creates an array of values corresponding to `paths` of `object`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Array} Returns the picked values. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; + * + * _.at(object, ['a[0].b.c', 'a[1]']); + * // => [3, 4] + */ + var at = flatRest(baseAt); + + /** + * Creates an object that inherits from the `prototype` object. If a + * `properties` object is given, its own enumerable string keyed properties + * are assigned to the created object. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Object + * @param {Object} prototype The object to inherit from. + * @param {Object} [properties] The properties to assign to the object. + * @returns {Object} Returns the new object. + * @example + * + * function Shape() { + * this.x = 0; + * this.y = 0; + * } + * + * function Circle() { + * Shape.call(this); + * } + * + * Circle.prototype = _.create(Shape.prototype, { + * 'constructor': Circle + * }); + * + * var circle = new Circle; + * circle instanceof Circle; + * // => true + * + * circle instanceof Shape; + * // => true + */ + function create(prototype, properties) { + var result = baseCreate(prototype); + return properties == null ? result : baseAssign(result, properties); + } + + /** + * Assigns own and inherited enumerable string keyed properties of source + * objects to the destination object for all destination properties that + * resolve to `undefined`. Source objects are applied from left to right. + * Once a property is set, additional values of the same property are ignored. + * + * **Note:** This method mutates `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaultsDeep + * @example + * + * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ + var defaults = baseRest(function(object, sources) { + object = Object(object); + + var index = -1; + var length = sources.length; + var guard = length > 2 ? sources[2] : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + length = 1; + } + + while (++index < length) { + var source = sources[index]; + var props = keysIn(source); + var propsIndex = -1; + var propsLength = props.length; + + while (++propsIndex < propsLength) { + var key = props[propsIndex]; + var value = object[key]; + + if (value === undefined || + (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { + object[key] = source[key]; + } + } + } + + return object; + }); + + /** + * This method is like `_.defaults` except that it recursively assigns + * default properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaults + * @example + * + * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } }); + * // => { 'a': { 'b': 2, 'c': 3 } } + */ + var defaultsDeep = baseRest(function(args) { + args.push(undefined, customDefaultsMerge); + return apply(mergeWith, undefined, args); + }); + + /** + * This method is like `_.find` except that it returns the key of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Object + * @param {Object} object The object to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {string|undefined} Returns the key of the matched element, + * else `undefined`. + * @example + * + * var users = { + * 'barney': { 'age': 36, 'active': true }, + * 'fred': { 'age': 40, 'active': false }, + * 'pebbles': { 'age': 1, 'active': true } + * }; + * + * _.findKey(users, function(o) { return o.age < 40; }); + * // => 'barney' (iteration order is not guaranteed) + * + * // The `_.matches` iteratee shorthand. + * _.findKey(users, { 'age': 1, 'active': true }); + * // => 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findKey(users, ['active', false]); + * // => 'fred' + * + * // The `_.property` iteratee shorthand. + * _.findKey(users, 'active'); + * // => 'barney' + */ + function findKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); + } + + /** + * This method is like `_.findKey` except that it iterates over elements of + * a collection in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {string|undefined} Returns the key of the matched element, + * else `undefined`. + * @example + * + * var users = { + * 'barney': { 'age': 36, 'active': true }, + * 'fred': { 'age': 40, 'active': false }, + * 'pebbles': { 'age': 1, 'active': true } + * }; + * + * _.findLastKey(users, function(o) { return o.age < 40; }); + * // => returns 'pebbles' assuming `_.findKey` returns 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.findLastKey(users, { 'age': 36, 'active': true }); + * // => 'barney' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastKey(users, ['active', false]); + * // => 'fred' + * + * // The `_.property` iteratee shorthand. + * _.findLastKey(users, 'active'); + * // => 'pebbles' + */ + function findLastKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); + } + + /** + * Iterates over own and inherited enumerable string keyed properties of an + * object and invokes `iteratee` for each property. The iteratee is invoked + * with three arguments: (value, key, object). Iteratee functions may exit + * iteration early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 0.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forInRight + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forIn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). + */ + function forIn(object, iteratee) { + return object == null + ? object + : baseFor(object, getIteratee(iteratee, 3), keysIn); + } + + /** + * This method is like `_.forIn` except that it iterates over properties of + * `object` in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forIn + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forInRight(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. + */ + function forInRight(object, iteratee) { + return object == null + ? object + : baseForRight(object, getIteratee(iteratee, 3), keysIn); + } + + /** + * Iterates over own enumerable string keyed properties of an object and + * invokes `iteratee` for each property. The iteratee is invoked with three + * arguments: (value, key, object). Iteratee functions may exit iteration + * early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 0.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forOwnRight + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ + function forOwn(object, iteratee) { + return object && baseForOwn(object, getIteratee(iteratee, 3)); + } + + /** + * This method is like `_.forOwn` except that it iterates over properties of + * `object` in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forOwn + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwnRight(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. + */ + function forOwnRight(object, iteratee) { + return object && baseForOwnRight(object, getIteratee(iteratee, 3)); + } + + /** + * Creates an array of function property names from own enumerable properties + * of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to inspect. + * @returns {Array} Returns the function names. + * @see _.functionsIn + * @example + * + * function Foo() { + * this.a = _.constant('a'); + * this.b = _.constant('b'); + * } + * + * Foo.prototype.c = _.constant('c'); + * + * _.functions(new Foo); + * // => ['a', 'b'] + */ + function functions(object) { + return object == null ? [] : baseFunctions(object, keys(object)); + } + + /** + * Creates an array of function property names from own and inherited + * enumerable properties of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to inspect. + * @returns {Array} Returns the function names. + * @see _.functions + * @example + * + * function Foo() { + * this.a = _.constant('a'); + * this.b = _.constant('b'); + * } + * + * Foo.prototype.c = _.constant('c'); + * + * _.functionsIn(new Foo); + * // => ['a', 'b', 'c'] + */ + function functionsIn(object) { + return object == null ? [] : baseFunctions(object, keysIn(object)); + } + + /** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ + function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; + } + + /** + * Checks if `path` is a direct property of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = { 'a': { 'b': 2 } }; + * var other = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.has(object, 'a'); + * // => true + * + * _.has(object, 'a.b'); + * // => true + * + * _.has(object, ['a', 'b']); + * // => true + * + * _.has(other, 'a'); + * // => false + */ + function has(object, path) { + return object != null && hasPath(object, path, baseHas); + } + + /** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ + function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); + } + + /** + * Creates an object composed of the inverted keys and values of `object`. + * If `object` contains duplicate values, subsequent values overwrite + * property assignments of previous values. + * + * @static + * @memberOf _ + * @since 0.7.0 + * @category Object + * @param {Object} object The object to invert. + * @returns {Object} Returns the new inverted object. + * @example + * + * var object = { 'a': 1, 'b': 2, 'c': 1 }; + * + * _.invert(object); + * // => { '1': 'c', '2': 'b' } + */ + var invert = createInverter(function(result, value, key) { + if (value != null && + typeof value.toString != 'function') { + value = nativeObjectToString.call(value); + } + + result[value] = key; + }, constant(identity)); + + /** + * This method is like `_.invert` except that the inverted object is generated + * from the results of running each element of `object` thru `iteratee`. The + * corresponding inverted value of each inverted key is an array of keys + * responsible for generating the inverted value. The iteratee is invoked + * with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.1.0 + * @category Object + * @param {Object} object The object to invert. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Object} Returns the new inverted object. + * @example + * + * var object = { 'a': 1, 'b': 2, 'c': 1 }; + * + * _.invertBy(object); + * // => { '1': ['a', 'c'], '2': ['b'] } + * + * _.invertBy(object, function(value) { + * return 'group' + value; + * }); + * // => { 'group1': ['a', 'c'], 'group2': ['b'] } + */ + var invertBy = createInverter(function(result, value, key) { + if (value != null && + typeof value.toString != 'function') { + value = nativeObjectToString.call(value); + } + + if (hasOwnProperty.call(result, value)) { + result[value].push(key); + } else { + result[value] = [key]; + } + }, getIteratee); + + /** + * Invokes the method at `path` of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the method to invoke. + * @param {...*} [args] The arguments to invoke the method with. + * @returns {*} Returns the result of the invoked method. + * @example + * + * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; + * + * _.invoke(object, 'a[0].b.c.slice', 1, 3); + * // => [2, 3] + */ + var invoke = baseRest(baseInvoke); + + /** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + + /** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ + function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); + } + + /** + * The opposite of `_.mapValues`; this method creates an object with the + * same values as `object` and keys generated by running each own enumerable + * string keyed property of `object` thru `iteratee`. The iteratee is invoked + * with three arguments: (value, key, object). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns the new mapped object. + * @see _.mapValues + * @example + * + * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { + * return key + value; + * }); + * // => { 'a1': 1, 'b2': 2 } + */ + function mapKeys(object, iteratee) { + var result = {}; + iteratee = getIteratee(iteratee, 3); + + baseForOwn(object, function(value, key, object) { + baseAssignValue(result, iteratee(value, key, object), value); + }); + return result; + } + + /** + * Creates an object with the same keys as `object` and values generated + * by running each own enumerable string keyed property of `object` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, key, object). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns the new mapped object. + * @see _.mapKeys + * @example + * + * var users = { + * 'fred': { 'user': 'fred', 'age': 40 }, + * 'pebbles': { 'user': 'pebbles', 'age': 1 } + * }; + * + * _.mapValues(users, function(o) { return o.age; }); + * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) + * + * // The `_.property` iteratee shorthand. + * _.mapValues(users, 'age'); + * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) + */ + function mapValues(object, iteratee) { + var result = {}; + iteratee = getIteratee(iteratee, 3); + + baseForOwn(object, function(value, key, object) { + baseAssignValue(result, key, iteratee(value, key, object)); + }); + return result; + } + + /** + * This method is like `_.assign` except that it recursively merges own and + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @example + * + * var object = { + * 'a': [{ 'b': 2 }, { 'd': 4 }] + * }; + * + * var other = { + * 'a': [{ 'c': 3 }, { 'e': 5 }] + * }; + * + * _.merge(object, other); + * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } + */ + var merge = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); + }); + + /** + * This method is like `_.merge` except that it accepts `customizer` which + * is invoked to produce the merged values of the destination and source + * properties. If `customizer` returns `undefined`, merging is handled by the + * method instead. The `customizer` is invoked with six arguments: + * (objValue, srcValue, key, object, source, stack). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} customizer The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * function customizer(objValue, srcValue) { + * if (_.isArray(objValue)) { + * return objValue.concat(srcValue); + * } + * } + * + * var object = { 'a': [1], 'b': [2] }; + * var other = { 'a': [3], 'b': [4] }; + * + * _.mergeWith(object, other, customizer); + * // => { 'a': [1, 3], 'b': [2, 4] } + */ + var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { + baseMerge(object, source, srcIndex, customizer); + }); + + /** + * The opposite of `_.pick`; this method creates an object composed of the + * own and inherited enumerable property paths of `object` that are not omitted. + * + * **Note:** This method is considerably slower than `_.pick`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to omit. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omit(object, ['a', 'c']); + * // => { 'b': '2' } + */ + var omit = flatRest(function(object, paths) { + var result = {}; + if (object == null) { + return result; + } + var isDeep = false; + paths = arrayMap(paths, function(path) { + path = castPath(path, object); + isDeep || (isDeep = path.length > 1); + return path; + }); + copyObject(object, getAllKeysIn(object), result); + if (isDeep) { + result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); + } + var length = paths.length; + while (length--) { + baseUnset(result, paths[length]); + } + return result; + }); + + /** + * The opposite of `_.pickBy`; this method creates an object composed of + * the own and inherited enumerable string keyed properties of `object` that + * `predicate` doesn't return truthy for. The predicate is invoked with two + * arguments: (value, key). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The source object. + * @param {Function} [predicate=_.identity] The function invoked per property. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omitBy(object, _.isNumber); + * // => { 'b': '2' } + */ + function omitBy(object, predicate) { + return pickBy(object, negate(getIteratee(predicate))); + } + + /** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ + var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); + }); + + /** + * Creates an object composed of the `object` properties `predicate` returns + * truthy for. The predicate is invoked with two arguments: (value, key). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The source object. + * @param {Function} [predicate=_.identity] The function invoked per property. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pickBy(object, _.isNumber); + * // => { 'a': 1, 'c': 3 } + */ + function pickBy(object, predicate) { + if (object == null) { + return {}; + } + var props = arrayMap(getAllKeysIn(object), function(prop) { + return [prop]; + }); + predicate = getIteratee(predicate); + return basePickBy(object, props, function(value, path) { + return predicate(value, path[0]); + }); + } + + /** + * This method is like `_.get` except that if the resolved value is a + * function it's invoked with the `this` binding of its parent object and + * its result is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to resolve. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; + * + * _.result(object, 'a[0].b.c1'); + * // => 3 + * + * _.result(object, 'a[0].b.c2'); + * // => 4 + * + * _.result(object, 'a[0].b.c3', 'default'); + * // => 'default' + * + * _.result(object, 'a[0].b.c3', _.constant('default')); + * // => 'default' + */ + function result(object, path, defaultValue) { + path = castPath(path, object); + + var index = -1, + length = path.length; + + // Ensure the loop is entered when path is empty. + if (!length) { + length = 1; + object = undefined; + } + while (++index < length) { + var value = object == null ? undefined : object[toKey(path[index])]; + if (value === undefined) { + index = length; + value = defaultValue; + } + object = isFunction(value) ? value.call(object) : value; + } + return object; + } + + /** + * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, + * it's created. Arrays are created for missing index properties while objects + * are created for all other missing properties. Use `_.setWith` to customize + * `path` creation. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.set(object, 'a[0].b.c', 4); + * console.log(object.a[0].b.c); + * // => 4 + * + * _.set(object, ['x', '0', 'y', 'z'], 5); + * console.log(object.x[0].y.z); + * // => 5 + */ + function set(object, path, value) { + return object == null ? object : baseSet(object, path, value); + } + + /** + * This method is like `_.set` except that it accepts `customizer` which is + * invoked to produce the objects of `path`. If `customizer` returns `undefined` + * path creation is handled by the method instead. The `customizer` is invoked + * with three arguments: (nsValue, key, nsObject). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * var object = {}; + * + * _.setWith(object, '[0][1]', 'a', Object); + * // => { '0': { '1': 'a' } } + */ + function setWith(object, path, value, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return object == null ? object : baseSet(object, path, value, customizer); + } + + /** + * Creates an array of own enumerable string keyed-value pairs for `object` + * which can be consumed by `_.fromPairs`. If `object` is a map or set, its + * entries are returned. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias entries + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the key-value pairs. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.toPairs(new Foo); + * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) + */ + var toPairs = createToPairs(keys); + + /** + * Creates an array of own and inherited enumerable string keyed-value pairs + * for `object` which can be consumed by `_.fromPairs`. If `object` is a map + * or set, its entries are returned. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias entriesIn + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the key-value pairs. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.toPairsIn(new Foo); + * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed) + */ + var toPairsIn = createToPairs(keysIn); + + /** + * An alternative to `_.reduce`; this method transforms `object` to a new + * `accumulator` object which is the result of running each of its own + * enumerable string keyed properties thru `iteratee`, with each invocation + * potentially mutating the `accumulator` object. If `accumulator` is not + * provided, a new object with the same `[[Prototype]]` will be used. The + * iteratee is invoked with four arguments: (accumulator, value, key, object). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 1.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The custom accumulator value. + * @returns {*} Returns the accumulated value. + * @example + * + * _.transform([2, 3, 4], function(result, n) { + * result.push(n *= n); + * return n % 2 == 0; + * }, []); + * // => [4, 9] + * + * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } + */ + function transform(object, iteratee, accumulator) { + var isArr = isArray(object), + isArrLike = isArr || isBuffer(object) || isTypedArray(object); + + iteratee = getIteratee(iteratee, 4); + if (accumulator == null) { + var Ctor = object && object.constructor; + if (isArrLike) { + accumulator = isArr ? new Ctor : []; + } + else if (isObject(object)) { + accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; + } + else { + accumulator = {}; + } + } + (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) { + return iteratee(accumulator, value, index, object); + }); + return accumulator; + } + + /** + * Removes the property at `path` of `object`. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to unset. + * @returns {boolean} Returns `true` if the property is deleted, else `false`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 7 } }] }; + * _.unset(object, 'a[0].b.c'); + * // => true + * + * console.log(object); + * // => { 'a': [{ 'b': {} }] }; + * + * _.unset(object, ['a', '0', 'b', 'c']); + * // => true + * + * console.log(object); + * // => { 'a': [{ 'b': {} }] }; + */ + function unset(object, path) { + return object == null ? true : baseUnset(object, path); + } + + /** + * This method is like `_.set` except that accepts `updater` to produce the + * value to set. Use `_.updateWith` to customize `path` creation. The `updater` + * is invoked with one argument: (value). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.6.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {Function} updater The function to produce the updated value. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.update(object, 'a[0].b.c', function(n) { return n * n; }); + * console.log(object.a[0].b.c); + * // => 9 + * + * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; }); + * console.log(object.x[0].y.z); + * // => 0 + */ + function update(object, path, updater) { + return object == null ? object : baseUpdate(object, path, castFunction(updater)); + } + + /** + * This method is like `_.update` except that it accepts `customizer` which is + * invoked to produce the objects of `path`. If `customizer` returns `undefined` + * path creation is handled by the method instead. The `customizer` is invoked + * with three arguments: (nsValue, key, nsObject). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.6.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {Function} updater The function to produce the updated value. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * var object = {}; + * + * _.updateWith(object, '[0][1]', _.constant('a'), Object); + * // => { '0': { '1': 'a' } } + */ + function updateWith(object, path, updater, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); + } + + /** + * Creates an array of the own enumerable string keyed property values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.values(new Foo); + * // => [1, 2] (iteration order is not guaranteed) + * + * _.values('hi'); + * // => ['h', 'i'] + */ + function values(object) { + return object == null ? [] : baseValues(object, keys(object)); + } + + /** + * Creates an array of the own and inherited enumerable string keyed property + * values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.valuesIn(new Foo); + * // => [1, 2, 3] (iteration order is not guaranteed) + */ + function valuesIn(object) { + return object == null ? [] : baseValues(object, keysIn(object)); + } + + /*------------------------------------------------------------------------*/ + + /** + * Clamps `number` within the inclusive `lower` and `upper` bounds. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Number + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + * @example + * + * _.clamp(-10, -5, 5); + * // => -5 + * + * _.clamp(10, -5, 5); + * // => 5 + */ + function clamp(number, lower, upper) { + if (upper === undefined) { + upper = lower; + lower = undefined; + } + if (upper !== undefined) { + upper = toNumber(upper); + upper = upper === upper ? upper : 0; + } + if (lower !== undefined) { + lower = toNumber(lower); + lower = lower === lower ? lower : 0; + } + return baseClamp(toNumber(number), lower, upper); + } + + /** + * Checks if `n` is between `start` and up to, but not including, `end`. If + * `end` is not specified, it's set to `start` with `start` then set to `0`. + * If `start` is greater than `end` the params are swapped to support + * negative ranges. + * + * @static + * @memberOf _ + * @since 3.3.0 + * @category Number + * @param {number} number The number to check. + * @param {number} [start=0] The start of the range. + * @param {number} end The end of the range. + * @returns {boolean} Returns `true` if `number` is in the range, else `false`. + * @see _.range, _.rangeRight + * @example + * + * _.inRange(3, 2, 4); + * // => true + * + * _.inRange(4, 8); + * // => true + * + * _.inRange(4, 2); + * // => false + * + * _.inRange(2, 2); + * // => false + * + * _.inRange(1.2, 2); + * // => true + * + * _.inRange(5.2, 4); + * // => false + * + * _.inRange(-3, -2, -6); + * // => true + */ + function inRange(number, start, end) { + start = toFinite(start); + if (end === undefined) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + number = toNumber(number); + return baseInRange(number, start, end); + } + + /** + * Produces a random number between the inclusive `lower` and `upper` bounds. + * If only one argument is provided a number between `0` and the given number + * is returned. If `floating` is `true`, or either `lower` or `upper` are + * floats, a floating-point number is returned instead of an integer. + * + * **Note:** JavaScript follows the IEEE-754 standard for resolving + * floating-point values which can produce unexpected results. + * + * @static + * @memberOf _ + * @since 0.7.0 + * @category Number + * @param {number} [lower=0] The lower bound. + * @param {number} [upper=1] The upper bound. + * @param {boolean} [floating] Specify returning a floating-point number. + * @returns {number} Returns the random number. + * @example + * + * _.random(0, 5); + * // => an integer between 0 and 5 + * + * _.random(5); + * // => also an integer between 0 and 5 + * + * _.random(5, true); + * // => a floating-point number between 0 and 5 + * + * _.random(1.2, 5.2); + * // => a floating-point number between 1.2 and 5.2 + */ + function random(lower, upper, floating) { + if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) { + upper = floating = undefined; + } + if (floating === undefined) { + if (typeof upper == 'boolean') { + floating = upper; + upper = undefined; + } + else if (typeof lower == 'boolean') { + floating = lower; + lower = undefined; + } + } + if (lower === undefined && upper === undefined) { + lower = 0; + upper = 1; + } + else { + lower = toFinite(lower); + if (upper === undefined) { + upper = lower; + lower = 0; + } else { + upper = toFinite(upper); + } + } + if (lower > upper) { + var temp = lower; + lower = upper; + upper = temp; + } + if (floating || lower % 1 || upper % 1) { + var rand = nativeRandom(); + return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper); + } + return baseRandom(lower, upper); + } + + /*------------------------------------------------------------------------*/ + + /** + * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the camel cased string. + * @example + * + * _.camelCase('Foo Bar'); + * // => 'fooBar' + * + * _.camelCase('--foo-bar--'); + * // => 'fooBar' + * + * _.camelCase('__FOO_BAR__'); + * // => 'fooBar' + */ + var camelCase = createCompounder(function(result, word, index) { + word = word.toLowerCase(); + return result + (index ? capitalize(word) : word); + }); + + /** + * Converts the first character of `string` to upper case and the remaining + * to lower case. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to capitalize. + * @returns {string} Returns the capitalized string. + * @example + * + * _.capitalize('FRED'); + * // => 'Fred' + */ + function capitalize(string) { + return upperFirst(toString(string).toLowerCase()); + } + + /** + * Deburrs `string` by converting + * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) + * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) + * letters to basic Latin letters and removing + * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to deburr. + * @returns {string} Returns the deburred string. + * @example + * + * _.deburr('déjà vu'); + * // => 'deja vu' + */ + function deburr(string) { + string = toString(string); + return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); + } + + /** + * Checks if `string` ends with the given target string. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to inspect. + * @param {string} [target] The string to search for. + * @param {number} [position=string.length] The position to search up to. + * @returns {boolean} Returns `true` if `string` ends with `target`, + * else `false`. + * @example + * + * _.endsWith('abc', 'c'); + * // => true + * + * _.endsWith('abc', 'b'); + * // => false + * + * _.endsWith('abc', 'b', 2); + * // => true + */ + function endsWith(string, target, position) { + string = toString(string); + target = baseToString(target); + + var length = string.length; + position = position === undefined + ? length + : baseClamp(toInteger(position), 0, length); + + var end = position; + position -= target.length; + return position >= 0 && string.slice(position, end) == target; + } + + /** + * Converts the characters "&", "<", ">", '"', and "'" in `string` to their + * corresponding HTML entities. + * + * **Note:** No other characters are escaped. To escape additional + * characters use a third-party library like [_he_](https://mths.be/he). + * + * Though the ">" character is escaped for symmetry, characters like + * ">" and "/" don't need escaping in HTML and have no special meaning + * unless they're part of a tag or unquoted attribute value. See + * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) + * (under "semi-related fun fact") for more details. + * + * When working with HTML you should always + * [quote attribute values](http://wonko.com/post/html-escaping) to reduce + * XSS vectors. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escape('fred, barney, & pebbles'); + * // => 'fred, barney, & pebbles' + */ + function escape(string) { + string = toString(string); + return (string && reHasUnescapedHtml.test(string)) + ? string.replace(reUnescapedHtml, escapeHtmlChar) + : string; + } + + /** + * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", + * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escapeRegExp('[lodash](https://lodash.com/)'); + * // => '\[lodash\]\(https://lodash\.com/\)' + */ + function escapeRegExp(string) { + string = toString(string); + return (string && reHasRegExpChar.test(string)) + ? string.replace(reRegExpChar, '\\$&') + : string; + } + + /** + * Converts `string` to + * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the kebab cased string. + * @example + * + * _.kebabCase('Foo Bar'); + * // => 'foo-bar' + * + * _.kebabCase('fooBar'); + * // => 'foo-bar' + * + * _.kebabCase('__FOO_BAR__'); + * // => 'foo-bar' + */ + var kebabCase = createCompounder(function(result, word, index) { + return result + (index ? '-' : '') + word.toLowerCase(); + }); + + /** + * Converts `string`, as space separated words, to lower case. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the lower cased string. + * @example + * + * _.lowerCase('--Foo-Bar--'); + * // => 'foo bar' + * + * _.lowerCase('fooBar'); + * // => 'foo bar' + * + * _.lowerCase('__FOO_BAR__'); + * // => 'foo bar' + */ + var lowerCase = createCompounder(function(result, word, index) { + return result + (index ? ' ' : '') + word.toLowerCase(); + }); + + /** + * Converts the first character of `string` to lower case. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.lowerFirst('Fred'); + * // => 'fred' + * + * _.lowerFirst('FRED'); + * // => 'fRED' + */ + var lowerFirst = createCaseFirst('toLowerCase'); + + /** + * Pads `string` on the left and right sides if it's shorter than `length`. + * Padding characters are truncated if they can't be evenly divided by `length`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to pad. + * @param {number} [length=0] The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padded string. + * @example + * + * _.pad('abc', 8); + * // => ' abc ' + * + * _.pad('abc', 8, '_-'); + * // => '_-abc_-_' + * + * _.pad('abc', 3); + * // => 'abc' + */ + function pad(string, length, chars) { + string = toString(string); + length = toInteger(length); + + var strLength = length ? stringSize(string) : 0; + if (!length || strLength >= length) { + return string; + } + var mid = (length - strLength) / 2; + return ( + createPadding(nativeFloor(mid), chars) + + string + + createPadding(nativeCeil(mid), chars) + ); + } + + /** + * Pads `string` on the right side if it's shorter than `length`. Padding + * characters are truncated if they exceed `length`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to pad. + * @param {number} [length=0] The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padded string. + * @example + * + * _.padEnd('abc', 6); + * // => 'abc ' + * + * _.padEnd('abc', 6, '_-'); + * // => 'abc_-_' + * + * _.padEnd('abc', 3); + * // => 'abc' + */ + function padEnd(string, length, chars) { + string = toString(string); + length = toInteger(length); + + var strLength = length ? stringSize(string) : 0; + return (length && strLength < length) + ? (string + createPadding(length - strLength, chars)) + : string; + } + + /** + * Pads `string` on the left side if it's shorter than `length`. Padding + * characters are truncated if they exceed `length`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to pad. + * @param {number} [length=0] The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padded string. + * @example + * + * _.padStart('abc', 6); + * // => ' abc' + * + * _.padStart('abc', 6, '_-'); + * // => '_-_abc' + * + * _.padStart('abc', 3); + * // => 'abc' + */ + function padStart(string, length, chars) { + string = toString(string); + length = toInteger(length); + + var strLength = length ? stringSize(string) : 0; + return (length && strLength < length) + ? (createPadding(length - strLength, chars) + string) + : string; + } + + /** + * Converts `string` to an integer of the specified radix. If `radix` is + * `undefined` or `0`, a `radix` of `10` is used unless `value` is a + * hexadecimal, in which case a `radix` of `16` is used. + * + * **Note:** This method aligns with the + * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category String + * @param {string} string The string to convert. + * @param {number} [radix=10] The radix to interpret `value` by. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {number} Returns the converted integer. + * @example + * + * _.parseInt('08'); + * // => 8 + * + * _.map(['6', '08', '10'], _.parseInt); + * // => [6, 8, 10] + */ + function parseInt(string, radix, guard) { + if (guard || radix == null) { + radix = 0; + } else if (radix) { + radix = +radix; + } + return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0); + } + + /** + * Repeats the given string `n` times. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to repeat. + * @param {number} [n=1] The number of times to repeat the string. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {string} Returns the repeated string. + * @example + * + * _.repeat('*', 3); + * // => '***' + * + * _.repeat('abc', 2); + * // => 'abcabc' + * + * _.repeat('abc', 0); + * // => '' + */ + function repeat(string, n, guard) { + if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) { + n = 1; + } else { + n = toInteger(n); + } + return baseRepeat(toString(string), n); + } + + /** + * Replaces matches for `pattern` in `string` with `replacement`. + * + * **Note:** This method is based on + * [`String#replace`](https://mdn.io/String/replace). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to modify. + * @param {RegExp|string} pattern The pattern to replace. + * @param {Function|string} replacement The match replacement. + * @returns {string} Returns the modified string. + * @example + * + * _.replace('Hi Fred', 'Fred', 'Barney'); + * // => 'Hi Barney' + */ + function replace() { + var args = arguments, + string = toString(args[0]); + + return args.length < 3 ? string : string.replace(args[1], args[2]); + } + + /** + * Converts `string` to + * [snake case](https://en.wikipedia.org/wiki/Snake_case). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the snake cased string. + * @example + * + * _.snakeCase('Foo Bar'); + * // => 'foo_bar' + * + * _.snakeCase('fooBar'); + * // => 'foo_bar' + * + * _.snakeCase('--FOO-BAR--'); + * // => 'foo_bar' + */ + var snakeCase = createCompounder(function(result, word, index) { + return result + (index ? '_' : '') + word.toLowerCase(); + }); + + /** + * Splits `string` by `separator`. + * + * **Note:** This method is based on + * [`String#split`](https://mdn.io/String/split). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to split. + * @param {RegExp|string} separator The separator pattern to split by. + * @param {number} [limit] The length to truncate results to. + * @returns {Array} Returns the string segments. + * @example + * + * _.split('a-b-c', '-', 2); + * // => ['a', 'b'] + */ + function split(string, separator, limit) { + if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { + separator = limit = undefined; + } + limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0; + if (!limit) { + return []; + } + string = toString(string); + if (string && ( + typeof separator == 'string' || + (separator != null && !isRegExp(separator)) + )) { + separator = baseToString(separator); + if (!separator && hasUnicode(string)) { + return castSlice(stringToArray(string), 0, limit); + } + } + return string.split(separator, limit); + } + + /** + * Converts `string` to + * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). + * + * @static + * @memberOf _ + * @since 3.1.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the start cased string. + * @example + * + * _.startCase('--foo-bar--'); + * // => 'Foo Bar' + * + * _.startCase('fooBar'); + * // => 'Foo Bar' + * + * _.startCase('__FOO_BAR__'); + * // => 'FOO BAR' + */ + var startCase = createCompounder(function(result, word, index) { + return result + (index ? ' ' : '') + upperFirst(word); + }); + + /** + * Checks if `string` starts with the given target string. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to inspect. + * @param {string} [target] The string to search for. + * @param {number} [position=0] The position to search from. + * @returns {boolean} Returns `true` if `string` starts with `target`, + * else `false`. + * @example + * + * _.startsWith('abc', 'a'); + * // => true + * + * _.startsWith('abc', 'b'); + * // => false + * + * _.startsWith('abc', 'b', 1); + * // => true + */ + function startsWith(string, target, position) { + string = toString(string); + position = position == null + ? 0 + : baseClamp(toInteger(position), 0, string.length); + + target = baseToString(target); + return string.slice(position, position + target.length) == target; + } + + /** + * Creates a compiled template function that can interpolate data properties + * in "interpolate" delimiters, HTML-escape interpolated data properties in + * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data + * properties may be accessed as free variables in the template. If a setting + * object is given, it takes precedence over `_.templateSettings` values. + * + * **Note:** In the development build `_.template` utilizes + * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) + * for easier debugging. + * + * For more information on precompiling templates see + * [lodash's custom builds documentation](https://lodash.com/custom-builds). + * + * For more information on Chrome extension sandboxes see + * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category String + * @param {string} [string=''] The template string. + * @param {Object} [options={}] The options object. + * @param {RegExp} [options.escape=_.templateSettings.escape] + * The HTML "escape" delimiter. + * @param {RegExp} [options.evaluate=_.templateSettings.evaluate] + * The "evaluate" delimiter. + * @param {Object} [options.imports=_.templateSettings.imports] + * An object to import into the template as free variables. + * @param {RegExp} [options.interpolate=_.templateSettings.interpolate] + * The "interpolate" delimiter. + * @param {string} [options.sourceURL='lodash.templateSources[n]'] + * The sourceURL of the compiled template. + * @param {string} [options.variable='obj'] + * The data object variable name. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the compiled template function. + * @example + * + * // Use the "interpolate" delimiter to create a compiled template. + * var compiled = _.template('hello <%= user %>!'); + * compiled({ 'user': 'fred' }); + * // => 'hello fred!' + * + * // Use the HTML "escape" delimiter to escape data property values. + * var compiled = _.template('<%- value %>'); + * compiled({ 'value': '

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 JdFexqK+3%5jMlj29X)V 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 z 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