diff --git a/dist/scripts.js b/dist/scripts.js
index a7e7093..a2b3e71 100644
--- a/dist/scripts.js
+++ b/dist/scripts.js
@@ -1,192 +1,258 @@
-class Kanban {
- constructor(options) {
- this.selector = options.selector
- this.lanes = options.lanes
- this.cards = options.cards
- this.title = options.title
- this.content = options.content
- this.held = undefined
- this.mouse = { offsetX: 0, offsetY: 0 }
- this.pos = undefined
- this.posLane = undefined
-
- this.html = {}
- this.html.container = document.querySelector(this.selector)
- this.html.board = this.createBoard()
- this.html.cards = []
- this.html.ghost = document.createElement('ghost')
- this.html.board.appendChild(this.html.ghost)
+'use strict';
- // Initialize
- this.html.container.appendChild(this.html.board)
- this.loadLanes()
- this.loadCards()
- this.addListeners()
- }
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- addListeners() {
- window.addEventListener('mouseup', (e) => {
- this.cardUp()
- })
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- window.addEventListener('mousemove', (e) => {
- this.cardMove(e.clientX, e.clientY)
- })
+var Kanban = function () {
+ function Kanban(options) {
+ _classCallCheck(this, Kanban);
- document.body.addEventListener('blur', (e) => {
- this.cardUp()
- })
- }
+ this.selector = options.selector;
+ this.lanes = options.lanes;
+ this.cards = options.cards;
+ this.title = options.title;
+ this.content = options.content;
+ this.held = undefined;
+ this.mouse = { offsetX: 0, offsetY: 0 };
+ this.pos = undefined;
+ this.posLane = undefined;
- cardDown(card) {
- this.held = card
- }
+ this.html = {};
+ this.html.container = document.querySelector(this.selector);
+ this.html.board = this.createBoard();
+ this.html.cards = [];
+ this.html.ghost = document.createElement('ghost');
+ this.html.board.appendChild(this.html.ghost);
- cardUp() {
- if(this.held){
- this.html.ghost.style.display = 'none'
- this.held.classList.remove('held')
- this.held = undefined
- }
+ // Initialize
+ this.html.container.appendChild(this.html.board);
+ this.loadLanes();
+ this.loadCards();
+ this.addListeners();
}
- cardMove(x, y) {
- this.html.ghost.style.transform = `translateX(${x}px) translateY(${y}px)`
-
- var ghostX = x + this.mouse.offsetX
- var ghostY = y + this.mouse.offsetY
- var ghostWidth = this.html.ghost.offsetWidth
- var ghostHeight = this.html.ghost.offsetHeight
- if(this.held){
- if(!this.heldmoved){
- this.held.classList.add('held')
- this.html.ghost.innerHTML = this.held.innerHTML
- this.html.ghost.style.width = this.held.offsetWidth + 'px'
- this.html.ghost.style.left = this.mouse.offsetX + 'px'
- this.html.ghost.style.top = this.mouse.offsetY + 'px'
- this.html.ghost.style.display = 'block'
- }
+ _createClass(Kanban, [{
+ key: 'addListeners',
+ value: function addListeners() {
+ var _this = this;
- // Auto scrolling lanes
- var lane = this.held.parentElement
- var laneRect = lane.getBoundingClientRect()
- if(ghostY + ghostHeight > laneRect.top + laneRect.height){
- lane.scrollTop += (ghostY + ghostHeight) - (laneRect.top + laneRect.height)
- }
+ window.addEventListener('mouseup', function (e) {
+ _this.cardUp();
+ });
- if(ghostY < laneRect.top){
- lane.scrollTop -= laneRect.top - ghostY
- }
+ window.addEventListener('mousemove', function (e) {
+ _this.cardMove(e.clientX, e.clientY);
+ });
- // Auto scrolling board
- var boardRect = this.html.board.getBoundingClientRect()
- if(ghostX < boardRect.left){
- this.html.board.scrollLeft -= boardRect.left - ghostX
+ document.body.addEventListener('blur', function (e) {
+ _this.cardUp();
+ });
+ }
+ }, {
+ key: 'cardDown',
+ value: function cardDown(card) {
+ this.held = card;
+ }
+ }, {
+ key: 'cardUp',
+ value: function cardUp() {
+ if (this.held) {
+ this.html.ghost.style.display = 'none';
+ this.held.classList.remove('held');
+ this.held = undefined;
}
-
- if(ghostX + ghostWidth > boardRect.left + boardRect.width){
- this.html.board.scrollLeft += (ghostX + ghostWidth) - (boardRect.left + boardRect.width)
+ }
+ }, {
+ key: 'cardMove',
+ value: function cardMove(x, y) {
+ this.html.ghost.style.transform = 'translateX(' + x + 'px) translateY(' + y + 'px)';
+
+ var ghostX = x + this.mouse.offsetX;
+ var ghostY = y + this.mouse.offsetY;
+ var ghostWidth = this.html.ghost.offsetWidth;
+ var ghostHeight = this.html.ghost.offsetHeight;
+ if (this.held) {
+ if (!this.heldmoved) {
+ this.held.classList.add('held');
+ this.html.ghost.innerHTML = this.held.innerHTML;
+ this.html.ghost.style.width = this.held.offsetWidth + 'px';
+ this.html.ghost.style.left = this.mouse.offsetX + 'px';
+ this.html.ghost.style.top = this.mouse.offsetY + 'px';
+ this.html.ghost.style.display = 'block';
+ }
+
+ // Auto scrolling lanes
+ var lane = this.held.parentElement;
+ var laneRect = lane.getBoundingClientRect();
+ if (ghostY + ghostHeight > laneRect.top + laneRect.height) {
+ lane.scrollTop += ghostY + ghostHeight - (laneRect.top + laneRect.height);
+ }
+
+ if (ghostY < laneRect.top) {
+ lane.scrollTop -= laneRect.top - ghostY;
+ }
+
+ // Auto scrolling board
+ var boardRect = this.html.board.getBoundingClientRect();
+ if (ghostX < boardRect.left) {
+ this.html.board.scrollLeft -= boardRect.left - ghostX;
+ }
+
+ if (ghostX + ghostWidth > boardRect.left + boardRect.width) {
+ this.html.board.scrollLeft += ghostX + ghostWidth - (boardRect.left + boardRect.width);
+ }
}
}
- }
-
- laneHide(lane) {
- console.log(lane)
- lane.classList.toggle('collapse')
- }
-
- cardDragOver(ele){
- // Chrome - Safari: Move to lane hack
- if(!this.held || ele == this.held) return
- if(ele.tagName.toLowerCase() == 'lane-cards'){
- // Safari calls child first skip this
- if(!this.movedToCardAndLane)
- ele.appendChild(this.held)
- this.movedToLane = true
- this.movedToCardAndLane = false
- return
+ }, {
+ key: 'laneHide',
+ value: function laneHide(lane) {
+ console.log(lane);
+ lane.classList.toggle('collapse');
}
-
- // Chrome calls parent first
- // If that happened OR safari calls child first. Set above
- this.movedToCardAndLane = ele.parentElement != this.held.parentElement
- ele.nextSibling == this.held || this.movedToLane || this.movedToCardAndLane
- ? ele.parentElement.insertBefore(this.held, ele)
- : ele.parentElement.insertBefore(this.held, ele.nextSibling)
-
- this.movedToLane = false
- }
-
- cardCreate(card) {
- var cardEle = document.createElement('card')
- cardEle.innerHTML = this.content(card.content)
-
- var that = this
-
- cardEle.addEventListener('mouseenter', function(e){
- that.cardDragOver(this)
- })
-
- cardEle.addEventListener('mousedown', function(e){
- // Click Offset
- var downBox = e.target.getBoundingClientRect()
- var cardBox = this.getBoundingClientRect()
- that.mouse = {
- offsetX: -e.offsetX - (downBox.left - cardBox.left),
- offsetY: -e.offsetY - (downBox.top - cardBox.top)
+ }, {
+ key: 'cardDragOver',
+ value: function cardDragOver(ele) {
+ // Chrome - Safari: Move to lane hack
+ if (!this.held || ele == this.held) return;
+ if (ele.tagName.toLowerCase() == 'lane-cards') {
+ // Safari calls child first skip this
+ if (!this.movedToCardAndLane) ele.appendChild(this.held);
+ this.movedToLane = true;
+ this.movedToCardAndLane = false;
+ return;
}
- that.cardDown(this)
- })
- return cardEle
- }
-
- createLane(lane) {
- var laneEle = document.createElement('lane')
- var titleEle = document.createElement('lane-title')
- var cardsEle = document.createElement('lane-cards')
-
- laneEle.setAttribute('name', lane.name)
- titleEle.innerHTML = this.title(lane.title)
-
- var that = this
- cardsEle.addEventListener('mouseenter', function(e){
- that.cardDragOver(this)
- })
-
- titleEle.addEventListener('click', function(e){
- that.laneHide(this.parentElement)
- })
-
- laneEle.appendChild(titleEle)
- laneEle.appendChild(cardsEle)
- return laneEle
- }
-
- createBoard() {
- return document.createElement('kanban')
- }
+ // Chrome calls parent first
+ // If that happened OR safari calls child first. Set above
+ this.movedToCardAndLane = ele.parentElement != this.held.parentElement;
+ ele.nextSibling == this.held || this.movedToLane || this.movedToCardAndLane ? ele.parentElement.insertBefore(this.held, ele) : ele.parentElement.insertBefore(this.held, ele.nextSibling);
- loadLanes() {
- for(var lane of this.lanes) {
- this.html.board.appendChild(this.createLane(lane))
+ this.movedToLane = false;
}
- }
-
- loadCards() {
- for(var card of this.cards) {
- this.loadCard(card)
+ }, {
+ key: 'cardCreate',
+ value: function cardCreate(card) {
+ var cardEle = document.createElement('card');
+ cardEle.innerHTML = this.content(card.content);
+
+ var that = this;
+
+ cardEle.addEventListener('mouseenter', function (e) {
+ that.cardDragOver(this);
+ });
+
+ cardEle.addEventListener('mousedown', function (e) {
+ // Click Offset
+ var downBox = e.target.getBoundingClientRect();
+ var cardBox = this.getBoundingClientRect();
+ that.mouse = {
+ offsetX: -e.offsetX - (downBox.left - cardBox.left),
+ offsetY: -e.offsetY - (downBox.top - cardBox.top)
+ };
+ that.cardDown(this);
+ });
+
+ return cardEle;
}
- }
-
- loadCard(card) {
- var newCard = this.cardCreate(card)
- this.html.cards.push(newCard)
- this.getLaneCardHolder(card.lane).appendChild(newCard)
- }
+ }, {
+ key: 'createLane',
+ value: function createLane(lane) {
+ var laneEle = document.createElement('lane');
+ var titleEle = document.createElement('lane-title');
+ var cardsEle = document.createElement('lane-cards');
+
+ laneEle.setAttribute('name', lane.name);
+ titleEle.innerHTML = this.title(lane.title);
+
+ var that = this;
+ cardsEle.addEventListener('mouseenter', function (e) {
+ that.cardDragOver(this);
+ });
+
+ titleEle.addEventListener('click', function (e) {
+ that.laneHide(this.parentElement);
+ });
+
+ laneEle.appendChild(titleEle);
+ laneEle.appendChild(cardsEle);
+ return laneEle;
+ }
+ }, {
+ key: 'createBoard',
+ value: function createBoard() {
+ return document.createElement('kanban');
+ }
+ }, {
+ key: 'loadLanes',
+ value: function loadLanes() {
+ var _iteratorNormalCompletion = true;
+ var _didIteratorError = false;
+ var _iteratorError = undefined;
+
+ try {
+ for (var _iterator = this.lanes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+ var lane = _step.value;
+
+ this.html.board.appendChild(this.createLane(lane));
+ }
+ } catch (err) {
+ _didIteratorError = true;
+ _iteratorError = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion && _iterator.return) {
+ _iterator.return();
+ }
+ } finally {
+ if (_didIteratorError) {
+ throw _iteratorError;
+ }
+ }
+ }
+ }
+ }, {
+ key: 'loadCards',
+ value: function loadCards() {
+ var _iteratorNormalCompletion2 = true;
+ var _didIteratorError2 = false;
+ var _iteratorError2 = undefined;
+
+ try {
+ for (var _iterator2 = this.cards[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
+ var card = _step2.value;
+
+ this.loadCard(card);
+ }
+ } catch (err) {
+ _didIteratorError2 = true;
+ _iteratorError2 = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion2 && _iterator2.return) {
+ _iterator2.return();
+ }
+ } finally {
+ if (_didIteratorError2) {
+ throw _iteratorError2;
+ }
+ }
+ }
+ }
+ }, {
+ key: 'loadCard',
+ value: function loadCard(card) {
+ var newCard = this.cardCreate(card);
+ this.html.cards.push(newCard);
+ this.getLaneCardHolder(card.lane).appendChild(newCard);
+ }
+ }, {
+ key: 'getLaneCardHolder',
+ value: function getLaneCardHolder(name) {
+ var selector = 'lane[name=' + name + '] lane-cards';
+ return this.html.board.querySelector(selector);
+ }
+ }]);
- getLaneCardHolder(name){
- var selector = `lane[name=${name}] lane-cards`
- return this.html.board.querySelector(selector)
- }
-}
+ return Kanban;
+}();
\ No newline at end of file
diff --git a/dist/styles.scss b/dist/styles.scss
deleted file mode 100644
index a8fe2d5..0000000
--- a/dist/styles.scss
+++ /dev/null
@@ -1,162 +0,0 @@
-$color-font: #000;
-$color-border: #CDCDCD;
-$color-background: #FFF;
-$color-selected: rgba(0, 0, 0, 0.1);
-$whitespace: 10px;
-
-html, body{
- padding:0px;
- margin:0px;
- height:100%;
-}
-
-body *, body *:after, body, *:before{
- font-family: 'Karla', sans-serif;
- color:$color-font;
- box-sizing:border-box;
- display:block;
- padding:0px;
- margin:0px;
- background:none;
- border:none;
-}
-script, style{ display:none; }
-
-kanban{
- width:100%;
- height:100%;
- background: $color-background;
- display:flex;
- overflow:auto;
- lane{
- flex:1;
- min-width:200px;
- border-right:1px solid $color-border;
- display:flex;
- flex-direction: column;
- user-select:none;
- &:last-of-type{
- border-right:none;
- }
- lane-title{
- padding:$whitespace;
- text-align:center;
- user-select:none;
- white-space:nowrap;
- }
-
- lane-cards{
- flex:1;
- overflow:auto;
- card{
- border:0.1px solid transparent;
- user-select:none;
- position:relative;
-
- &.held{
- visibility:hidden;
- &:after{
- visibility:visible;
- content: '';
- background:$color-selected;
- position:absolute;
- top:0px; left:0px;
- width:100%; height:100%;
- }
- }
- }
- }
-
- &.collapse{
- max-width:40px;
- min-width:40px;
-
- lane-title{
- writing-mode: vertical-rl;
- text-orientation: upright;
- min-height:100%;
- height:100%;
- flex:1;
- }
-
- lane-cards{
- display:none;
- }
- }
- }
-
- ghost{
- border:0.1px solid transparent;
- user-select:none;
- position:fixed;
- top:0px;
- left:0px;
- pointer-events:none;
- z-index:1000;
- opacity:0.5;
- }
-}
-
-// User styles
-#myKanBan{
- height:100%;
- //max-height:400px;
- //max-width:625px;
- //margin:40px auto;
- box-shadow:0px 2px 4px rgba(0, 0, 0, 0.25);
-
- lane lane-title{
- background:#333;
- color:#FFF;
- }
-}
-card, ghost{
-
- mycard-container{
- width:100%;
- height:100%;
- padding:$whitespace;
- padding-bottom:0px;
- overflow:hidden;
-
- mycard-content {
- border-radius:3px;
- overflow:hidden;
- }
-
- mycard-title {
- background:#444;
- color:#FFF;
- padding:$whitespace;
- button{
- display:inline;
- float:right;
- padding:0px 5px;
- &:hover{
- background:$color-selected;
- }
- }
- }
-
- mycard-text {
- position:relative;
- padding:$whitespace*2 $whitespace;
- font-size:0.8em;
- color:#FFF;
-
- }
-
- .bg-green{
- background:#33A852;
- }
- .bg-blue{
- background:#5FC3EB;
- }
- .bg-orange{
- background:#ffb440;
- }
- .bg-red{
- background: #ff4747;
- }
- }
-}
diff --git a/node_modules/.bin/babylon b/node_modules/.bin/babylon
index c2adc01..4177aa9 120000
--- a/node_modules/.bin/babylon
+++ b/node_modules/.bin/babylon
@@ -1 +1,15 @@
-../babylon/bin/babylon.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../babylon/bin/babylon.js" "$@"
+ ret=$?
+else
+ node "$basedir/../babylon/bin/babylon.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/browserslist b/node_modules/.bin/browserslist
index 3cd991b..1df3f2a 120000
--- a/node_modules/.bin/browserslist
+++ b/node_modules/.bin/browserslist
@@ -1 +1,15 @@
-../browserslist/cli.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../browserslist/cli.js" "$@"
+ ret=$?
+else
+ node "$basedir/../browserslist/cli.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/gulp b/node_modules/.bin/gulp
index 5de7332..5301663 120000
--- a/node_modules/.bin/gulp
+++ b/node_modules/.bin/gulp
@@ -1 +1,15 @@
-../gulp/bin/gulp.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../gulp/bin/gulp.js" "$@"
+ ret=$?
+else
+ node "$basedir/../gulp/bin/gulp.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/in-install b/node_modules/.bin/in-install
index 08c9689..a9a1863 120000
--- a/node_modules/.bin/in-install
+++ b/node_modules/.bin/in-install
@@ -1 +1,15 @@
-../in-publish/in-install.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../in-publish/in-install.js" "$@"
+ ret=$?
+else
+ node "$basedir/../in-publish/in-install.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/in-publish b/node_modules/.bin/in-publish
index ae9e779..593685f 120000
--- a/node_modules/.bin/in-publish
+++ b/node_modules/.bin/in-publish
@@ -1 +1,15 @@
-../in-publish/in-publish.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../in-publish/in-publish.js" "$@"
+ ret=$?
+else
+ node "$basedir/../in-publish/in-publish.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/jsesc b/node_modules/.bin/jsesc
index 7237604..e59ea43 120000
--- a/node_modules/.bin/jsesc
+++ b/node_modules/.bin/jsesc
@@ -1 +1,15 @@
-../jsesc/bin/jsesc
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@"
+ ret=$?
+else
+ node "$basedir/../jsesc/bin/jsesc" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/json5 b/node_modules/.bin/json5
index 217f379..71e29db 120000
--- a/node_modules/.bin/json5
+++ b/node_modules/.bin/json5
@@ -1 +1,15 @@
-../json5/lib/cli.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../json5/lib/cli.js" "$@"
+ ret=$?
+else
+ node "$basedir/../json5/lib/cli.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/loose-envify b/node_modules/.bin/loose-envify
index ed9009c..0939216 120000
--- a/node_modules/.bin/loose-envify
+++ b/node_modules/.bin/loose-envify
@@ -1 +1,15 @@
-../loose-envify/cli.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../loose-envify/cli.js" "$@"
+ ret=$?
+else
+ node "$basedir/../loose-envify/cli.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/mkdirp b/node_modules/.bin/mkdirp
index 017896c..4b00467 120000
--- a/node_modules/.bin/mkdirp
+++ b/node_modules/.bin/mkdirp
@@ -1 +1,15 @@
-../mkdirp/bin/cmd.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@"
+ ret=$?
+else
+ node "$basedir/../mkdirp/bin/cmd.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/node-gyp b/node_modules/.bin/node-gyp
index 9b31a4f..813d1f1 120000
--- a/node_modules/.bin/node-gyp
+++ b/node_modules/.bin/node-gyp
@@ -1 +1,15 @@
-../node-gyp/bin/node-gyp.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../node-gyp/bin/node-gyp.js" "$@"
+ ret=$?
+else
+ node "$basedir/../node-gyp/bin/node-gyp.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/node-sass b/node_modules/.bin/node-sass
index a4b0134..f5fb211 120000
--- a/node_modules/.bin/node-sass
+++ b/node_modules/.bin/node-sass
@@ -1 +1,15 @@
-../node-sass/bin/node-sass
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../node-sass/bin/node-sass" "$@"
+ ret=$?
+else
+ node "$basedir/../node-sass/bin/node-sass" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/nopt b/node_modules/.bin/nopt
index 6b6566e..714334e 120000
--- a/node_modules/.bin/nopt
+++ b/node_modules/.bin/nopt
@@ -1 +1,15 @@
-../nopt/bin/nopt.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@"
+ ret=$?
+else
+ node "$basedir/../nopt/bin/nopt.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/not-in-install b/node_modules/.bin/not-in-install
index dbfcf38..58ed98d 120000
--- a/node_modules/.bin/not-in-install
+++ b/node_modules/.bin/not-in-install
@@ -1 +1,15 @@
-../in-publish/not-in-install.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../in-publish/not-in-install.js" "$@"
+ ret=$?
+else
+ node "$basedir/../in-publish/not-in-install.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/not-in-publish b/node_modules/.bin/not-in-publish
index 5cc2922..cc9808e 120000
--- a/node_modules/.bin/not-in-publish
+++ b/node_modules/.bin/not-in-publish
@@ -1 +1,15 @@
-../in-publish/not-in-publish.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../in-publish/not-in-publish.js" "$@"
+ ret=$?
+else
+ node "$basedir/../in-publish/not-in-publish.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/regjsparser b/node_modules/.bin/regjsparser
index 91cec77..a0add0f 120000
--- a/node_modules/.bin/regjsparser
+++ b/node_modules/.bin/regjsparser
@@ -1 +1,15 @@
-../regjsparser/bin/parser
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../regjsparser/bin/parser" "$@"
+ ret=$?
+else
+ node "$basedir/../regjsparser/bin/parser" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/rimraf b/node_modules/.bin/rimraf
index 4cd49a4..3cebd6e 120000
--- a/node_modules/.bin/rimraf
+++ b/node_modules/.bin/rimraf
@@ -1 +1,15 @@
-../rimraf/bin.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../rimraf/bin.js" "$@"
+ ret=$?
+else
+ node "$basedir/../rimraf/bin.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/sassgraph b/node_modules/.bin/sassgraph
index 901ada9..f85f25b 120000
--- a/node_modules/.bin/sassgraph
+++ b/node_modules/.bin/sassgraph
@@ -1 +1,15 @@
-../sass-graph/bin/sassgraph
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../sass-graph/bin/sassgraph" "$@"
+ ret=$?
+else
+ node "$basedir/../sass-graph/bin/sassgraph" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver
index 317eb29..d592e69 120000
--- a/node_modules/.bin/semver
+++ b/node_modules/.bin/semver
@@ -1 +1,15 @@
-../semver/bin/semver
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../semver/bin/semver" "$@"
+ ret=$?
+else
+ node "$basedir/../semver/bin/semver" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/sshpk-conv b/node_modules/.bin/sshpk-conv
index a2a295c..c9c2987 120000
--- a/node_modules/.bin/sshpk-conv
+++ b/node_modules/.bin/sshpk-conv
@@ -1 +1,15 @@
-../sshpk/bin/sshpk-conv
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../sshpk/bin/sshpk-conv" "$@"
+ ret=$?
+else
+ node "$basedir/../sshpk/bin/sshpk-conv" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/sshpk-sign b/node_modules/.bin/sshpk-sign
index 766b9b3..1a92124 120000
--- a/node_modules/.bin/sshpk-sign
+++ b/node_modules/.bin/sshpk-sign
@@ -1 +1,15 @@
-../sshpk/bin/sshpk-sign
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../sshpk/bin/sshpk-sign" "$@"
+ ret=$?
+else
+ node "$basedir/../sshpk/bin/sshpk-sign" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/sshpk-verify b/node_modules/.bin/sshpk-verify
index bfd7e3a..597a66b 120000
--- a/node_modules/.bin/sshpk-verify
+++ b/node_modules/.bin/sshpk-verify
@@ -1 +1,15 @@
-../sshpk/bin/sshpk-verify
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../sshpk/bin/sshpk-verify" "$@"
+ ret=$?
+else
+ node "$basedir/../sshpk/bin/sshpk-verify" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/strip-bom b/node_modules/.bin/strip-bom
index ba65fdf..4deb9d9 120000
--- a/node_modules/.bin/strip-bom
+++ b/node_modules/.bin/strip-bom
@@ -1 +1,15 @@
-../strip-bom/cli.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../strip-bom/cli.js" "$@"
+ ret=$?
+else
+ node "$basedir/../strip-bom/cli.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/strip-indent b/node_modules/.bin/strip-indent
index dddee7e..dbb5259 120000
--- a/node_modules/.bin/strip-indent
+++ b/node_modules/.bin/strip-indent
@@ -1 +1,15 @@
-../strip-indent/cli.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../strip-indent/cli.js" "$@"
+ ret=$?
+else
+ node "$basedir/../strip-indent/cli.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/uglifyjs b/node_modules/.bin/uglifyjs
index fef3468..de7b74f 120000
--- a/node_modules/.bin/uglifyjs
+++ b/node_modules/.bin/uglifyjs
@@ -1 +1,15 @@
-../uglify-js/bin/uglifyjs
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../uglify-js/bin/uglifyjs" "$@"
+ ret=$?
+else
+ node "$basedir/../uglify-js/bin/uglifyjs" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/user-home b/node_modules/.bin/user-home
index d72d76b..b28c23a 120000
--- a/node_modules/.bin/user-home
+++ b/node_modules/.bin/user-home
@@ -1 +1,15 @@
-../user-home/cli.js
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../user-home/cli.js" "$@"
+ ret=$?
+else
+ node "$basedir/../user-home/cli.js" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/uuid b/node_modules/.bin/uuid
index b3e45bc..f3bfcf4 120000
--- a/node_modules/.bin/uuid
+++ b/node_modules/.bin/uuid
@@ -1 +1,15 @@
-../uuid/bin/uuid
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../uuid/bin/uuid" "$@"
+ ret=$?
+else
+ node "$basedir/../uuid/bin/uuid" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/.bin/which b/node_modules/.bin/which
index f62471c..cbe872c 120000
--- a/node_modules/.bin/which
+++ b/node_modules/.bin/which
@@ -1 +1,15 @@
-../which/bin/which
\ No newline at end of file
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ "$basedir/node" "$basedir/../which/bin/which" "$@"
+ ret=$?
+else
+ node "$basedir/../which/bin/which" "$@"
+ ret=$?
+fi
+exit $ret
diff --git a/node_modules/abbrev/package.json b/node_modules/abbrev/package.json
index 4333bb2..374e2fd 100644
--- a/node_modules/abbrev/package.json
+++ b/node_modules/abbrev/package.json
@@ -1,27 +1,50 @@
{
- "_from": "abbrev@1",
+ "_args": [
+ [
+ {
+ "raw": "abbrev@1",
+ "scope": null,
+ "escapedName": "abbrev",
+ "name": "abbrev",
+ "rawSpec": "1",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\nopt"
+ ]
+ ],
+ "_from": "abbrev@>=1.0.0 <2.0.0",
"_id": "abbrev@1.1.1",
- "_inBundle": false,
- "_integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "_inCache": true,
"_location": "/abbrev",
+ "_nodeVersion": "8.5.0",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/abbrev-1.1.1.tgz_1506566833068_0.05750026390887797"
+ },
+ "_npmUser": {
+ "name": "isaacs",
+ "email": "i@izs.me"
+ },
+ "_npmVersion": "5.4.2",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "abbrev@1",
- "name": "abbrev",
+ "scope": null,
"escapedName": "abbrev",
+ "name": "abbrev",
"rawSpec": "1",
- "saveSpec": null,
- "fetchSpec": "1"
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/nopt"
],
"_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"_shasum": "f8f2c887ad10bf67f634f005b6987fed3179aac8",
+ "_shrinkwrap": null,
"_spec": "abbrev@1",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/nopt",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\nopt",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me"
@@ -29,19 +52,37 @@
"bugs": {
"url": "https://github.com/isaacs/abbrev-js/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
+ "dependencies": {},
"description": "Like ruby's abbrev module, but in js",
"devDependencies": {
"tap": "^10.1"
},
+ "directories": {},
+ "dist": {
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "shasum": "f8f2c887ad10bf67f634f005b6987fed3179aac8",
+ "tarball": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
+ },
"files": [
"abbrev.js"
],
+ "gitHead": "a9ee72ebc8fe3975f1b0c7aeb3a8f2a806a432eb",
"homepage": "https://github.com/isaacs/abbrev-js#readme",
"license": "ISC",
"main": "abbrev.js",
+ "maintainers": [
+ {
+ "name": "gabra",
+ "email": "jerry+1@npmjs.com"
+ },
+ {
+ "name": "isaacs",
+ "email": "i@izs.me"
+ }
+ ],
"name": "abbrev",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/isaacs/abbrev-js.git"
diff --git a/node_modules/ajv/package.json b/node_modules/ajv/package.json
index 537a704..e7ea6bd 100644
--- a/node_modules/ajv/package.json
+++ b/node_modules/ajv/package.json
@@ -1,41 +1,62 @@
{
- "_from": "ajv@^5.1.0",
+ "_args": [
+ [
+ {
+ "raw": "ajv@^5.1.0",
+ "scope": null,
+ "escapedName": "ajv",
+ "name": "ajv",
+ "rawSpec": "^5.1.0",
+ "spec": ">=5.1.0 <6.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\har-validator"
+ ]
+ ],
+ "_from": "ajv@>=5.1.0 <6.0.0",
"_id": "ajv@5.3.0",
- "_inBundle": false,
- "_integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=",
+ "_inCache": true,
"_location": "/ajv",
+ "_nodeVersion": "7.10.0",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/ajv-5.3.0.tgz_1508871622369_0.23681649682112038"
+ },
+ "_npmUser": {
+ "name": "esp",
+ "email": "e.poberezkin@me.com"
+ },
+ "_npmVersion": "4.2.0",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "ajv@^5.1.0",
- "name": "ajv",
+ "scope": null,
"escapedName": "ajv",
+ "name": "ajv",
"rawSpec": "^5.1.0",
- "saveSpec": null,
- "fetchSpec": "^5.1.0"
+ "spec": ">=5.1.0 <6.0.0",
+ "type": "range"
},
"_requiredBy": [
"/har-validator"
],
"_resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz",
"_shasum": "4414ff74a50879c208ee5fdc826e32c303549eda",
+ "_shrinkwrap": null,
"_spec": "ajv@^5.1.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/har-validator",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\har-validator",
"author": {
"name": "Evgeny Poberezkin"
},
"bugs": {
"url": "https://github.com/epoberezkin/ajv/issues"
},
- "bundleDependencies": false,
"dependencies": {
"co": "^4.6.0",
"fast-deep-equal": "^1.0.0",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.3.0"
},
- "deprecated": false,
"description": "Another JSON Schema Validator",
"devDependencies": {
"ajv-async": "^0.1.0",
@@ -69,6 +90,11 @@
"uglify-js": "^3.1.5",
"watch": "^1.0.0"
},
+ "directories": {},
+ "dist": {
+ "shasum": "4414ff74a50879c208ee5fdc826e32c303549eda",
+ "tarball": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz"
+ },
"files": [
"lib/",
"dist/",
@@ -76,6 +102,7 @@
"LICENSE",
".tonic_example.js"
],
+ "gitHead": "256100c76a99249ebdf36a1aa7d296348f0af47d",
"homepage": "https://github.com/epoberezkin/ajv",
"keywords": [
"JSON",
@@ -89,6 +116,16 @@
],
"license": "MIT",
"main": "lib/ajv.js",
+ "maintainers": [
+ {
+ "name": "blakeembrey",
+ "email": "hello@blakeembrey.com"
+ },
+ {
+ "name": "esp",
+ "email": "e.poberezkin@me.com"
+ }
+ ],
"name": "ajv",
"nyc": {
"exclude": [
@@ -100,6 +137,8 @@
"text-summary"
]
},
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/epoberezkin/ajv.git"
diff --git a/node_modules/amdefine/package.json b/node_modules/amdefine/package.json
index 794647e..ad42797 100644
--- a/node_modules/amdefine/package.json
+++ b/node_modules/amdefine/package.json
@@ -1,27 +1,50 @@
{
+ "_args": [
+ [
+ {
+ "raw": "amdefine@>=0.0.4",
+ "scope": null,
+ "escapedName": "amdefine",
+ "name": "amdefine",
+ "rawSpec": ">=0.0.4",
+ "spec": ">=0.0.4",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\scss-tokenizer\\node_modules\\source-map"
+ ]
+ ],
"_from": "amdefine@>=0.0.4",
"_id": "amdefine@1.0.1",
- "_inBundle": false,
- "_integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "_inCache": true,
"_location": "/amdefine",
+ "_nodeVersion": "6.7.0",
+ "_npmOperationalInternal": {
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/amdefine-1.0.1.tgz_1478062849665_0.19916908955201507"
+ },
+ "_npmUser": {
+ "name": "jrburke",
+ "email": "jrburke@gmail.com"
+ },
+ "_npmVersion": "3.10.3",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "amdefine@>=0.0.4",
- "name": "amdefine",
+ "scope": null,
"escapedName": "amdefine",
+ "name": "amdefine",
"rawSpec": ">=0.0.4",
- "saveSpec": null,
- "fetchSpec": ">=0.0.4"
+ "spec": ">=0.0.4",
+ "type": "range"
},
"_requiredBy": [
"/scss-tokenizer/source-map"
],
"_resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"_shasum": "4a5282ac164729e93619bcfd3ad151f817ce91f5",
+ "_shrinkwrap": null,
"_spec": "amdefine@>=0.0.4",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/scss-tokenizer/node_modules/source-map",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\scss-tokenizer\\node_modules\\source-map",
"author": {
"name": "James Burke",
"email": "jrburke@gmail.com",
@@ -30,19 +53,34 @@
"bugs": {
"url": "https://github.com/jrburke/amdefine/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
+ "dependencies": {},
"description": "Provide AMD's define() API for declaring modules in the AMD format",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "4a5282ac164729e93619bcfd3ad151f817ce91f5",
+ "tarball": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
+ },
"engines": {
"node": ">=0.4.2"
},
+ "gitHead": "e59edc9da24404ec7937098e3992f8fb0e260be7",
"homepage": "http://github.com/jrburke/amdefine",
"license": "BSD-3-Clause OR MIT",
"main": "./amdefine.js",
+ "maintainers": [
+ {
+ "name": "jrburke",
+ "email": "jrburke@gmail.com"
+ }
+ ],
"name": "amdefine",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/jrburke/amdefine.git"
},
+ "scripts": {},
"version": "1.0.1"
}
diff --git a/node_modules/ansi-regex/package.json b/node_modules/ansi-regex/package.json
index f3875be..2dc9b84 100644
--- a/node_modules/ansi-regex/package.json
+++ b/node_modules/ansi-regex/package.json
@@ -1,19 +1,41 @@
{
- "_from": "ansi-regex@^2.0.0",
+ "_args": [
+ [
+ {
+ "raw": "ansi-regex@^2.0.0",
+ "scope": null,
+ "escapedName": "ansi-regex",
+ "name": "ansi-regex",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\has-ansi"
+ ]
+ ],
+ "_from": "ansi-regex@>=2.0.0 <3.0.0",
"_id": "ansi-regex@2.1.1",
- "_inBundle": false,
- "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "_inCache": true,
"_location": "/ansi-regex",
+ "_nodeVersion": "0.10.32",
+ "_npmOperationalInternal": {
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/ansi-regex-2.1.1.tgz_1484363378013_0.4482989883981645"
+ },
+ "_npmUser": {
+ "name": "qix",
+ "email": "i.am.qix@gmail.com"
+ },
+ "_npmVersion": "2.14.2",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "ansi-regex@^2.0.0",
- "name": "ansi-regex",
+ "scope": null,
"escapedName": "ansi-regex",
+ "name": "ansi-regex",
"rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
},
"_requiredBy": [
"/has-ansi",
@@ -21,8 +43,9 @@
],
"_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
+ "_shrinkwrap": null,
"_spec": "ansi-regex@^2.0.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/has-ansi",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\has-ansi",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -31,19 +54,24 @@
"bugs": {
"url": "https://github.com/chalk/ansi-regex/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
+ "dependencies": {},
"description": "Regular expression for matching ANSI escape codes",
"devDependencies": {
"ava": "0.17.0",
"xo": "0.16.0"
},
+ "directories": {},
+ "dist": {
+ "shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
+ "tarball": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ },
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
+ "gitHead": "7c908e7b4eb6cd82bfe1295e33fdf6d166c7ed85",
"homepage": "https://github.com/chalk/ansi-regex#readme",
"keywords": [
"ansi",
@@ -75,22 +103,17 @@
"license": "MIT",
"maintainers": [
{
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
+ "name": "qix",
+ "email": "i.am.qix@gmail.com"
},
{
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
}
],
"name": "ansi-regex",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/chalk/ansi-regex.git"
diff --git a/node_modules/ansi-styles/package.json b/node_modules/ansi-styles/package.json
index ec60b47..46d351d 100644
--- a/node_modules/ansi-styles/package.json
+++ b/node_modules/ansi-styles/package.json
@@ -1,27 +1,50 @@
{
- "_from": "ansi-styles@^2.2.1",
+ "_args": [
+ [
+ {
+ "raw": "ansi-styles@^2.2.1",
+ "scope": null,
+ "escapedName": "ansi-styles",
+ "name": "ansi-styles",
+ "rawSpec": "^2.2.1",
+ "spec": ">=2.2.1 <3.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\chalk"
+ ]
+ ],
+ "_from": "ansi-styles@>=2.2.1 <3.0.0",
"_id": "ansi-styles@2.2.1",
- "_inBundle": false,
- "_integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "_inCache": true,
"_location": "/ansi-styles",
+ "_nodeVersion": "4.3.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/ansi-styles-2.2.1.tgz_1459197317833_0.9694824463222176"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "3.8.3",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "ansi-styles@^2.2.1",
- "name": "ansi-styles",
+ "scope": null,
"escapedName": "ansi-styles",
+ "name": "ansi-styles",
"rawSpec": "^2.2.1",
- "saveSpec": null,
- "fetchSpec": "^2.2.1"
+ "spec": ">=2.2.1 <3.0.0",
+ "type": "range"
},
"_requiredBy": [
"/chalk"
],
"_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"_shasum": "b432dd3358b634cf75e1e4664368240533c1ddbe",
+ "_shrinkwrap": null,
"_spec": "ansi-styles@^2.2.1",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/chalk",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\chalk",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -30,18 +53,23 @@
"bugs": {
"url": "https://github.com/chalk/ansi-styles/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
+ "dependencies": {},
"description": "ANSI escape codes for styling strings in the terminal",
"devDependencies": {
"mocha": "*"
},
+ "directories": {},
+ "dist": {
+ "shasum": "b432dd3358b634cf75e1e4664368240533c1ddbe",
+ "tarball": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
+ },
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
+ "gitHead": "95c59b23be760108b6530ca1c89477c21b258032",
"homepage": "https://github.com/chalk/ansi-styles#readme",
"keywords": [
"ansi",
@@ -68,17 +96,13 @@
"license": "MIT",
"maintainers": [
{
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
}
],
"name": "ansi-styles",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/chalk/ansi-styles.git"
diff --git a/node_modules/anymatch/package.json b/node_modules/anymatch/package.json
index 6cf4ed2..9144b83 100644
--- a/node_modules/anymatch/package.json
+++ b/node_modules/anymatch/package.json
@@ -1,19 +1,41 @@
{
- "_from": "anymatch@^1.3.0",
+ "_args": [
+ [
+ {
+ "raw": "anymatch@^1.3.0",
+ "scope": null,
+ "escapedName": "anymatch",
+ "name": "anymatch",
+ "rawSpec": "^1.3.0",
+ "spec": ">=1.3.0 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\gulp-watch"
+ ]
+ ],
+ "_from": "anymatch@>=1.3.0 <2.0.0",
"_id": "anymatch@1.3.2",
- "_inBundle": false,
- "_integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "_inCache": true,
"_location": "/anymatch",
+ "_nodeVersion": "6.10.2",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/anymatch-1.3.2.tgz_1501178625433_0.08029883285053074"
+ },
+ "_npmUser": {
+ "name": "es128",
+ "email": "elan.shanker+npm@gmail.com"
+ },
+ "_npmVersion": "5.0.1",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "anymatch@^1.3.0",
- "name": "anymatch",
+ "scope": null,
"escapedName": "anymatch",
+ "name": "anymatch",
"rawSpec": "^1.3.0",
- "saveSpec": null,
- "fetchSpec": "^1.3.0"
+ "spec": ">=1.3.0 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/chokidar",
@@ -21,8 +43,9 @@
],
"_resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
"_shasum": "553dcb8f91e3c889845dfdba34c77721b90b9d7a",
+ "_shrinkwrap": null,
"_spec": "anymatch@^1.3.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/gulp-watch",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\gulp-watch",
"author": {
"name": "Elan Shanker",
"url": "http://github.com/es128"
@@ -30,21 +53,26 @@
"bugs": {
"url": "https://github.com/es128/anymatch/issues"
},
- "bundleDependencies": false,
"dependencies": {
"micromatch": "^2.1.5",
"normalize-path": "^2.0.0"
},
- "deprecated": false,
"description": "Matches strings against configurable strings, globs, regular expressions, and/or functions",
"devDependencies": {
"coveralls": "^2.11.2",
"istanbul": "^0.3.13",
"mocha": "^2.2.4"
},
+ "directories": {},
+ "dist": {
+ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "shasum": "553dcb8f91e3c889845dfdba34c77721b90b9d7a",
+ "tarball": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz"
+ },
"files": [
"index.js"
],
+ "gitHead": "a16f5bd07f1e36c4eef08c1291c6c119d1663639",
"homepage": "https://github.com/es128/anymatch",
"keywords": [
"match",
@@ -61,7 +89,19 @@
"function"
],
"license": "ISC",
+ "maintainers": [
+ {
+ "name": "es128",
+ "email": "elan.shanker+npm@gmail.com"
+ },
+ {
+ "name": "paulmillr",
+ "email": "paul@paulmillr.com"
+ }
+ ],
"name": "anymatch",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/es128/anymatch.git"
diff --git a/node_modules/aproba/package.json b/node_modules/aproba/package.json
index 35b3348..0cf0fd5 100644
--- a/node_modules/aproba/package.json
+++ b/node_modules/aproba/package.json
@@ -1,27 +1,50 @@
{
- "_from": "aproba@^1.0.3",
+ "_args": [
+ [
+ {
+ "raw": "aproba@^1.0.3",
+ "scope": null,
+ "escapedName": "aproba",
+ "name": "aproba",
+ "rawSpec": "^1.0.3",
+ "spec": ">=1.0.3 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\gauge"
+ ]
+ ],
+ "_from": "aproba@>=1.0.3 <2.0.0",
"_id": "aproba@1.2.0",
- "_inBundle": false,
- "_integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "_inCache": true,
"_location": "/aproba",
+ "_nodeVersion": "8.5.0",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/aproba-1.2.0.tgz_1505861292502_0.3447994305752218"
+ },
+ "_npmUser": {
+ "name": "iarna",
+ "email": "me@re-becca.org"
+ },
+ "_npmVersion": "5.4.2",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "aproba@^1.0.3",
- "name": "aproba",
+ "scope": null,
"escapedName": "aproba",
+ "name": "aproba",
"rawSpec": "^1.0.3",
- "saveSpec": null,
- "fetchSpec": "^1.0.3"
+ "spec": ">=1.0.3 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/gauge"
],
"_resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
"_shasum": "6802e6264efd18c790a1b0d517f0f2627bf2c94a",
+ "_shrinkwrap": null,
"_spec": "aproba@^1.0.3",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/gauge",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\gauge",
"author": {
"name": "Rebecca Turner",
"email": "me@re-becca.org"
@@ -29,9 +52,7 @@
"bugs": {
"url": "https://github.com/iarna/aproba/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "A ridiculously light-weight argument validator (now browser friendly)",
"devDependencies": {
"standard": "^10.0.3",
@@ -40,9 +61,15 @@
"directories": {
"test": "test"
},
+ "dist": {
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "shasum": "6802e6264efd18c790a1b0d517f0f2627bf2c94a",
+ "tarball": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"
+ },
"files": [
"index.js"
],
+ "gitHead": "ee43ce68c9992e8f9d0d925dc2b1f2e1e5c976de",
"homepage": "https://github.com/iarna/aproba",
"keywords": [
"argument",
@@ -50,7 +77,15 @@
],
"license": "ISC",
"main": "index.js",
+ "maintainers": [
+ {
+ "name": "iarna",
+ "email": "me@re-becca.org"
+ }
+ ],
"name": "aproba",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/iarna/aproba.git"
diff --git a/node_modules/archy/package.json b/node_modules/archy/package.json
index 0883137..2706926 100644
--- a/node_modules/archy/package.json
+++ b/node_modules/archy/package.json
@@ -1,27 +1,45 @@
{
- "_from": "archy@^1.0.0",
+ "_args": [
+ [
+ {
+ "raw": "archy@^1.0.0",
+ "scope": null,
+ "escapedName": "archy",
+ "name": "archy",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\gulp"
+ ]
+ ],
+ "_from": "archy@>=1.0.0 <2.0.0",
"_id": "archy@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
+ "_inCache": true,
"_location": "/archy",
+ "_npmUser": {
+ "name": "substack",
+ "email": "mail@substack.net"
+ },
+ "_npmVersion": "1.4.25",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "archy@^1.0.0",
- "name": "archy",
+ "scope": null,
"escapedName": "archy",
+ "name": "archy",
"rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/gulp"
],
"_resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
"_shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40",
+ "_shrinkwrap": null,
"_spec": "archy@^1.0.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/gulp",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\gulp",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
@@ -30,14 +48,19 @@
"bugs": {
"url": "https://github.com/substack/node-archy/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
+ "dependencies": {},
"description": "render nested hierarchies `npm ls` style with unicode pipes",
"devDependencies": {
"tap": "~0.3.3",
"tape": "~0.1.1"
},
- "homepage": "https://github.com/substack/node-archy#readme",
+ "directories": {},
+ "dist": {
+ "shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40",
+ "tarball": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz"
+ },
+ "gitHead": "30223c16191e877bf027b15b12daf077b9b55b84",
+ "homepage": "https://github.com/substack/node-archy",
"keywords": [
"hierarchy",
"npm ls",
@@ -47,7 +70,15 @@
],
"license": "MIT",
"main": "index.js",
+ "maintainers": [
+ {
+ "name": "substack",
+ "email": "mail@substack.net"
+ }
+ ],
"name": "archy",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/substack/node-archy.git"
diff --git a/node_modules/are-we-there-yet/node_modules/isarray/package.json b/node_modules/are-we-there-yet/node_modules/isarray/package.json
index 580d011..e3297f9 100644
--- a/node_modules/are-we-there-yet/node_modules/isarray/package.json
+++ b/node_modules/are-we-there-yet/node_modules/isarray/package.json
@@ -1,27 +1,46 @@
{
- "_from": "isarray@~1.0.0",
+ "_args": [
+ [
+ {
+ "raw": "isarray@~1.0.0",
+ "scope": null,
+ "escapedName": "isarray",
+ "name": "isarray",
+ "rawSpec": "~1.0.0",
+ "spec": ">=1.0.0 <1.1.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\are-we-there-yet\\node_modules\\readable-stream"
+ ]
+ ],
+ "_from": "isarray@>=1.0.0 <1.1.0",
"_id": "isarray@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "_inCache": true,
"_location": "/are-we-there-yet/isarray",
+ "_nodeVersion": "5.1.0",
+ "_npmUser": {
+ "name": "juliangruber",
+ "email": "julian@juliangruber.com"
+ },
+ "_npmVersion": "3.3.12",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "isarray@~1.0.0",
- "name": "isarray",
+ "scope": null,
"escapedName": "isarray",
+ "name": "isarray",
"rawSpec": "~1.0.0",
- "saveSpec": null,
- "fetchSpec": "~1.0.0"
+ "spec": ">=1.0.0 <1.1.0",
+ "type": "range"
},
"_requiredBy": [
"/are-we-there-yet/readable-stream"
],
"_resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"_shasum": "bb935d48582cba168c06834957a54a3e07124f11",
+ "_shrinkwrap": null,
"_spec": "isarray@~1.0.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/are-we-there-yet/node_modules/readable-stream",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\are-we-there-yet\\node_modules\\readable-stream",
"author": {
"name": "Julian Gruber",
"email": "mail@juliangruber.com",
@@ -30,13 +49,17 @@
"bugs": {
"url": "https://github.com/juliangruber/isarray/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "Array#isArray for older browsers",
"devDependencies": {
"tape": "~2.13.4"
},
+ "directories": {},
+ "dist": {
+ "shasum": "bb935d48582cba168c06834957a54a3e07124f11",
+ "tarball": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ },
+ "gitHead": "2a23a281f369e9ae06394c0fb4d2381355a6ba33",
"homepage": "https://github.com/juliangruber/isarray",
"keywords": [
"browser",
@@ -45,7 +68,15 @@
],
"license": "MIT",
"main": "index.js",
+ "maintainers": [
+ {
+ "name": "juliangruber",
+ "email": "julian@juliangruber.com"
+ }
+ ],
"name": "isarray",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git://github.com/juliangruber/isarray.git"
diff --git a/node_modules/are-we-there-yet/node_modules/readable-stream/package.json b/node_modules/are-we-there-yet/node_modules/readable-stream/package.json
index 90b9230..59ebcb8 100644
--- a/node_modules/are-we-there-yet/node_modules/readable-stream/package.json
+++ b/node_modules/are-we-there-yet/node_modules/readable-stream/package.json
@@ -1,27 +1,50 @@
{
- "_from": "readable-stream@^2.0.6",
+ "_args": [
+ [
+ {
+ "raw": "readable-stream@^2.0.6",
+ "scope": null,
+ "escapedName": "readable-stream",
+ "name": "readable-stream",
+ "rawSpec": "^2.0.6",
+ "spec": ">=2.0.6 <3.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\are-we-there-yet"
+ ]
+ ],
+ "_from": "readable-stream@>=2.0.6 <3.0.0",
"_id": "readable-stream@2.3.3",
- "_inBundle": false,
- "_integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "_inCache": true,
"_location": "/are-we-there-yet/readable-stream",
+ "_nodeVersion": "8.1.3",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/readable-stream-2.3.3.tgz_1498745872585_0.8663316275924444"
+ },
+ "_npmUser": {
+ "name": "matteo.collina",
+ "email": "hello@matteocollina.com"
+ },
+ "_npmVersion": "5.0.3",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "readable-stream@^2.0.6",
- "name": "readable-stream",
+ "scope": null,
"escapedName": "readable-stream",
+ "name": "readable-stream",
"rawSpec": "^2.0.6",
- "saveSpec": null,
- "fetchSpec": "^2.0.6"
+ "spec": ">=2.0.6 <3.0.0",
+ "type": "range"
},
"_requiredBy": [
"/are-we-there-yet"
],
"_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
"_shasum": "368f2512d79f9d46fdfc71349ae7878bbc1eb95c",
+ "_shrinkwrap": null,
"_spec": "readable-stream@^2.0.6",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/are-we-there-yet",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\are-we-there-yet",
"browser": {
"util": false,
"./readable.js": "./readable-browser.js",
@@ -32,7 +55,6 @@
"bugs": {
"url": "https://github.com/nodejs/readable-stream/issues"
},
- "bundleDependencies": false,
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -42,7 +64,6 @@
"string_decoder": "~1.0.3",
"util-deprecate": "~1.0.1"
},
- "deprecated": false,
"description": "Streams3, a user-land copy of the stream library from Node.js",
"devDependencies": {
"assert": "~1.4.0",
@@ -53,6 +74,13 @@
"tape": "~4.5.1",
"zuul": "~3.10.0"
},
+ "directories": {},
+ "dist": {
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "shasum": "368f2512d79f9d46fdfc71349ae7878bbc1eb95c",
+ "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz"
+ },
+ "gitHead": "cd59995050105b946884ee20e3bcadc252feda8c",
"homepage": "https://github.com/nodejs/readable-stream#readme",
"keywords": [
"readable",
@@ -61,12 +89,40 @@
],
"license": "MIT",
"main": "readable.js",
+ "maintainers": [
+ {
+ "name": "nodejs-foundation",
+ "email": "build@iojs.org"
+ },
+ {
+ "name": "matteo.collina",
+ "email": "hello@matteocollina.com"
+ },
+ {
+ "name": "cwmma",
+ "email": "calvin.metcalf@gmail.com"
+ },
+ {
+ "name": "isaacs",
+ "email": "i@izs.me"
+ },
+ {
+ "name": "tootallnate",
+ "email": "nathan@tootallnate.net"
+ },
+ {
+ "name": "rvagg",
+ "email": "rod@vagg.org"
+ }
+ ],
"name": "readable-stream",
"nyc": {
"include": [
"lib/**.js"
]
},
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git://github.com/nodejs/readable-stream.git"
diff --git a/node_modules/are-we-there-yet/node_modules/string_decoder/package.json b/node_modules/are-we-there-yet/node_modules/string_decoder/package.json
index a2f69bd..5722279 100644
--- a/node_modules/are-we-there-yet/node_modules/string_decoder/package.json
+++ b/node_modules/are-we-there-yet/node_modules/string_decoder/package.json
@@ -1,40 +1,68 @@
{
- "_from": "string_decoder@~1.0.3",
+ "_args": [
+ [
+ {
+ "raw": "string_decoder@~1.0.3",
+ "scope": null,
+ "escapedName": "string_decoder",
+ "name": "string_decoder",
+ "rawSpec": "~1.0.3",
+ "spec": ">=1.0.3 <1.1.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\are-we-there-yet\\node_modules\\readable-stream"
+ ]
+ ],
+ "_from": "string_decoder@>=1.0.3 <1.1.0",
"_id": "string_decoder@1.0.3",
- "_inBundle": false,
- "_integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "_inCache": true,
"_location": "/are-we-there-yet/string_decoder",
+ "_nodeVersion": "8.1.1",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/string_decoder-1.0.3.tgz_1498156574101_0.8198789858724922"
+ },
+ "_npmUser": {
+ "name": "cwmma",
+ "email": "calvin.metcalf@gmail.com"
+ },
+ "_npmVersion": "5.0.3",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "string_decoder@~1.0.3",
- "name": "string_decoder",
+ "scope": null,
"escapedName": "string_decoder",
+ "name": "string_decoder",
"rawSpec": "~1.0.3",
- "saveSpec": null,
- "fetchSpec": "~1.0.3"
+ "spec": ">=1.0.3 <1.1.0",
+ "type": "range"
},
"_requiredBy": [
"/are-we-there-yet/readable-stream"
],
"_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"_shasum": "0fc67d7c141825de94282dd536bec6b9bce860ab",
+ "_shrinkwrap": null,
"_spec": "string_decoder@~1.0.3",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/are-we-there-yet/node_modules/readable-stream",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\are-we-there-yet\\node_modules\\readable-stream",
"bugs": {
"url": "https://github.com/rvagg/string_decoder/issues"
},
- "bundleDependencies": false,
"dependencies": {
"safe-buffer": "~5.1.0"
},
- "deprecated": false,
"description": "The string_decoder module from Node core",
"devDependencies": {
"babel-polyfill": "^6.23.0",
"tap": "~0.4.8"
},
+ "directories": {},
+ "dist": {
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "shasum": "0fc67d7c141825de94282dd536bec6b9bce860ab",
+ "tarball": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+ },
+ "gitHead": "e97f24dd3d047b72b9836518e2a0788e2a6a2fdb",
"homepage": "https://github.com/rvagg/string_decoder",
"keywords": [
"string",
@@ -44,7 +72,31 @@
],
"license": "MIT",
"main": "lib/string_decoder.js",
+ "maintainers": [
+ {
+ "name": "cwmma",
+ "email": "calvin.metcalf@gmail.com"
+ },
+ {
+ "name": "matteo.collina",
+ "email": "hello@matteocollina.com"
+ },
+ {
+ "name": "nodejs-foundation",
+ "email": "build@iojs.org"
+ },
+ {
+ "name": "rvagg",
+ "email": "rod@vagg.org"
+ },
+ {
+ "name": "substack",
+ "email": "substack@gmail.com"
+ }
+ ],
"name": "string_decoder",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git://github.com/rvagg/string_decoder.git"
diff --git a/node_modules/are-we-there-yet/package.json b/node_modules/are-we-there-yet/package.json
index 3905f7e..b20caed 100644
--- a/node_modules/are-we-there-yet/package.json
+++ b/node_modules/are-we-there-yet/package.json
@@ -1,9 +1,32 @@
{
- "_from": "are-we-there-yet@~1.1.2",
+ "_args": [
+ [
+ {
+ "raw": "are-we-there-yet@~1.1.2",
+ "scope": null,
+ "escapedName": "are-we-there-yet",
+ "name": "are-we-there-yet",
+ "rawSpec": "~1.1.2",
+ "spec": ">=1.1.2 <1.2.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\npmlog"
+ ]
+ ],
+ "_from": "are-we-there-yet@>=1.1.2 <1.2.0",
"_id": "are-we-there-yet@1.1.4",
- "_inBundle": false,
- "_integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
+ "_inCache": true,
"_location": "/are-we-there-yet",
+ "_nodeVersion": "7.7.4",
+ "_npmOperationalInternal": {
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/are-we-there-yet-1.1.4.tgz_1492760790532_0.2543606413528323"
+ },
+ "_npmUser": {
+ "name": "iarna",
+ "email": "me@re-becca.org"
+ },
+ "_npmVersion": "4.5.0",
"_phantomChildren": {
"core-util-is": "1.0.2",
"inherits": "2.0.3",
@@ -12,22 +35,22 @@
"util-deprecate": "1.0.2"
},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "are-we-there-yet@~1.1.2",
- "name": "are-we-there-yet",
+ "scope": null,
"escapedName": "are-we-there-yet",
+ "name": "are-we-there-yet",
"rawSpec": "~1.1.2",
- "saveSpec": null,
- "fetchSpec": "~1.1.2"
+ "spec": ">=1.1.2 <1.2.0",
+ "type": "range"
},
"_requiredBy": [
"/npmlog"
],
"_resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
"_shasum": "bb5dca382bb94f05e15194373d16fd3ba1ca110d",
+ "_shrinkwrap": null,
"_spec": "are-we-there-yet@~1.1.2",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/npmlog",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\npmlog",
"author": {
"name": "Rebecca Turner",
"url": "http://re-becca.org"
@@ -35,17 +58,20 @@
"bugs": {
"url": "https://github.com/iarna/are-we-there-yet/issues"
},
- "bundleDependencies": false,
"dependencies": {
"delegates": "^1.0.0",
"readable-stream": "^2.0.6"
},
- "deprecated": false,
"description": "Keep track of the overall completion of many disparate processes",
"devDependencies": {
"standard": "^6.0.8",
"tap": "^5.7.0"
},
+ "directories": {},
+ "dist": {
+ "shasum": "bb5dca382bb94f05e15194373d16fd3ba1ca110d",
+ "tarball": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz"
+ },
"files": [
"index.js",
"tracker-base.js",
@@ -54,10 +80,19 @@
"tracker.js",
"CHANGES.md"
],
+ "gitHead": "aea89b9c277c0674a2485a3eb94a7269bb2346be",
"homepage": "https://github.com/iarna/are-we-there-yet",
"license": "ISC",
"main": "index.js",
+ "maintainers": [
+ {
+ "name": "iarna",
+ "email": "me@re-becca.org"
+ }
+ ],
"name": "are-we-there-yet",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/iarna/are-we-there-yet.git"
diff --git a/node_modules/arr-diff/package.json b/node_modules/arr-diff/package.json
index b82c6ad..23ce0ae 100644
--- a/node_modules/arr-diff/package.json
+++ b/node_modules/arr-diff/package.json
@@ -1,27 +1,46 @@
{
- "_from": "arr-diff@^2.0.0",
+ "_args": [
+ [
+ {
+ "raw": "arr-diff@^2.0.0",
+ "scope": null,
+ "escapedName": "arr-diff",
+ "name": "arr-diff",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\micromatch"
+ ]
+ ],
+ "_from": "arr-diff@>=2.0.0 <3.0.0",
"_id": "arr-diff@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "_inCache": true,
"_location": "/arr-diff",
+ "_nodeVersion": "5.0.0",
+ "_npmUser": {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ "_npmVersion": "3.3.6",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "arr-diff@^2.0.0",
- "name": "arr-diff",
+ "scope": null,
"escapedName": "arr-diff",
+ "name": "arr-diff",
"rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
},
"_requiredBy": [
"/micromatch"
],
"_resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
"_shasum": "8f3b827f955a8bd669697e4a4256ac3ceae356cf",
+ "_shrinkwrap": null,
"_spec": "arr-diff@^2.0.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/micromatch",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
@@ -29,11 +48,9 @@
"bugs": {
"url": "https://github.com/jonschlinkert/arr-diff/issues"
},
- "bundleDependencies": false,
"dependencies": {
"arr-flatten": "^1.0.1"
},
- "deprecated": false,
"description": "Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.",
"devDependencies": {
"array-differ": "^1.0.0",
@@ -43,12 +60,18 @@
"mocha": "*",
"should": "*"
},
+ "directories": {},
+ "dist": {
+ "shasum": "8f3b827f955a8bd669697e4a4256ac3ceae356cf",
+ "tarball": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz"
+ },
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
+ "gitHead": "b89f54eb88ca51afd0e0ea6be9a4a63e5ccecf27",
"homepage": "https://github.com/jonschlinkert/arr-diff",
"keywords": [
"arr",
@@ -59,7 +82,23 @@
],
"license": "MIT",
"main": "index.js",
+ "maintainers": [
+ {
+ "name": "doowb",
+ "email": "brian.woodward@gmail.com"
+ },
+ {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ {
+ "name": "paulmillr",
+ "email": "paul@paulmillr.com"
+ }
+ ],
"name": "arr-diff",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/jonschlinkert/arr-diff.git"
diff --git a/node_modules/arr-flatten/package.json b/node_modules/arr-flatten/package.json
index d1171e2..df54474 100644
--- a/node_modules/arr-flatten/package.json
+++ b/node_modules/arr-flatten/package.json
@@ -1,27 +1,50 @@
{
- "_from": "arr-flatten@^1.0.1",
+ "_args": [
+ [
+ {
+ "raw": "arr-flatten@^1.0.1",
+ "scope": null,
+ "escapedName": "arr-flatten",
+ "name": "arr-flatten",
+ "rawSpec": "^1.0.1",
+ "spec": ">=1.0.1 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\arr-diff"
+ ]
+ ],
+ "_from": "arr-flatten@>=1.0.1 <2.0.0",
"_id": "arr-flatten@1.1.0",
- "_inBundle": false,
- "_integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "_inCache": true,
"_location": "/arr-flatten",
+ "_nodeVersion": "7.7.3",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/arr-flatten-1.1.0.tgz_1499280630530_0.4138362631201744"
+ },
+ "_npmUser": {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ "_npmVersion": "5.0.4",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "arr-flatten@^1.0.1",
- "name": "arr-flatten",
+ "scope": null,
"escapedName": "arr-flatten",
+ "name": "arr-flatten",
"rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
+ "spec": ">=1.0.1 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/arr-diff"
],
"_resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
"_shasum": "36048bbff4e7b47e136644316c99669ea5ae91f1",
+ "_shrinkwrap": null,
"_spec": "arr-flatten@^1.0.1",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/arr-diff",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\arr-diff",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
@@ -29,7 +52,6 @@
"bugs": {
"url": "https://github.com/jonschlinkert/arr-flatten/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "Jon Schlinkert",
@@ -40,7 +62,7 @@
"url": "https://lukeed.com"
}
],
- "deprecated": false,
+ "dependencies": {},
"description": "Recursively flatten an array or arrays.",
"devDependencies": {
"ansi-bold": "^0.1.1",
@@ -60,12 +82,19 @@
"utils-flatten": "^1.0.0",
"write": "^0.3.3"
},
+ "directories": {},
+ "dist": {
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "shasum": "36048bbff4e7b47e136644316c99669ea5ae91f1",
+ "tarball": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"
+ },
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
+ "gitHead": "76a1ae28b03fdb1cbe5d49fa521bc4807b9f94d3",
"homepage": "https://github.com/jonschlinkert/arr-flatten",
"keywords": [
"arr",
@@ -80,7 +109,15 @@
],
"license": "MIT",
"main": "index.js",
+ "maintainers": [
+ {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ }
+ ],
"name": "arr-flatten",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/jonschlinkert/arr-flatten.git"
diff --git a/node_modules/array-differ/package.json b/node_modules/array-differ/package.json
index 835f308..8c12a26 100644
--- a/node_modules/array-differ/package.json
+++ b/node_modules/array-differ/package.json
@@ -1,27 +1,45 @@
{
- "_from": "array-differ@^1.0.0",
+ "_args": [
+ [
+ {
+ "raw": "array-differ@^1.0.0",
+ "scope": null,
+ "escapedName": "array-differ",
+ "name": "array-differ",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\gulp-util"
+ ]
+ ],
+ "_from": "array-differ@>=1.0.0 <2.0.0",
"_id": "array-differ@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
+ "_inCache": true,
"_location": "/array-differ",
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "1.4.14",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "array-differ@^1.0.0",
- "name": "array-differ",
+ "scope": null,
"escapedName": "array-differ",
+ "name": "array-differ",
"rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/gulp-util"
],
"_resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
"_shasum": "eff52e3758249d33be402b8bb8e564bb2b5d4031",
+ "_shrinkwrap": null,
"_spec": "array-differ@^1.0.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/gulp-util",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\gulp-util",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -30,19 +48,24 @@
"bugs": {
"url": "https://github.com/sindresorhus/array-differ/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
+ "dependencies": {},
"description": "Create an array with values that are present in the first input array but not additional ones",
"devDependencies": {
"mocha": "*"
},
+ "directories": {},
+ "dist": {
+ "shasum": "eff52e3758249d33be402b8bb8e564bb2b5d4031",
+ "tarball": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz"
+ },
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
- "homepage": "https://github.com/sindresorhus/array-differ#readme",
+ "gitHead": "e91802976c4710eef8dea2090d48e48525cf41b1",
+ "homepage": "https://github.com/sindresorhus/array-differ",
"keywords": [
"array",
"difference",
@@ -52,10 +75,18 @@
"exclude"
],
"license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
"name": "array-differ",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
- "url": "git+https://github.com/sindresorhus/array-differ.git"
+ "url": "git://github.com/sindresorhus/array-differ.git"
},
"scripts": {
"test": "mocha"
diff --git a/node_modules/array-each/package.json b/node_modules/array-each/package.json
index 47f2508..7853714 100644
--- a/node_modules/array-each/package.json
+++ b/node_modules/array-each/package.json
@@ -1,27 +1,50 @@
{
- "_from": "array-each@^1.0.1",
+ "_args": [
+ [
+ {
+ "raw": "array-each@^1.0.1",
+ "scope": null,
+ "escapedName": "array-each",
+ "name": "array-each",
+ "rawSpec": "^1.0.1",
+ "spec": ">=1.0.1 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\object.defaults"
+ ]
+ ],
+ "_from": "array-each@>=1.0.1 <2.0.0",
"_id": "array-each@1.0.1",
- "_inBundle": false,
- "_integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=",
+ "_inCache": true,
"_location": "/array-each",
+ "_nodeVersion": "7.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/array-each-1.0.1.tgz_1488156048457_0.42185514722950757"
+ },
+ "_npmUser": {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ "_npmVersion": "4.1.2",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "array-each@^1.0.1",
- "name": "array-each",
+ "scope": null,
"escapedName": "array-each",
+ "name": "array-each",
"rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
+ "spec": ">=1.0.1 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/object.defaults"
],
"_resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
"_shasum": "a794af0c05ab1752846ee753a1f211a05ba0c44f",
+ "_shrinkwrap": null,
"_spec": "array-each@^1.0.1",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/object.defaults",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\object.defaults",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
@@ -29,19 +52,24 @@
"bugs": {
"url": "https://github.com/jonschlinkert/array-each/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
+ "dependencies": {},
"description": "Loop over each item in an array and call the given function on every element.",
"devDependencies": {
"gulp-format-md": "^0.1.11",
"mocha": "^3.2.0"
},
+ "directories": {},
+ "dist": {
+ "shasum": "a794af0c05ab1752846ee753a1f211a05ba0c44f",
+ "tarball": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz"
+ },
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
+ "gitHead": "a752d70897f25abfd38bfb51bb1b3a06ffcd2aed",
"homepage": "https://github.com/jonschlinkert/array-each",
"keywords": [
"array",
@@ -49,7 +77,15 @@
],
"license": "MIT",
"main": "index.js",
+ "maintainers": [
+ {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ }
+ ],
"name": "array-each",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/jonschlinkert/array-each.git"
diff --git a/node_modules/array-find-index/package.json b/node_modules/array-find-index/package.json
index 79de569..806c33d 100644
--- a/node_modules/array-find-index/package.json
+++ b/node_modules/array-find-index/package.json
@@ -1,27 +1,50 @@
{
- "_from": "array-find-index@^1.0.1",
+ "_args": [
+ [
+ {
+ "raw": "array-find-index@^1.0.1",
+ "scope": null,
+ "escapedName": "array-find-index",
+ "name": "array-find-index",
+ "rawSpec": "^1.0.1",
+ "spec": ">=1.0.1 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\currently-unhandled"
+ ]
+ ],
+ "_from": "array-find-index@>=1.0.1 <2.0.0",
"_id": "array-find-index@1.0.2",
- "_inBundle": false,
- "_integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "_inCache": true,
"_location": "/array-find-index",
+ "_nodeVersion": "4.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/array-find-index-1.0.2.tgz_1475224789159_0.7274378235451877"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.9",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "array-find-index@^1.0.1",
- "name": "array-find-index",
+ "scope": null,
"escapedName": "array-find-index",
+ "name": "array-find-index",
"rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
+ "spec": ">=1.0.1 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/currently-unhandled"
],
"_resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
"_shasum": "df010aa1287e164bbda6f9723b0a96a1ec4187a1",
+ "_shrinkwrap": null,
"_spec": "array-find-index@^1.0.1",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/currently-unhandled",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\currently-unhandled",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -30,19 +53,24 @@
"bugs": {
"url": "https://github.com/sindresorhus/array-find-index/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
+ "dependencies": {},
"description": "ES2015 `Array#findIndex()` ponyfill",
"devDependencies": {
"ava": "*",
"xo": "*"
},
+ "directories": {},
+ "dist": {
+ "shasum": "df010aa1287e164bbda6f9723b0a96a1ec4187a1",
+ "tarball": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz"
+ },
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
+ "gitHead": "983f4c827ad22fa0353182b1ddcbfaecd4412859",
"homepage": "https://github.com/sindresorhus/array-find-index#readme",
"keywords": [
"es2015",
@@ -55,7 +83,15 @@
"array"
],
"license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
"name": "array-find-index",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/array-find-index.git"
diff --git a/node_modules/array-slice/package.json b/node_modules/array-slice/package.json
index 30ad836..b326445 100644
--- a/node_modules/array-slice/package.json
+++ b/node_modules/array-slice/package.json
@@ -1,27 +1,50 @@
{
- "_from": "array-slice@^1.0.0",
+ "_args": [
+ [
+ {
+ "raw": "array-slice@^1.0.0",
+ "scope": null,
+ "escapedName": "array-slice",
+ "name": "array-slice",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\object.defaults"
+ ]
+ ],
+ "_from": "array-slice@>=1.0.0 <2.0.0",
"_id": "array-slice@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-5zA08A3MH0CHYAj9IP6ud71LfC8=",
+ "_inCache": true,
"_location": "/array-slice",
+ "_nodeVersion": "7.6.0",
+ "_npmOperationalInternal": {
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/array-slice-1.0.0.tgz_1488482499689_0.4508651338983327"
+ },
+ "_npmUser": {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ "_npmVersion": "4.1.2",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "array-slice@^1.0.0",
- "name": "array-slice",
+ "scope": null,
"escapedName": "array-slice",
+ "name": "array-slice",
"rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/object.defaults"
],
"_resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.0.0.tgz",
"_shasum": "e73034f00dcc1f40876008fd20feae77bd4b7c2f",
+ "_shrinkwrap": null,
"_spec": "array-slice@^1.0.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/object.defaults",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\object.defaults",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
@@ -29,19 +52,24 @@
"bugs": {
"url": "https://github.com/jonschlinkert/array-slice/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
+ "dependencies": {},
"description": "Array-slice method. Slices `array` from the `start` index up to, but not including, the `end` index.",
"devDependencies": {
"gulp-format-md": "^0.1.11",
"mocha": "^3.2.0"
},
+ "directories": {},
+ "dist": {
+ "shasum": "e73034f00dcc1f40876008fd20feae77bd4b7c2f",
+ "tarball": "https://registry.npmjs.org/array-slice/-/array-slice-1.0.0.tgz"
+ },
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
+ "gitHead": "834333ad84ed4d354532d43350a8b9cd48b5751b",
"homepage": "https://github.com/jonschlinkert/array-slice",
"keywords": [
"array",
@@ -53,7 +81,19 @@
],
"license": "MIT",
"main": "index.js",
+ "maintainers": [
+ {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ {
+ "name": "doowb",
+ "email": "brian.woodward@gmail.com"
+ }
+ ],
"name": "array-slice",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/jonschlinkert/array-slice.git"
diff --git a/node_modules/array-uniq/package.json b/node_modules/array-uniq/package.json
index e590d12..a520ca7 100644
--- a/node_modules/array-uniq/package.json
+++ b/node_modules/array-uniq/package.json
@@ -1,27 +1,50 @@
{
- "_from": "array-uniq@^1.0.2",
+ "_args": [
+ [
+ {
+ "raw": "array-uniq@^1.0.2",
+ "scope": null,
+ "escapedName": "array-uniq",
+ "name": "array-uniq",
+ "rawSpec": "^1.0.2",
+ "spec": ">=1.0.2 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\gulp-util"
+ ]
+ ],
+ "_from": "array-uniq@>=1.0.2 <2.0.0",
"_id": "array-uniq@1.0.3",
- "_inBundle": false,
- "_integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "_inCache": true,
"_location": "/array-uniq",
+ "_nodeVersion": "4.4.2",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/array-uniq-1.0.3.tgz_1466079716839_0.9139188586268574"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.0",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "array-uniq@^1.0.2",
- "name": "array-uniq",
+ "scope": null,
"escapedName": "array-uniq",
+ "name": "array-uniq",
"rawSpec": "^1.0.2",
- "saveSpec": null,
- "fetchSpec": "^1.0.2"
+ "spec": ">=1.0.2 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/gulp-util"
],
"_resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
"_shasum": "af6ac877a25cc7f74e058894753858dfdb24fdb6",
+ "_shrinkwrap": null,
"_spec": "array-uniq@^1.0.2",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/gulp-util",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\gulp-util",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -30,8 +53,7 @@
"bugs": {
"url": "https://github.com/sindresorhus/array-uniq/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
+ "dependencies": {},
"description": "Create an array without duplicates",
"devDependencies": {
"ava": "*",
@@ -39,12 +61,18 @@
"require-uncached": "^1.0.2",
"xo": "*"
},
+ "directories": {},
+ "dist": {
+ "shasum": "af6ac877a25cc7f74e058894753858dfdb24fdb6",
+ "tarball": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz"
+ },
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
+ "gitHead": "3b5bf5a90a585b3950284d575f33d09663f6083a",
"homepage": "https://github.com/sindresorhus/array-uniq#readme",
"keywords": [
"array",
@@ -57,7 +85,15 @@
"remove"
],
"license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
"name": "array-uniq",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/array-uniq.git"
diff --git a/node_modules/array-unique/package.json b/node_modules/array-unique/package.json
index a643ba6..0d9a3c0 100755
--- a/node_modules/array-unique/package.json
+++ b/node_modules/array-unique/package.json
@@ -1,27 +1,46 @@
{
- "_from": "array-unique@^0.2.1",
+ "_args": [
+ [
+ {
+ "raw": "array-unique@^0.2.1",
+ "scope": null,
+ "escapedName": "array-unique",
+ "name": "array-unique",
+ "rawSpec": "^0.2.1",
+ "spec": ">=0.2.1 <0.3.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\micromatch"
+ ]
+ ],
+ "_from": "array-unique@>=0.2.1 <0.3.0",
"_id": "array-unique@0.2.1",
- "_inBundle": false,
- "_integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "_inCache": true,
"_location": "/array-unique",
+ "_nodeVersion": "1.6.2",
+ "_npmUser": {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ "_npmVersion": "2.7.1",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "array-unique@^0.2.1",
- "name": "array-unique",
+ "scope": null,
"escapedName": "array-unique",
+ "name": "array-unique",
"rawSpec": "^0.2.1",
- "saveSpec": null,
- "fetchSpec": "^0.2.1"
+ "spec": ">=0.2.1 <0.3.0",
+ "type": "range"
},
"_requiredBy": [
"/micromatch"
],
"_resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
"_shasum": "a1d97ccafcbc2625cc70fadceb36a50c58b01a53",
+ "_shrinkwrap": null,
"_spec": "array-unique@^0.2.1",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/micromatch",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
@@ -29,8 +48,7 @@
"bugs": {
"url": "https://github.com/jonschlinkert/array-unique/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
+ "dependencies": {},
"description": "Return an array free of duplicate values. Fastest ES5 implementation.",
"devDependencies": {
"array-uniq": "^1.0.2",
@@ -38,19 +56,33 @@
"mocha": "*",
"should": "*"
},
+ "directories": {},
+ "dist": {
+ "shasum": "a1d97ccafcbc2625cc70fadceb36a50c58b01a53",
+ "tarball": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz"
+ },
"engines": {
"node": ">=0.10.0"
},
"files": [
"index.js"
],
+ "gitHead": "36fde8e586fb7cf880b8b3aa6515df889e64ed85",
"homepage": "https://github.com/jonschlinkert/array-unique",
"license": {
"type": "MIT",
"url": "https://github.com/jonschlinkert/array-unique/blob/master/LICENSE"
},
"main": "index.js",
+ "maintainers": [
+ {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ }
+ ],
"name": "array-unique",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git://github.com/jonschlinkert/array-unique.git"
diff --git a/node_modules/asn1/package.json b/node_modules/asn1/package.json
index 6bcb9ee..0445deb 100644
--- a/node_modules/asn1/package.json
+++ b/node_modules/asn1/package.json
@@ -1,27 +1,45 @@
{
- "_from": "asn1@~0.2.3",
+ "_args": [
+ [
+ {
+ "raw": "asn1@~0.2.3",
+ "scope": null,
+ "escapedName": "asn1",
+ "name": "asn1",
+ "rawSpec": "~0.2.3",
+ "spec": ">=0.2.3 <0.3.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\sshpk"
+ ]
+ ],
+ "_from": "asn1@>=0.2.3 <0.3.0",
"_id": "asn1@0.2.3",
- "_inBundle": false,
- "_integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+ "_inCache": true,
"_location": "/asn1",
+ "_npmUser": {
+ "name": "pfmooney",
+ "email": "patrick.f.mooney@gmail.com"
+ },
+ "_npmVersion": "1.4.28",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "asn1@~0.2.3",
- "name": "asn1",
+ "scope": null,
"escapedName": "asn1",
+ "name": "asn1",
"rawSpec": "~0.2.3",
- "saveSpec": null,
- "fetchSpec": "~0.2.3"
+ "spec": ">=0.2.3 <0.3.0",
+ "type": "range"
},
"_requiredBy": [
"/sshpk"
],
"_resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
"_shasum": "dac8787713c9966849fc8180777ebe9c1ddf3b86",
+ "_shrinkwrap": null,
"_spec": "asn1@~0.2.3",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/sshpk",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\sshpk",
"author": {
"name": "Mark Cavage",
"email": "mcavage@gmail.com"
@@ -29,7 +47,6 @@
"bugs": {
"url": "https://github.com/mcavage/node-asn1/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "David Gwynne",
@@ -45,15 +62,31 @@
}
],
"dependencies": {},
- "deprecated": false,
"description": "Contains parsers and serializers for ASN.1 (currently BER only)",
"devDependencies": {
"tap": "0.4.8"
},
- "homepage": "https://github.com/mcavage/node-asn1#readme",
+ "directories": {},
+ "dist": {
+ "shasum": "dac8787713c9966849fc8180777ebe9c1ddf3b86",
+ "tarball": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"
+ },
+ "homepage": "https://github.com/mcavage/node-asn1",
"license": "MIT",
"main": "lib/index.js",
+ "maintainers": [
+ {
+ "name": "mcavage",
+ "email": "mcavage@gmail.com"
+ },
+ {
+ "name": "pfmooney",
+ "email": "patrick.f.mooney@gmail.com"
+ }
+ ],
"name": "asn1",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git://github.com/mcavage/node-asn1.git"
diff --git a/node_modules/assert-plus/package.json b/node_modules/assert-plus/package.json
index cad0fb6..14eff4a 100644
--- a/node_modules/assert-plus/package.json
+++ b/node_modules/assert-plus/package.json
@@ -1,19 +1,37 @@
{
- "_from": "assert-plus@^1.0.0",
+ "_args": [
+ [
+ {
+ "raw": "assert-plus@^1.0.0",
+ "scope": null,
+ "escapedName": "assert-plus",
+ "name": "assert-plus",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\http-signature"
+ ]
+ ],
+ "_from": "assert-plus@>=1.0.0 <2.0.0",
"_id": "assert-plus@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "_inCache": true,
"_location": "/assert-plus",
+ "_nodeVersion": "0.10.40",
+ "_npmUser": {
+ "name": "pfmooney",
+ "email": "patrick.f.mooney@gmail.com"
+ },
+ "_npmVersion": "3.3.9",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "assert-plus@^1.0.0",
- "name": "assert-plus",
+ "scope": null,
"escapedName": "assert-plus",
+ "name": "assert-plus",
"rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/dashdash",
@@ -25,8 +43,9 @@
],
"_resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"_shasum": "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525",
+ "_shrinkwrap": null,
"_spec": "assert-plus@^1.0.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/http-signature",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\http-signature",
"author": {
"name": "Mark Cavage",
"email": "mcavage@gmail.com"
@@ -34,7 +53,6 @@
"bugs": {
"url": "https://github.com/mcavage/node-assert-plus/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "Dave Eddy",
@@ -62,20 +80,35 @@
}
],
"dependencies": {},
- "deprecated": false,
"description": "Extra assertions on top of node's assert module",
"devDependencies": {
"faucet": "0.0.1",
"tape": "4.2.2"
},
+ "directories": {},
+ "dist": {
+ "shasum": "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525",
+ "tarball": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+ },
"engines": {
"node": ">=0.8"
},
"homepage": "https://github.com/mcavage/node-assert-plus#readme",
"license": "MIT",
"main": "./assert.js",
+ "maintainers": [
+ {
+ "name": "mcavage",
+ "email": "mcavage@gmail.com"
+ },
+ {
+ "name": "pfmooney",
+ "email": "patrick.f.mooney@gmail.com"
+ }
+ ],
"name": "assert-plus",
"optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/mcavage/node-assert-plus.git"
diff --git a/node_modules/async-each/package.json b/node_modules/async-each/package.json
index c70311d..c9c924c 100644
--- a/node_modules/async-each/package.json
+++ b/node_modules/async-each/package.json
@@ -1,27 +1,50 @@
{
- "_from": "async-each@^1.0.0",
+ "_args": [
+ [
+ {
+ "raw": "async-each@^1.0.0",
+ "scope": null,
+ "escapedName": "async-each",
+ "name": "async-each",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\chokidar"
+ ]
+ ],
+ "_from": "async-each@>=1.0.0 <2.0.0",
"_id": "async-each@1.0.1",
- "_inBundle": false,
- "_integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
+ "_inCache": true,
"_location": "/async-each",
+ "_nodeVersion": "6.3.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/async-each-1.0.1.tgz_1472080935649_0.032988218357786536"
+ },
+ "_npmUser": {
+ "name": "paulmillr",
+ "email": "paul@paulmillr.com"
+ },
+ "_npmVersion": "3.10.3",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "async-each@^1.0.0",
- "name": "async-each",
+ "scope": null,
"escapedName": "async-each",
+ "name": "async-each",
"rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/chokidar"
],
"_resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
"_shasum": "19d386a1d9edc6e7c1c85d388aedbcc56d33602d",
+ "_shrinkwrap": null,
"_spec": "async-each@^1.0.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/chokidar",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\chokidar",
"author": {
"name": "Paul Miller",
"url": "http://paulmillr.com/"
@@ -29,10 +52,15 @@
"bugs": {
"url": "https://github.com/paulmillr/async-each/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "No-bullshit, ultra-simple, 35-lines-of-code async parallel forEach / map function for JavaScript.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "19d386a1d9edc6e7c1c85d388aedbcc56d33602d",
+ "tarball": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz"
+ },
+ "gitHead": "f2342d85633d0dc1034a49387ca01c08c1189823",
"homepage": "https://github.com/paulmillr/async-each/",
"keywords": [
"async",
@@ -51,10 +79,23 @@
],
"license": "MIT",
"main": "index.js",
+ "maintainers": [
+ {
+ "name": "paulmillr",
+ "email": "paul@paulmillr.com"
+ },
+ {
+ "name": "es128",
+ "email": "elan.shanker+npm@gmail.com"
+ }
+ ],
"name": "async-each",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git://github.com/paulmillr/async-each.git"
},
+ "scripts": {},
"version": "1.0.1"
}
diff --git a/node_modules/async-foreach/package.json b/node_modules/async-foreach/package.json
index 9df6968..388bad2 100644
--- a/node_modules/async-foreach/package.json
+++ b/node_modules/async-foreach/package.json
@@ -1,27 +1,45 @@
{
- "_from": "async-foreach@^0.1.3",
+ "_args": [
+ [
+ {
+ "raw": "async-foreach@^0.1.3",
+ "scope": null,
+ "escapedName": "async-foreach",
+ "name": "async-foreach",
+ "rawSpec": "^0.1.3",
+ "spec": ">=0.1.3 <0.2.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\node-sass"
+ ]
+ ],
+ "_from": "async-foreach@>=0.1.3 <0.2.0",
"_id": "async-foreach@0.1.3",
- "_inBundle": false,
- "_integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+ "_inCache": true,
"_location": "/async-foreach",
+ "_npmUser": {
+ "name": "cowboy",
+ "email": "cowboy@rj3.net"
+ },
+ "_npmVersion": "1.1.70",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "async-foreach@^0.1.3",
- "name": "async-foreach",
+ "scope": null,
"escapedName": "async-foreach",
+ "name": "async-foreach",
"rawSpec": "^0.1.3",
- "saveSpec": null,
- "fetchSpec": "^0.1.3"
+ "spec": ">=0.1.3 <0.2.0",
+ "type": "range"
},
"_requiredBy": [
"/node-sass"
],
"_resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
"_shasum": "36121f845c0578172de419a97dbeb1d16ec34542",
+ "_shrinkwrap": null,
"_spec": "async-foreach@^0.1.3",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/node-sass",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\node-sass",
"author": {
"name": "\"Cowboy\" Ben Alman",
"url": "http://benalman.com/"
@@ -29,11 +47,14 @@
"bugs": {
"url": "https://github.com/cowboy/javascript-sync-async-foreach/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "An optionally-asynchronous forEach with an interesting interface.",
"devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "36121f845c0578172de419a97dbeb1d16ec34542",
+ "tarball": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz"
+ },
"engines": {
"node": "*"
},
@@ -46,7 +67,16 @@
"foreach"
],
"main": "lib/foreach",
+ "maintainers": [
+ {
+ "name": "cowboy",
+ "email": "cowboy@rj3.net"
+ }
+ ],
"name": "async-foreach",
+ "optionalDependencies": {},
+ "readme": "# JavaScript Sync/Async forEach\n\nAn optionally-asynchronous forEach with an interesting interface.\n\n## Getting Started\n\nThis code should work just fine in Node.js:\n\nFirst, install the module with: `npm install async-foreach`\n\n```javascript\nvar forEach = require('async-foreach').forEach;\nforEach([\"a\", \"b\", \"c\"], function(item, index, arr) {\n console.log(\"each\", item, index, arr);\n});\n// logs:\n// each a 0 [\"a\", \"b\", \"c\"]\n// each b 1 [\"a\", \"b\", \"c\"]\n// each c 2 [\"a\", \"b\", \"c\"]\n```\n\nOr in the browser:\n\n```html\n\n\n```\n\nIn the browser, you can attach the forEach method to any object.\n\n```html\n\n\n\n```\n\n## The General Idea (Why I thought this was worth sharing)\n\nThe idea is to allow the callback to decide _at runtime_ whether the loop will be synchronous or asynchronous. By using `this` in a creative way (in situations where that value isn't already spoken for), an entire control API can be offered without over-complicating function signatures.\n\n```javascript\nforEach(arr, function(item, index) {\n // Synchronous.\n});\n\nforEach(arr, function(item, index) {\n // Only when `this.async` is called does iteration becomes asynchronous. The\n // loop won't be continued until the `done` function is executed.\n var done = this.async();\n // Continue in one second.\n setTimeout(done, 1000);\n});\n\nforEach(arr, function(item, index) {\n // Break out of synchronous iteration early by returning false.\n return index !== 1;\n});\n\nforEach(arr, function(item, index) {\n // Break out of asynchronous iteration early...\n var done = this.async();\n // ...by passing false to the done function.\n setTimeout(function() {\n done(index !== 1);\n });\n});\n```\n\n## Examples\nSee the unit tests for more examples.\n\n```javascript\n// Generic \"done\" callback.\nfunction allDone(notAborted, arr) {\n console.log(\"done\", notAborted, arr);\n}\n\n// Synchronous.\nforEach([\"a\", \"b\", \"c\"], function(item, index, arr) {\n console.log(\"each\", item, index, arr);\n}, allDone);\n// logs:\n// each a 0 [\"a\", \"b\", \"c\"]\n// each b 1 [\"a\", \"b\", \"c\"]\n// each c 2 [\"a\", \"b\", \"c\"]\n// done true [\"a\", \"b\", \"c\"]\n\n// Synchronous with early abort.\nforEach([\"a\", \"b\", \"c\"], function(item, index, arr) {\n console.log(\"each\", item, index, arr);\n if (item === \"b\") { return false; }\n}, allDone);\n// logs:\n// each a 0 [\"a\", \"b\", \"c\"]\n// each b 1 [\"a\", \"b\", \"c\"]\n// done false [\"a\", \"b\", \"c\"]\n\n// Asynchronous.\nforEach([\"a\", \"b\", \"c\"], function(item, index, arr) {\n console.log(\"each\", item, index, arr);\n var done = this.async();\n setTimeout(function() {\n done();\n }, 500);\n}, allDone);\n// logs:\n// each a 0 [\"a\", \"b\", \"c\"]\n// each b 1 [\"a\", \"b\", \"c\"]\n// each c 2 [\"a\", \"b\", \"c\"]\n// done true [\"a\", \"b\", \"c\"]\n\n// Asynchronous with early abort.\nforEach([\"a\", \"b\", \"c\"], function(item, index, arr) {\n console.log(\"each\", item, index, arr);\n var done = this.async();\n setTimeout(function() {\n done(item !== \"b\");\n }, 500);\n}, allDone);\n// logs:\n// each a 0 [\"a\", \"b\", \"c\"]\n// each b 1 [\"a\", \"b\", \"c\"]\n// done false [\"a\", \"b\", \"c\"]\n\n// Not actually asynchronous.\nforEach([\"a\", \"b\", \"c\"], function(item, index, arr) {\n console.log(\"each\", item, index, arr);\n var done = this.async()\n done();\n}, allDone);\n// logs:\n// each a 0 [\"a\", \"b\", \"c\"]\n// each b 1 [\"a\", \"b\", \"c\"]\n// each c 2 [\"a\", \"b\", \"c\"]\n// done true [\"a\", \"b\", \"c\"]\n\n// Not actually asynchronous with early abort.\nforEach([\"a\", \"b\", \"c\"], function(item, index, arr) {\n console.log(\"each\", item, index, arr);\n var done = this.async();\n done(item !== \"b\");\n}, allDone);\n// logs:\n// each a 0 [\"a\", \"b\", \"c\"]\n// each b 1 [\"a\", \"b\", \"c\"]\n// done false [\"a\", \"b\", \"c\"]\n```\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [grunt](https://github.com/cowboy/grunt).\n\n_Also, please don't edit files in the \"dist\" subdirectory as they are generated via grunt. You'll find source code in the \"lib\" subdirectory!_\n\n## Release History\n\n04/29/2013\nv0.1.3\nRemoved hard Node.js version dependency.\n\n11/17/2011\nv0.1.2\nAdding sparse array support.\nInvalid length properties are now sanitized.\nThis closes issue #1 (like a boss).\n\n11/11/2011\nv0.1.1\nRefactored code to be much simpler. Yay for unit tests!\n\n11/11/2011\nv0.1.0\nInitial Release.\n\n## License\nCopyright (c) 2012 \"Cowboy\" Ben Alman \nLicensed under the MIT license. \n\n",
+ "readmeFilename": "README.md",
"repository": {
"type": "git",
"url": "git://github.com/cowboy/javascript-sync-async-foreach.git"
diff --git a/node_modules/asynckit/package.json b/node_modules/asynckit/package.json
index e31b8b4..00fa2d1 100644
--- a/node_modules/asynckit/package.json
+++ b/node_modules/asynckit/package.json
@@ -1,27 +1,50 @@
{
- "_from": "asynckit@^0.4.0",
+ "_args": [
+ [
+ {
+ "raw": "asynckit@^0.4.0",
+ "scope": null,
+ "escapedName": "asynckit",
+ "name": "asynckit",
+ "rawSpec": "^0.4.0",
+ "spec": ">=0.4.0 <0.5.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\form-data"
+ ]
+ ],
+ "_from": "asynckit@>=0.4.0 <0.5.0",
"_id": "asynckit@0.4.0",
- "_inBundle": false,
- "_integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "_inCache": true,
"_location": "/asynckit",
+ "_nodeVersion": "0.12.11",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/asynckit-0.4.0.tgz_1465928940169_0.8008207362145185"
+ },
+ "_npmUser": {
+ "name": "alexindigo",
+ "email": "iam@alexindigo.com"
+ },
+ "_npmVersion": "2.15.6",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "asynckit@^0.4.0",
- "name": "asynckit",
+ "scope": null,
"escapedName": "asynckit",
+ "name": "asynckit",
"rawSpec": "^0.4.0",
- "saveSpec": null,
- "fetchSpec": "^0.4.0"
+ "spec": ">=0.4.0 <0.5.0",
+ "type": "range"
},
"_requiredBy": [
"/form-data"
],
"_resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"_shasum": "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79",
+ "_shrinkwrap": null,
"_spec": "asynckit@^0.4.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/form-data",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\form-data",
"author": {
"name": "Alex Indigo",
"email": "iam@alexindigo.com"
@@ -29,9 +52,7 @@
"bugs": {
"url": "https://github.com/alexindigo/asynckit/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "Minimal async jobs utility library, with streams support",
"devDependencies": {
"browserify": "^13.0.0",
@@ -48,6 +69,12 @@
"tap-spec": "^4.1.1",
"tape": "^4.5.1"
},
+ "directories": {},
+ "dist": {
+ "shasum": "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79",
+ "tarball": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
+ },
+ "gitHead": "583a75ed4fe41761b66416bb6e703ebb1f8963bf",
"homepage": "https://github.com/alexindigo/asynckit#readme",
"keywords": [
"async",
@@ -64,7 +91,14 @@
],
"license": "MIT",
"main": "index.js",
+ "maintainers": [
+ {
+ "name": "alexindigo",
+ "email": "iam@alexindigo.com"
+ }
+ ],
"name": "asynckit",
+ "optionalDependencies": {},
"pre-commit": [
"clean",
"lint",
@@ -73,6 +107,7 @@
"report",
"size"
],
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/alexindigo/asynckit.git"
diff --git a/node_modules/aws-sign2/package.json b/node_modules/aws-sign2/package.json
index 1b800ca..b2fc8f5 100644
--- a/node_modules/aws-sign2/package.json
+++ b/node_modules/aws-sign2/package.json
@@ -1,27 +1,50 @@
{
- "_from": "aws-sign2@~0.7.0",
+ "_args": [
+ [
+ {
+ "raw": "aws-sign2@~0.7.0",
+ "scope": null,
+ "escapedName": "aws-sign2",
+ "name": "aws-sign2",
+ "rawSpec": "~0.7.0",
+ "spec": ">=0.7.0 <0.8.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\request"
+ ]
+ ],
+ "_from": "aws-sign2@>=0.7.0 <0.8.0",
"_id": "aws-sign2@0.7.0",
- "_inBundle": false,
- "_integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "_inCache": true,
"_location": "/aws-sign2",
+ "_nodeVersion": "6.9.2",
+ "_npmOperationalInternal": {
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/aws-sign2-0.7.0.tgz_1492024128801_0.28444291022606194"
+ },
+ "_npmUser": {
+ "name": "mikeal",
+ "email": "mikeal.rogers@gmail.com"
+ },
+ "_npmVersion": "3.10.9",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "aws-sign2@~0.7.0",
- "name": "aws-sign2",
+ "scope": null,
"escapedName": "aws-sign2",
+ "name": "aws-sign2",
"rawSpec": "~0.7.0",
- "saveSpec": null,
- "fetchSpec": "~0.7.0"
+ "spec": ">=0.7.0 <0.8.0",
+ "type": "range"
},
"_requiredBy": [
"/request"
],
"_resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
"_shasum": "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8",
+ "_shrinkwrap": null,
"_spec": "aws-sign2@~0.7.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/request",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\request",
"author": {
"name": "Mikeal Rogers",
"email": "mikeal.rogers@gmail.com",
@@ -30,21 +53,33 @@
"bugs": {
"url": "https://github.com/mikeal/aws-sign/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.",
"devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8",
+ "tarball": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"
+ },
"engines": {
"node": "*"
},
+ "gitHead": "a0cdf4b61f80ca669cd1ed8482f978d908f0dd2b",
"homepage": "https://github.com/mikeal/aws-sign#readme",
"license": "Apache-2.0",
"main": "index.js",
+ "maintainers": [
+ {
+ "name": "mikeal",
+ "email": "mikeal.rogers@gmail.com"
+ }
+ ],
"name": "aws-sign2",
"optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"url": "git+https://github.com/mikeal/aws-sign.git"
},
+ "scripts": {},
"version": "0.7.0"
}
diff --git a/node_modules/aws4/package.json b/node_modules/aws4/package.json
index e68faa1..91dcd41 100644
--- a/node_modules/aws4/package.json
+++ b/node_modules/aws4/package.json
@@ -1,27 +1,50 @@
{
- "_from": "aws4@^1.6.0",
+ "_args": [
+ [
+ {
+ "raw": "aws4@^1.6.0",
+ "scope": null,
+ "escapedName": "aws4",
+ "name": "aws4",
+ "rawSpec": "^1.6.0",
+ "spec": ">=1.6.0 <2.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\request"
+ ]
+ ],
+ "_from": "aws4@>=1.6.0 <2.0.0",
"_id": "aws4@1.6.0",
- "_inBundle": false,
- "_integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
+ "_inCache": true,
"_location": "/aws4",
+ "_nodeVersion": "4.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/aws4-1.6.0.tgz_1486481933920_0.6127187723759562"
+ },
+ "_npmUser": {
+ "name": "hichaelmart",
+ "email": "michael.hart.au@gmail.com"
+ },
+ "_npmVersion": "4.0.5",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "aws4@^1.6.0",
- "name": "aws4",
+ "scope": null,
"escapedName": "aws4",
+ "name": "aws4",
"rawSpec": "^1.6.0",
- "saveSpec": null,
- "fetchSpec": "^1.6.0"
+ "spec": ">=1.6.0 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/request"
],
"_resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
"_shasum": "83ef5ca860b2b32e4a0deedee8c771b9db57471e",
+ "_shrinkwrap": null,
"_spec": "aws4@^1.6.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/request",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\request",
"author": {
"name": "Michael Hart",
"email": "michael.hart.au@gmail.com",
@@ -30,13 +53,18 @@
"bugs": {
"url": "https://github.com/mhart/aws4/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
+ "dependencies": {},
"description": "Signs and prepares requests using AWS Signature Version 4",
"devDependencies": {
"mocha": "^2.4.5",
"should": "^8.2.2"
},
+ "directories": {},
+ "dist": {
+ "shasum": "83ef5ca860b2b32e4a0deedee8c771b9db57471e",
+ "tarball": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz"
+ },
+ "gitHead": "74bf0b64d1e8cbcd184964999c7ef53f52d7ad32",
"homepage": "https://github.com/mhart/aws4#readme",
"keywords": [
"amazon",
@@ -92,7 +120,15 @@
],
"license": "MIT",
"main": "aws4.js",
+ "maintainers": [
+ {
+ "name": "hichaelmart",
+ "email": "michael.hart.au@gmail.com"
+ }
+ ],
"name": "aws4",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/mhart/aws4.git"
diff --git a/node_modules/babel-code-frame/package.json b/node_modules/babel-code-frame/package.json
index f788230..e1c550f 100644
--- a/node_modules/babel-code-frame/package.json
+++ b/node_modules/babel-code-frame/package.json
@@ -1,46 +1,99 @@
{
- "_from": "babel-code-frame@^6.26.0",
+ "_args": [
+ [
+ {
+ "raw": "babel-code-frame@^6.26.0",
+ "scope": null,
+ "escapedName": "babel-code-frame",
+ "name": "babel-code-frame",
+ "rawSpec": "^6.26.0",
+ "spec": ">=6.26.0 <7.0.0",
+ "type": "range"
+ },
+ "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\babel-core"
+ ]
+ ],
+ "_from": "babel-code-frame@>=6.26.0 <7.0.0",
"_id": "babel-code-frame@6.26.0",
- "_inBundle": false,
- "_integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "_inCache": true,
"_location": "/babel-code-frame",
+ "_nodeVersion": "6.9.0",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/babel-code-frame-6.26.0.tgz_1502898849653_0.8458143274765462"
+ },
+ "_npmUser": {
+ "name": "hzoo",
+ "email": "hi@henryzoo.com"
+ },
+ "_npmVersion": "4.6.1",
"_phantomChildren": {},
"_requested": {
- "type": "range",
- "registry": true,
"raw": "babel-code-frame@^6.26.0",
- "name": "babel-code-frame",
+ "scope": null,
"escapedName": "babel-code-frame",
+ "name": "babel-code-frame",
"rawSpec": "^6.26.0",
- "saveSpec": null,
- "fetchSpec": "^6.26.0"
+ "spec": ">=6.26.0 <7.0.0",
+ "type": "range"
},
"_requiredBy": [
+ "/babel-core",
"/babel-traverse"
],
"_resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"_shasum": "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b",
+ "_shrinkwrap": null,
"_spec": "babel-code-frame@^6.26.0",
- "_where": "/Users/workstation/Desktop/Github Projects/kanban/node_modules/babel-traverse",
+ "_where": "C:\\Users\\Workstation\\desktop\\GitHub Projects\\kanban\\node_modules\\babel-core",
"author": {
"name": "Sebastian McKenzie",
"email": "sebmck@gmail.com"
},
- "bundleDependencies": false,
"dependencies": {
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
},
- "deprecated": false,
"description": "Generate errors that contain a code frame that point to source locations.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b",
+ "tarball": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz"
+ },
"homepage": "https://babeljs.io/",
"license": "MIT",
"main": "lib/index.js",
+ "maintainers": [
+ {
+ "name": "thejameskyle",
+ "email": "me@thejameskyle.com"
+ },
+ {
+ "name": "sebmck",
+ "email": "sebmck@gmail.com"
+ },
+ {
+ "name": "danez",
+ "email": "daniel@tschinder.de"
+ },
+ {
+ "name": "hzoo",
+ "email": "hi@henryzoo.com"
+ },
+ {
+ "name": "loganfsmyth",
+ "email": "loganfsmyth@gmail.com"
+ }
+ ],
"name": "babel-code-frame",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "https://github.com/babel/babel/tree/master/packages/babel-code-frame"
},
+ "scripts": {},
"version": "6.26.0"
}
diff --git a/node_modules/babel-core/node_modules/lodash/LICENSE b/node_modules/babel-core/node_modules/lodash/LICENSE
deleted file mode 100644
index c6f2f61..0000000
--- a/node_modules/babel-core/node_modules/lodash/LICENSE
+++ /dev/null
@@ -1,47 +0,0 @@
-Copyright JS Foundation and other contributors
-
-Based on Underscore.js, copyright Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-This software consists of voluntary contributions made by many
-individuals. For exact contribution history, see the revision history
-available at https://github.com/lodash/lodash
-
-The following license applies to all parts of this software except as
-documented below:
-
-====
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-====
-
-Copyright and related rights for sample code are waived via CC0. Sample
-code is defined as all source code displayed within the prose of the
-documentation.
-
-CC0: http://creativecommons.org/publicdomain/zero/1.0/
-
-====
-
-Files located in the node_modules and vendor directories are externally
-maintained libraries used by this software which have their own
-licenses; we recommend you read them, as their terms may differ from the
-terms above.
diff --git a/node_modules/babel-core/node_modules/lodash/README.md b/node_modules/babel-core/node_modules/lodash/README.md
deleted file mode 100644
index acdd128..0000000
--- a/node_modules/babel-core/node_modules/lodash/README.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# lodash v4.17.4
-
-The [Lodash](https://lodash.com/) library exported as [Node.js](https://nodejs.org/) modules.
-
-## Installation
-
-Using npm:
-```shell
-$ npm i -g npm
-$ npm i --save lodash
-```
-
-In Node.js:
-```js
-// Load the full build.
-var _ = require('lodash');
-// Load the core build.
-var _ = require('lodash/core');
-// Load the FP build for immutable auto-curried iteratee-first data-last methods.
-var fp = require('lodash/fp');
-
-// Load method categories.
-var array = require('lodash/array');
-var object = require('lodash/fp/object');
-
-// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
-var at = require('lodash/at');
-var curryN = require('lodash/fp/curryN');
-```
-
-See the [package source](https://github.com/lodash/lodash/tree/4.17.4-npm) for more details.
-
-**Note:**
-Install [n_](https://www.npmjs.com/package/n_) for Lodash use in the Node.js < 6 REPL.
-
-## Support
-
-Tested in Chrome 54-55, Firefox 49-50, IE 11, Edge 14, Safari 9-10, Node.js 6-7, & PhantomJS 2.1.1.
-Automated [browser](https://saucelabs.com/u/lodash) & [CI](https://travis-ci.org/lodash/lodash/) test runs are available.
diff --git a/node_modules/babel-core/node_modules/lodash/_DataView.js b/node_modules/babel-core/node_modules/lodash/_DataView.js
deleted file mode 100644
index ac2d57c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_DataView.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var getNative = require('./_getNative'),
- root = require('./_root');
-
-/* Built-in method references that are verified to be native. */
-var DataView = getNative(root, 'DataView');
-
-module.exports = DataView;
diff --git a/node_modules/babel-core/node_modules/lodash/_Hash.js b/node_modules/babel-core/node_modules/lodash/_Hash.js
deleted file mode 100644
index b504fe3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_Hash.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var hashClear = require('./_hashClear'),
- hashDelete = require('./_hashDelete'),
- hashGet = require('./_hashGet'),
- hashHas = require('./_hashHas'),
- hashSet = require('./_hashSet');
-
-/**
- * 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]);
- }
-}
-
-// Add methods to `Hash`.
-Hash.prototype.clear = hashClear;
-Hash.prototype['delete'] = hashDelete;
-Hash.prototype.get = hashGet;
-Hash.prototype.has = hashHas;
-Hash.prototype.set = hashSet;
-
-module.exports = Hash;
diff --git a/node_modules/babel-core/node_modules/lodash/_LazyWrapper.js b/node_modules/babel-core/node_modules/lodash/_LazyWrapper.js
deleted file mode 100644
index 81786c7..0000000
--- a/node_modules/babel-core/node_modules/lodash/_LazyWrapper.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var baseCreate = require('./_baseCreate'),
- baseLodash = require('./_baseLodash');
-
-/** Used as references for the maximum length and index of an array. */
-var MAX_ARRAY_LENGTH = 4294967295;
-
-/**
- * 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__ = [];
-}
-
-// Ensure `LazyWrapper` is an instance of `baseLodash`.
-LazyWrapper.prototype = baseCreate(baseLodash.prototype);
-LazyWrapper.prototype.constructor = LazyWrapper;
-
-module.exports = LazyWrapper;
diff --git a/node_modules/babel-core/node_modules/lodash/_ListCache.js b/node_modules/babel-core/node_modules/lodash/_ListCache.js
deleted file mode 100644
index 26895c3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_ListCache.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var listCacheClear = require('./_listCacheClear'),
- listCacheDelete = require('./_listCacheDelete'),
- listCacheGet = require('./_listCacheGet'),
- listCacheHas = require('./_listCacheHas'),
- listCacheSet = require('./_listCacheSet');
-
-/**
- * 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]);
- }
-}
-
-// Add methods to `ListCache`.
-ListCache.prototype.clear = listCacheClear;
-ListCache.prototype['delete'] = listCacheDelete;
-ListCache.prototype.get = listCacheGet;
-ListCache.prototype.has = listCacheHas;
-ListCache.prototype.set = listCacheSet;
-
-module.exports = ListCache;
diff --git a/node_modules/babel-core/node_modules/lodash/_LodashWrapper.js b/node_modules/babel-core/node_modules/lodash/_LodashWrapper.js
deleted file mode 100644
index c1e4d9d..0000000
--- a/node_modules/babel-core/node_modules/lodash/_LodashWrapper.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var baseCreate = require('./_baseCreate'),
- baseLodash = require('./_baseLodash');
-
-/**
- * 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;
-}
-
-LodashWrapper.prototype = baseCreate(baseLodash.prototype);
-LodashWrapper.prototype.constructor = LodashWrapper;
-
-module.exports = LodashWrapper;
diff --git a/node_modules/babel-core/node_modules/lodash/_Map.js b/node_modules/babel-core/node_modules/lodash/_Map.js
deleted file mode 100644
index b73f29a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_Map.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var getNative = require('./_getNative'),
- root = require('./_root');
-
-/* Built-in method references that are verified to be native. */
-var Map = getNative(root, 'Map');
-
-module.exports = Map;
diff --git a/node_modules/babel-core/node_modules/lodash/_MapCache.js b/node_modules/babel-core/node_modules/lodash/_MapCache.js
deleted file mode 100644
index 4a4eea7..0000000
--- a/node_modules/babel-core/node_modules/lodash/_MapCache.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var mapCacheClear = require('./_mapCacheClear'),
- mapCacheDelete = require('./_mapCacheDelete'),
- mapCacheGet = require('./_mapCacheGet'),
- mapCacheHas = require('./_mapCacheHas'),
- mapCacheSet = require('./_mapCacheSet');
-
-/**
- * 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]);
- }
-}
-
-// Add methods to `MapCache`.
-MapCache.prototype.clear = mapCacheClear;
-MapCache.prototype['delete'] = mapCacheDelete;
-MapCache.prototype.get = mapCacheGet;
-MapCache.prototype.has = mapCacheHas;
-MapCache.prototype.set = mapCacheSet;
-
-module.exports = MapCache;
diff --git a/node_modules/babel-core/node_modules/lodash/_Promise.js b/node_modules/babel-core/node_modules/lodash/_Promise.js
deleted file mode 100644
index 247b9e1..0000000
--- a/node_modules/babel-core/node_modules/lodash/_Promise.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var getNative = require('./_getNative'),
- root = require('./_root');
-
-/* Built-in method references that are verified to be native. */
-var Promise = getNative(root, 'Promise');
-
-module.exports = Promise;
diff --git a/node_modules/babel-core/node_modules/lodash/_Set.js b/node_modules/babel-core/node_modules/lodash/_Set.js
deleted file mode 100644
index b3c8dcb..0000000
--- a/node_modules/babel-core/node_modules/lodash/_Set.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var getNative = require('./_getNative'),
- root = require('./_root');
-
-/* Built-in method references that are verified to be native. */
-var Set = getNative(root, 'Set');
-
-module.exports = Set;
diff --git a/node_modules/babel-core/node_modules/lodash/_SetCache.js b/node_modules/babel-core/node_modules/lodash/_SetCache.js
deleted file mode 100644
index 6468b06..0000000
--- a/node_modules/babel-core/node_modules/lodash/_SetCache.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var MapCache = require('./_MapCache'),
- setCacheAdd = require('./_setCacheAdd'),
- setCacheHas = require('./_setCacheHas');
-
-/**
- *
- * 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]);
- }
-}
-
-// Add methods to `SetCache`.
-SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
-SetCache.prototype.has = setCacheHas;
-
-module.exports = SetCache;
diff --git a/node_modules/babel-core/node_modules/lodash/_Stack.js b/node_modules/babel-core/node_modules/lodash/_Stack.js
deleted file mode 100644
index 80b2cf1..0000000
--- a/node_modules/babel-core/node_modules/lodash/_Stack.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var ListCache = require('./_ListCache'),
- stackClear = require('./_stackClear'),
- stackDelete = require('./_stackDelete'),
- stackGet = require('./_stackGet'),
- stackHas = require('./_stackHas'),
- stackSet = require('./_stackSet');
-
-/**
- * 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;
-}
-
-// Add methods to `Stack`.
-Stack.prototype.clear = stackClear;
-Stack.prototype['delete'] = stackDelete;
-Stack.prototype.get = stackGet;
-Stack.prototype.has = stackHas;
-Stack.prototype.set = stackSet;
-
-module.exports = Stack;
diff --git a/node_modules/babel-core/node_modules/lodash/_Symbol.js b/node_modules/babel-core/node_modules/lodash/_Symbol.js
deleted file mode 100644
index a013f7c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_Symbol.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var root = require('./_root');
-
-/** Built-in value references. */
-var Symbol = root.Symbol;
-
-module.exports = Symbol;
diff --git a/node_modules/babel-core/node_modules/lodash/_Uint8Array.js b/node_modules/babel-core/node_modules/lodash/_Uint8Array.js
deleted file mode 100644
index 2fb30e1..0000000
--- a/node_modules/babel-core/node_modules/lodash/_Uint8Array.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var root = require('./_root');
-
-/** Built-in value references. */
-var Uint8Array = root.Uint8Array;
-
-module.exports = Uint8Array;
diff --git a/node_modules/babel-core/node_modules/lodash/_WeakMap.js b/node_modules/babel-core/node_modules/lodash/_WeakMap.js
deleted file mode 100644
index 567f86c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_WeakMap.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var getNative = require('./_getNative'),
- root = require('./_root');
-
-/* Built-in method references that are verified to be native. */
-var WeakMap = getNative(root, 'WeakMap');
-
-module.exports = WeakMap;
diff --git a/node_modules/babel-core/node_modules/lodash/_addMapEntry.js b/node_modules/babel-core/node_modules/lodash/_addMapEntry.js
deleted file mode 100644
index 5a69212..0000000
--- a/node_modules/babel-core/node_modules/lodash/_addMapEntry.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Adds the key-value `pair` to `map`.
- *
- * @private
- * @param {Object} map The map to modify.
- * @param {Array} pair The key-value pair to add.
- * @returns {Object} Returns `map`.
- */
-function addMapEntry(map, pair) {
- // Don't return `map.set` because it's not chainable in IE 11.
- map.set(pair[0], pair[1]);
- return map;
-}
-
-module.exports = addMapEntry;
diff --git a/node_modules/babel-core/node_modules/lodash/_addSetEntry.js b/node_modules/babel-core/node_modules/lodash/_addSetEntry.js
deleted file mode 100644
index 1a07b70..0000000
--- a/node_modules/babel-core/node_modules/lodash/_addSetEntry.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Adds `value` to `set`.
- *
- * @private
- * @param {Object} set The set to modify.
- * @param {*} value The value to add.
- * @returns {Object} Returns `set`.
- */
-function addSetEntry(set, value) {
- // Don't return `set.add` because it's not chainable in IE 11.
- set.add(value);
- return set;
-}
-
-module.exports = addSetEntry;
diff --git a/node_modules/babel-core/node_modules/lodash/_apply.js b/node_modules/babel-core/node_modules/lodash/_apply.js
deleted file mode 100644
index 36436dd..0000000
--- a/node_modules/babel-core/node_modules/lodash/_apply.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * 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);
-}
-
-module.exports = apply;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayAggregator.js b/node_modules/babel-core/node_modules/lodash/_arrayAggregator.js
deleted file mode 100644
index d96c3ca..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayAggregator.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = arrayAggregator;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayEach.js b/node_modules/babel-core/node_modules/lodash/_arrayEach.js
deleted file mode 100644
index 2c5f579..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayEach.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = arrayEach;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayEachRight.js b/node_modules/babel-core/node_modules/lodash/_arrayEachRight.js
deleted file mode 100644
index 976ca5c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayEachRight.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = arrayEachRight;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayEvery.js b/node_modules/babel-core/node_modules/lodash/_arrayEvery.js
deleted file mode 100644
index e26a918..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayEvery.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = arrayEvery;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayFilter.js b/node_modules/babel-core/node_modules/lodash/_arrayFilter.js
deleted file mode 100644
index 75ea254..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayFilter.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = arrayFilter;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayIncludes.js b/node_modules/babel-core/node_modules/lodash/_arrayIncludes.js
deleted file mode 100644
index 3737a6d..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayIncludes.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var baseIndexOf = require('./_baseIndexOf');
-
-/**
- * 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;
-}
-
-module.exports = arrayIncludes;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayIncludesWith.js b/node_modules/babel-core/node_modules/lodash/_arrayIncludesWith.js
deleted file mode 100644
index 235fd97..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayIncludesWith.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = arrayIncludesWith;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayLikeKeys.js b/node_modules/babel-core/node_modules/lodash/_arrayLikeKeys.js
deleted file mode 100644
index b2ec9ce..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayLikeKeys.js
+++ /dev/null
@@ -1,49 +0,0 @@
-var baseTimes = require('./_baseTimes'),
- isArguments = require('./isArguments'),
- isArray = require('./isArray'),
- isBuffer = require('./isBuffer'),
- isIndex = require('./_isIndex'),
- isTypedArray = require('./isTypedArray');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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;
-}
-
-module.exports = arrayLikeKeys;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayMap.js b/node_modules/babel-core/node_modules/lodash/_arrayMap.js
deleted file mode 100644
index 22b2246..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayMap.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = arrayMap;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayPush.js b/node_modules/babel-core/node_modules/lodash/_arrayPush.js
deleted file mode 100644
index 7d742b3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayPush.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = arrayPush;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayReduce.js b/node_modules/babel-core/node_modules/lodash/_arrayReduce.js
deleted file mode 100644
index de8b79b..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayReduce.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = arrayReduce;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayReduceRight.js b/node_modules/babel-core/node_modules/lodash/_arrayReduceRight.js
deleted file mode 100644
index 22d8976..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayReduceRight.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = arrayReduceRight;
diff --git a/node_modules/babel-core/node_modules/lodash/_arraySample.js b/node_modules/babel-core/node_modules/lodash/_arraySample.js
deleted file mode 100644
index fcab010..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arraySample.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var baseRandom = require('./_baseRandom');
-
-/**
- * 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;
-}
-
-module.exports = arraySample;
diff --git a/node_modules/babel-core/node_modules/lodash/_arraySampleSize.js b/node_modules/babel-core/node_modules/lodash/_arraySampleSize.js
deleted file mode 100644
index 8c7e364..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arraySampleSize.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var baseClamp = require('./_baseClamp'),
- copyArray = require('./_copyArray'),
- shuffleSelf = require('./_shuffleSelf');
-
-/**
- * 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));
-}
-
-module.exports = arraySampleSize;
diff --git a/node_modules/babel-core/node_modules/lodash/_arrayShuffle.js b/node_modules/babel-core/node_modules/lodash/_arrayShuffle.js
deleted file mode 100644
index 46313a3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arrayShuffle.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var copyArray = require('./_copyArray'),
- shuffleSelf = require('./_shuffleSelf');
-
-/**
- * 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));
-}
-
-module.exports = arrayShuffle;
diff --git a/node_modules/babel-core/node_modules/lodash/_arraySome.js b/node_modules/babel-core/node_modules/lodash/_arraySome.js
deleted file mode 100644
index 6fd02fd..0000000
--- a/node_modules/babel-core/node_modules/lodash/_arraySome.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = arraySome;
diff --git a/node_modules/babel-core/node_modules/lodash/_asciiSize.js b/node_modules/babel-core/node_modules/lodash/_asciiSize.js
deleted file mode 100644
index 11d29c3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_asciiSize.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var baseProperty = require('./_baseProperty');
-
-/**
- * Gets the size of an ASCII `string`.
- *
- * @private
- * @param {string} string The string inspect.
- * @returns {number} Returns the string size.
- */
-var asciiSize = baseProperty('length');
-
-module.exports = asciiSize;
diff --git a/node_modules/babel-core/node_modules/lodash/_asciiToArray.js b/node_modules/babel-core/node_modules/lodash/_asciiToArray.js
deleted file mode 100644
index 8e3dd5b..0000000
--- a/node_modules/babel-core/node_modules/lodash/_asciiToArray.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * 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('');
-}
-
-module.exports = asciiToArray;
diff --git a/node_modules/babel-core/node_modules/lodash/_asciiWords.js b/node_modules/babel-core/node_modules/lodash/_asciiWords.js
deleted file mode 100644
index d765f0f..0000000
--- a/node_modules/babel-core/node_modules/lodash/_asciiWords.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/** Used to match words composed of alphanumeric characters. */
-var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
-
-/**
- * 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) || [];
-}
-
-module.exports = asciiWords;
diff --git a/node_modules/babel-core/node_modules/lodash/_assignMergeValue.js b/node_modules/babel-core/node_modules/lodash/_assignMergeValue.js
deleted file mode 100644
index cb1185e..0000000
--- a/node_modules/babel-core/node_modules/lodash/_assignMergeValue.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var baseAssignValue = require('./_baseAssignValue'),
- eq = require('./eq');
-
-/**
- * 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);
- }
-}
-
-module.exports = assignMergeValue;
diff --git a/node_modules/babel-core/node_modules/lodash/_assignValue.js b/node_modules/babel-core/node_modules/lodash/_assignValue.js
deleted file mode 100644
index 4083957..0000000
--- a/node_modules/babel-core/node_modules/lodash/_assignValue.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var baseAssignValue = require('./_baseAssignValue'),
- eq = require('./eq');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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);
- }
-}
-
-module.exports = assignValue;
diff --git a/node_modules/babel-core/node_modules/lodash/_assocIndexOf.js b/node_modules/babel-core/node_modules/lodash/_assocIndexOf.js
deleted file mode 100644
index 5b77a2b..0000000
--- a/node_modules/babel-core/node_modules/lodash/_assocIndexOf.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var eq = require('./eq');
-
-/**
- * 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;
-}
-
-module.exports = assocIndexOf;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseAggregator.js b/node_modules/babel-core/node_modules/lodash/_baseAggregator.js
deleted file mode 100644
index 4bc9e91..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseAggregator.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var baseEach = require('./_baseEach');
-
-/**
- * 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;
-}
-
-module.exports = baseAggregator;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseAssign.js b/node_modules/babel-core/node_modules/lodash/_baseAssign.js
deleted file mode 100644
index e5c4a1a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseAssign.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var copyObject = require('./_copyObject'),
- keys = require('./keys');
-
-/**
- * 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);
-}
-
-module.exports = baseAssign;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseAssignIn.js b/node_modules/babel-core/node_modules/lodash/_baseAssignIn.js
deleted file mode 100644
index 6624f90..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseAssignIn.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var copyObject = require('./_copyObject'),
- keysIn = require('./keysIn');
-
-/**
- * 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);
-}
-
-module.exports = baseAssignIn;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseAssignValue.js b/node_modules/babel-core/node_modules/lodash/_baseAssignValue.js
deleted file mode 100644
index d6f66ef..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseAssignValue.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var defineProperty = require('./_defineProperty');
-
-/**
- * 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;
- }
-}
-
-module.exports = baseAssignValue;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseAt.js b/node_modules/babel-core/node_modules/lodash/_baseAt.js
deleted file mode 100644
index 90e4237..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseAt.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var get = require('./get');
-
-/**
- * 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;
-}
-
-module.exports = baseAt;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseClamp.js b/node_modules/babel-core/node_modules/lodash/_baseClamp.js
deleted file mode 100644
index a1c5692..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseClamp.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseClamp;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseClone.js b/node_modules/babel-core/node_modules/lodash/_baseClone.js
deleted file mode 100644
index 7c27a37..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseClone.js
+++ /dev/null
@@ -1,153 +0,0 @@
-var Stack = require('./_Stack'),
- arrayEach = require('./_arrayEach'),
- assignValue = require('./_assignValue'),
- baseAssign = require('./_baseAssign'),
- baseAssignIn = require('./_baseAssignIn'),
- cloneBuffer = require('./_cloneBuffer'),
- copyArray = require('./_copyArray'),
- copySymbols = require('./_copySymbols'),
- copySymbolsIn = require('./_copySymbolsIn'),
- getAllKeys = require('./_getAllKeys'),
- getAllKeysIn = require('./_getAllKeysIn'),
- getTag = require('./_getTag'),
- initCloneArray = require('./_initCloneArray'),
- initCloneByTag = require('./_initCloneByTag'),
- initCloneObject = require('./_initCloneObject'),
- isArray = require('./isArray'),
- isBuffer = require('./isBuffer'),
- isObject = require('./isObject'),
- keys = require('./keys');
-
-/** Used to compose bitmasks for cloning. */
-var CLONE_DEEP_FLAG = 1,
- CLONE_FLAT_FLAG = 2,
- CLONE_SYMBOLS_FLAG = 4;
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- arrayTag = '[object Array]',
- boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- errorTag = '[object Error]',
- funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- mapTag = '[object Map]',
- numberTag = '[object Number]',
- objectTag = '[object Object]',
- regexpTag = '[object RegExp]',
- setTag = '[object Set]',
- stringTag = '[object String]',
- symbolTag = '[object Symbol]',
- weakMapTag = '[object WeakMap]';
-
-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 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;
-
-/**
- * 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, baseClone, 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);
-
- 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;
-}
-
-module.exports = baseClone;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseConforms.js b/node_modules/babel-core/node_modules/lodash/_baseConforms.js
deleted file mode 100644
index 947e20d..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseConforms.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var baseConformsTo = require('./_baseConformsTo'),
- keys = require('./keys');
-
-/**
- * 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);
- };
-}
-
-module.exports = baseConforms;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseConformsTo.js b/node_modules/babel-core/node_modules/lodash/_baseConformsTo.js
deleted file mode 100644
index e449cb8..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseConformsTo.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseConformsTo;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseCreate.js b/node_modules/babel-core/node_modules/lodash/_baseCreate.js
deleted file mode 100644
index ffa6a52..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseCreate.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var isObject = require('./isObject');
-
-/** Built-in value references. */
-var objectCreate = Object.create;
-
-/**
- * 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;
- };
-}());
-
-module.exports = baseCreate;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseDelay.js b/node_modules/babel-core/node_modules/lodash/_baseDelay.js
deleted file mode 100644
index 1486d69..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseDelay.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/** Error message constants. */
-var FUNC_ERROR_TEXT = 'Expected a function';
-
-/**
- * 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);
-}
-
-module.exports = baseDelay;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseDifference.js b/node_modules/babel-core/node_modules/lodash/_baseDifference.js
deleted file mode 100644
index 343ac19..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseDifference.js
+++ /dev/null
@@ -1,67 +0,0 @@
-var SetCache = require('./_SetCache'),
- arrayIncludes = require('./_arrayIncludes'),
- arrayIncludesWith = require('./_arrayIncludesWith'),
- arrayMap = require('./_arrayMap'),
- baseUnary = require('./_baseUnary'),
- cacheHas = require('./_cacheHas');
-
-/** Used as the size to enable large array optimizations. */
-var LARGE_ARRAY_SIZE = 200;
-
-/**
- * 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;
-}
-
-module.exports = baseDifference;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseEach.js b/node_modules/babel-core/node_modules/lodash/_baseEach.js
deleted file mode 100644
index 512c067..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseEach.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var baseForOwn = require('./_baseForOwn'),
- createBaseEach = require('./_createBaseEach');
-
-/**
- * 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);
-
-module.exports = baseEach;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseEachRight.js b/node_modules/babel-core/node_modules/lodash/_baseEachRight.js
deleted file mode 100644
index 0a8feec..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseEachRight.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var baseForOwnRight = require('./_baseForOwnRight'),
- createBaseEach = require('./_createBaseEach');
-
-/**
- * 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);
-
-module.exports = baseEachRight;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseEvery.js b/node_modules/babel-core/node_modules/lodash/_baseEvery.js
deleted file mode 100644
index fa52f7b..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseEvery.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var baseEach = require('./_baseEach');
-
-/**
- * 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;
-}
-
-module.exports = baseEvery;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseExtremum.js b/node_modules/babel-core/node_modules/lodash/_baseExtremum.js
deleted file mode 100644
index 9d6aa77..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseExtremum.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var isSymbol = require('./isSymbol');
-
-/**
- * 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;
-}
-
-module.exports = baseExtremum;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseFill.js b/node_modules/babel-core/node_modules/lodash/_baseFill.js
deleted file mode 100644
index 46ef9c7..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseFill.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var toInteger = require('./toInteger'),
- toLength = require('./toLength');
-
-/**
- * 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;
-}
-
-module.exports = baseFill;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseFilter.js b/node_modules/babel-core/node_modules/lodash/_baseFilter.js
deleted file mode 100644
index 4678477..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseFilter.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var baseEach = require('./_baseEach');
-
-/**
- * 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;
-}
-
-module.exports = baseFilter;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseFindIndex.js b/node_modules/babel-core/node_modules/lodash/_baseFindIndex.js
deleted file mode 100644
index e3f5d8a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseFindIndex.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseFindIndex;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseFindKey.js b/node_modules/babel-core/node_modules/lodash/_baseFindKey.js
deleted file mode 100644
index 2e430f3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseFindKey.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseFindKey;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseFlatten.js b/node_modules/babel-core/node_modules/lodash/_baseFlatten.js
deleted file mode 100644
index 4b1e009..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseFlatten.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var arrayPush = require('./_arrayPush'),
- isFlattenable = require('./_isFlattenable');
-
-/**
- * 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;
-}
-
-module.exports = baseFlatten;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseFor.js b/node_modules/babel-core/node_modules/lodash/_baseFor.js
deleted file mode 100644
index d946590..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseFor.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var createBaseFor = require('./_createBaseFor');
-
-/**
- * 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();
-
-module.exports = baseFor;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseForOwn.js b/node_modules/babel-core/node_modules/lodash/_baseForOwn.js
deleted file mode 100644
index 503d523..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseForOwn.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var baseFor = require('./_baseFor'),
- keys = require('./keys');
-
-/**
- * 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);
-}
-
-module.exports = baseForOwn;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseForOwnRight.js b/node_modules/babel-core/node_modules/lodash/_baseForOwnRight.js
deleted file mode 100644
index a4b10e6..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseForOwnRight.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var baseForRight = require('./_baseForRight'),
- keys = require('./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);
-}
-
-module.exports = baseForOwnRight;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseForRight.js b/node_modules/babel-core/node_modules/lodash/_baseForRight.js
deleted file mode 100644
index 32842cd..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseForRight.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var createBaseFor = require('./_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);
-
-module.exports = baseForRight;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseFunctions.js b/node_modules/babel-core/node_modules/lodash/_baseFunctions.js
deleted file mode 100644
index d23bc9b..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseFunctions.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var arrayFilter = require('./_arrayFilter'),
- isFunction = require('./isFunction');
-
-/**
- * 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]);
- });
-}
-
-module.exports = baseFunctions;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseGet.js b/node_modules/babel-core/node_modules/lodash/_baseGet.js
deleted file mode 100644
index a194913..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseGet.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var castPath = require('./_castPath'),
- toKey = require('./_toKey');
-
-/**
- * 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;
-}
-
-module.exports = baseGet;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseGetAllKeys.js b/node_modules/babel-core/node_modules/lodash/_baseGetAllKeys.js
deleted file mode 100644
index 8ad204e..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseGetAllKeys.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var arrayPush = require('./_arrayPush'),
- isArray = require('./isArray');
-
-/**
- * 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));
-}
-
-module.exports = baseGetAllKeys;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseGetTag.js b/node_modules/babel-core/node_modules/lodash/_baseGetTag.js
deleted file mode 100644
index b927ccc..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseGetTag.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var Symbol = require('./_Symbol'),
- getRawTag = require('./_getRawTag'),
- objectToString = require('./_objectToString');
-
-/** `Object#toString` result references. */
-var nullTag = '[object Null]',
- undefinedTag = '[object Undefined]';
-
-/** Built-in value references. */
-var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
-
-/**
- * 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);
-}
-
-module.exports = baseGetTag;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseGt.js b/node_modules/babel-core/node_modules/lodash/_baseGt.js
deleted file mode 100644
index 502d273..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseGt.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseGt;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseHas.js b/node_modules/babel-core/node_modules/lodash/_baseHas.js
deleted file mode 100644
index 1b73032..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseHas.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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);
-}
-
-module.exports = baseHas;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseHasIn.js b/node_modules/babel-core/node_modules/lodash/_baseHasIn.js
deleted file mode 100644
index 2e0d042..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseHasIn.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * 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);
-}
-
-module.exports = baseHasIn;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseInRange.js b/node_modules/babel-core/node_modules/lodash/_baseInRange.js
deleted file mode 100644
index ec95666..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseInRange.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max,
- nativeMin = Math.min;
-
-/**
- * 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);
-}
-
-module.exports = baseInRange;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIndexOf.js b/node_modules/babel-core/node_modules/lodash/_baseIndexOf.js
deleted file mode 100644
index 167e706..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIndexOf.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var baseFindIndex = require('./_baseFindIndex'),
- baseIsNaN = require('./_baseIsNaN'),
- strictIndexOf = require('./_strictIndexOf');
-
-/**
- * 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);
-}
-
-module.exports = baseIndexOf;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIndexOfWith.js b/node_modules/babel-core/node_modules/lodash/_baseIndexOfWith.js
deleted file mode 100644
index f815fe0..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIndexOfWith.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseIndexOfWith;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIntersection.js b/node_modules/babel-core/node_modules/lodash/_baseIntersection.js
deleted file mode 100644
index c1d250c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIntersection.js
+++ /dev/null
@@ -1,74 +0,0 @@
-var SetCache = require('./_SetCache'),
- arrayIncludes = require('./_arrayIncludes'),
- arrayIncludesWith = require('./_arrayIncludesWith'),
- arrayMap = require('./_arrayMap'),
- baseUnary = require('./_baseUnary'),
- cacheHas = require('./_cacheHas');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMin = Math.min;
-
-/**
- * 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;
-}
-
-module.exports = baseIntersection;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseInverter.js b/node_modules/babel-core/node_modules/lodash/_baseInverter.js
deleted file mode 100644
index fbc337f..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseInverter.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var baseForOwn = require('./_baseForOwn');
-
-/**
- * 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;
-}
-
-module.exports = baseInverter;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseInvoke.js b/node_modules/babel-core/node_modules/lodash/_baseInvoke.js
deleted file mode 100644
index 49bcf3c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseInvoke.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var apply = require('./_apply'),
- castPath = require('./_castPath'),
- last = require('./last'),
- parent = require('./_parent'),
- toKey = require('./_toKey');
-
-/**
- * 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);
-}
-
-module.exports = baseInvoke;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIsArguments.js b/node_modules/babel-core/node_modules/lodash/_baseIsArguments.js
deleted file mode 100644
index b3562cc..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIsArguments.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]';
-
-/**
- * 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;
-}
-
-module.exports = baseIsArguments;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIsArrayBuffer.js b/node_modules/babel-core/node_modules/lodash/_baseIsArrayBuffer.js
deleted file mode 100644
index a2c4f30..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIsArrayBuffer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- isObjectLike = require('./isObjectLike');
-
-var arrayBufferTag = '[object ArrayBuffer]';
-
-/**
- * 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;
-}
-
-module.exports = baseIsArrayBuffer;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIsDate.js b/node_modules/babel-core/node_modules/lodash/_baseIsDate.js
deleted file mode 100644
index ba67c78..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIsDate.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var dateTag = '[object Date]';
-
-/**
- * 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;
-}
-
-module.exports = baseIsDate;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIsEqual.js b/node_modules/babel-core/node_modules/lodash/_baseIsEqual.js
deleted file mode 100644
index 00a68a4..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIsEqual.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var baseIsEqualDeep = require('./_baseIsEqualDeep'),
- isObjectLike = require('./isObjectLike');
-
-/**
- * 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);
-}
-
-module.exports = baseIsEqual;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIsEqualDeep.js b/node_modules/babel-core/node_modules/lodash/_baseIsEqualDeep.js
deleted file mode 100644
index e3cfd6a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIsEqualDeep.js
+++ /dev/null
@@ -1,83 +0,0 @@
-var Stack = require('./_Stack'),
- equalArrays = require('./_equalArrays'),
- equalByTag = require('./_equalByTag'),
- equalObjects = require('./_equalObjects'),
- getTag = require('./_getTag'),
- isArray = require('./isArray'),
- isBuffer = require('./isBuffer'),
- isTypedArray = require('./isTypedArray');
-
-/** Used to compose bitmasks for value comparisons. */
-var COMPARE_PARTIAL_FLAG = 1;
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- arrayTag = '[object Array]',
- objectTag = '[object Object]';
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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);
-}
-
-module.exports = baseIsEqualDeep;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIsMap.js b/node_modules/babel-core/node_modules/lodash/_baseIsMap.js
deleted file mode 100644
index 02a4021..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIsMap.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var getTag = require('./_getTag'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var mapTag = '[object Map]';
-
-/**
- * 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;
-}
-
-module.exports = baseIsMap;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIsMatch.js b/node_modules/babel-core/node_modules/lodash/_baseIsMatch.js
deleted file mode 100644
index 72494be..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIsMatch.js
+++ /dev/null
@@ -1,62 +0,0 @@
-var Stack = require('./_Stack'),
- baseIsEqual = require('./_baseIsEqual');
-
-/** Used to compose bitmasks for value comparisons. */
-var COMPARE_PARTIAL_FLAG = 1,
- COMPARE_UNORDERED_FLAG = 2;
-
-/**
- * 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;
-}
-
-module.exports = baseIsMatch;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIsNaN.js b/node_modules/babel-core/node_modules/lodash/_baseIsNaN.js
deleted file mode 100644
index 316f1eb..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIsNaN.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseIsNaN;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIsNative.js b/node_modules/babel-core/node_modules/lodash/_baseIsNative.js
deleted file mode 100644
index 8702330..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIsNative.js
+++ /dev/null
@@ -1,47 +0,0 @@
-var isFunction = require('./isFunction'),
- isMasked = require('./_isMasked'),
- isObject = require('./isObject'),
- toSource = require('./_toSource');
-
-/**
- * Used to match `RegExp`
- * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
- */
-var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
-
-/** Used to detect host constructors (Safari). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/** Used for built-in method references. */
-var funcProto = Function.prototype,
- objectProto = Object.prototype;
-
-/** 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 detect if a method is native. */
-var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/**
- * 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));
-}
-
-module.exports = baseIsNative;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIsRegExp.js b/node_modules/babel-core/node_modules/lodash/_baseIsRegExp.js
deleted file mode 100644
index 6cd7c1a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIsRegExp.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var regexpTag = '[object RegExp]';
-
-/**
- * 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;
-}
-
-module.exports = baseIsRegExp;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIsSet.js b/node_modules/babel-core/node_modules/lodash/_baseIsSet.js
deleted file mode 100644
index 6dee367..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIsSet.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var getTag = require('./_getTag'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var setTag = '[object Set]';
-
-/**
- * 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;
-}
-
-module.exports = baseIsSet;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIsTypedArray.js b/node_modules/babel-core/node_modules/lodash/_baseIsTypedArray.js
deleted file mode 100644
index 1edb32f..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIsTypedArray.js
+++ /dev/null
@@ -1,60 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- isLength = require('./isLength'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- arrayTag = '[object Array]',
- boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- errorTag = '[object Error]',
- funcTag = '[object Function]',
- mapTag = '[object Map]',
- numberTag = '[object Number]',
- objectTag = '[object Object]',
- regexpTag = '[object RegExp]',
- setTag = '[object Set]',
- stringTag = '[object String]',
- weakMapTag = '[object WeakMap]';
-
-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 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;
-
-/**
- * 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)];
-}
-
-module.exports = baseIsTypedArray;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseIteratee.js b/node_modules/babel-core/node_modules/lodash/_baseIteratee.js
deleted file mode 100644
index 995c257..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseIteratee.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var baseMatches = require('./_baseMatches'),
- baseMatchesProperty = require('./_baseMatchesProperty'),
- identity = require('./identity'),
- isArray = require('./isArray'),
- property = require('./property');
-
-/**
- * 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);
-}
-
-module.exports = baseIteratee;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseKeys.js b/node_modules/babel-core/node_modules/lodash/_baseKeys.js
deleted file mode 100644
index 45e9e6f..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseKeys.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var isPrototype = require('./_isPrototype'),
- nativeKeys = require('./_nativeKeys');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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;
-}
-
-module.exports = baseKeys;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseKeysIn.js b/node_modules/babel-core/node_modules/lodash/_baseKeysIn.js
deleted file mode 100644
index ea8a0a1..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseKeysIn.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var isObject = require('./isObject'),
- isPrototype = require('./_isPrototype'),
- nativeKeysIn = require('./_nativeKeysIn');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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;
-}
-
-module.exports = baseKeysIn;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseLodash.js b/node_modules/babel-core/node_modules/lodash/_baseLodash.js
deleted file mode 100644
index f76c790..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseLodash.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * The function whose prototype chain sequence wrappers inherit from.
- *
- * @private
- */
-function baseLodash() {
- // No operation performed.
-}
-
-module.exports = baseLodash;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseLt.js b/node_modules/babel-core/node_modules/lodash/_baseLt.js
deleted file mode 100644
index 8674d29..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseLt.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseLt;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseMap.js b/node_modules/babel-core/node_modules/lodash/_baseMap.js
deleted file mode 100644
index 0bf5cea..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseMap.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var baseEach = require('./_baseEach'),
- isArrayLike = require('./isArrayLike');
-
-/**
- * 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;
-}
-
-module.exports = baseMap;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseMatches.js b/node_modules/babel-core/node_modules/lodash/_baseMatches.js
deleted file mode 100644
index e56582a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseMatches.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var baseIsMatch = require('./_baseIsMatch'),
- getMatchData = require('./_getMatchData'),
- matchesStrictComparable = require('./_matchesStrictComparable');
-
-/**
- * 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);
- };
-}
-
-module.exports = baseMatches;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseMatchesProperty.js b/node_modules/babel-core/node_modules/lodash/_baseMatchesProperty.js
deleted file mode 100644
index 24afd89..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseMatchesProperty.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var baseIsEqual = require('./_baseIsEqual'),
- get = require('./get'),
- hasIn = require('./hasIn'),
- isKey = require('./_isKey'),
- isStrictComparable = require('./_isStrictComparable'),
- matchesStrictComparable = require('./_matchesStrictComparable'),
- toKey = require('./_toKey');
-
-/** Used to compose bitmasks for value comparisons. */
-var COMPARE_PARTIAL_FLAG = 1,
- COMPARE_UNORDERED_FLAG = 2;
-
-/**
- * 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);
- };
-}
-
-module.exports = baseMatchesProperty;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseMean.js b/node_modules/babel-core/node_modules/lodash/_baseMean.js
deleted file mode 100644
index fa9e00a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseMean.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var baseSum = require('./_baseSum');
-
-/** Used as references for various `Number` constants. */
-var NAN = 0 / 0;
-
-/**
- * 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;
-}
-
-module.exports = baseMean;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseMerge.js b/node_modules/babel-core/node_modules/lodash/_baseMerge.js
deleted file mode 100644
index f4cb8c6..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseMerge.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var Stack = require('./_Stack'),
- assignMergeValue = require('./_assignMergeValue'),
- baseFor = require('./_baseFor'),
- baseMergeDeep = require('./_baseMergeDeep'),
- isObject = require('./isObject'),
- keysIn = require('./keysIn');
-
-/**
- * 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(object[key], srcValue, (key + ''), object, source, stack)
- : undefined;
-
- if (newValue === undefined) {
- newValue = srcValue;
- }
- assignMergeValue(object, key, newValue);
- }
- }, keysIn);
-}
-
-module.exports = baseMerge;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseMergeDeep.js b/node_modules/babel-core/node_modules/lodash/_baseMergeDeep.js
deleted file mode 100644
index 42b405a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseMergeDeep.js
+++ /dev/null
@@ -1,93 +0,0 @@
-var assignMergeValue = require('./_assignMergeValue'),
- cloneBuffer = require('./_cloneBuffer'),
- cloneTypedArray = require('./_cloneTypedArray'),
- copyArray = require('./_copyArray'),
- initCloneObject = require('./_initCloneObject'),
- isArguments = require('./isArguments'),
- isArray = require('./isArray'),
- isArrayLikeObject = require('./isArrayLikeObject'),
- isBuffer = require('./isBuffer'),
- isFunction = require('./isFunction'),
- isObject = require('./isObject'),
- isPlainObject = require('./isPlainObject'),
- isTypedArray = require('./isTypedArray'),
- toPlainObject = require('./toPlainObject');
-
-/**
- * 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 = object[key],
- srcValue = 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);
-}
-
-module.exports = baseMergeDeep;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseNth.js b/node_modules/babel-core/node_modules/lodash/_baseNth.js
deleted file mode 100644
index 0403c2a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseNth.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var isIndex = require('./_isIndex');
-
-/**
- * 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;
-}
-
-module.exports = baseNth;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseOrderBy.js b/node_modules/babel-core/node_modules/lodash/_baseOrderBy.js
deleted file mode 100644
index d8a46ab..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseOrderBy.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var arrayMap = require('./_arrayMap'),
- baseIteratee = require('./_baseIteratee'),
- baseMap = require('./_baseMap'),
- baseSortBy = require('./_baseSortBy'),
- baseUnary = require('./_baseUnary'),
- compareMultiple = require('./_compareMultiple'),
- identity = require('./identity');
-
-/**
- * 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(baseIteratee));
-
- 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);
- });
-}
-
-module.exports = baseOrderBy;
diff --git a/node_modules/babel-core/node_modules/lodash/_basePick.js b/node_modules/babel-core/node_modules/lodash/_basePick.js
deleted file mode 100644
index 09b458a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_basePick.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var basePickBy = require('./_basePickBy'),
- hasIn = require('./hasIn');
-
-/**
- * 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);
- });
-}
-
-module.exports = basePick;
diff --git a/node_modules/babel-core/node_modules/lodash/_basePickBy.js b/node_modules/babel-core/node_modules/lodash/_basePickBy.js
deleted file mode 100644
index 85be68c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_basePickBy.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var baseGet = require('./_baseGet'),
- baseSet = require('./_baseSet'),
- castPath = require('./_castPath');
-
-/**
- * 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;
-}
-
-module.exports = basePickBy;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseProperty.js b/node_modules/babel-core/node_modules/lodash/_baseProperty.js
deleted file mode 100644
index 496281e..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseProperty.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * 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];
- };
-}
-
-module.exports = baseProperty;
diff --git a/node_modules/babel-core/node_modules/lodash/_basePropertyDeep.js b/node_modules/babel-core/node_modules/lodash/_basePropertyDeep.js
deleted file mode 100644
index 1e5aae5..0000000
--- a/node_modules/babel-core/node_modules/lodash/_basePropertyDeep.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var baseGet = require('./_baseGet');
-
-/**
- * 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);
- };
-}
-
-module.exports = basePropertyDeep;
diff --git a/node_modules/babel-core/node_modules/lodash/_basePropertyOf.js b/node_modules/babel-core/node_modules/lodash/_basePropertyOf.js
deleted file mode 100644
index 4617399..0000000
--- a/node_modules/babel-core/node_modules/lodash/_basePropertyOf.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * 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];
- };
-}
-
-module.exports = basePropertyOf;
diff --git a/node_modules/babel-core/node_modules/lodash/_basePullAll.js b/node_modules/babel-core/node_modules/lodash/_basePullAll.js
deleted file mode 100644
index 305720e..0000000
--- a/node_modules/babel-core/node_modules/lodash/_basePullAll.js
+++ /dev/null
@@ -1,51 +0,0 @@
-var arrayMap = require('./_arrayMap'),
- baseIndexOf = require('./_baseIndexOf'),
- baseIndexOfWith = require('./_baseIndexOfWith'),
- baseUnary = require('./_baseUnary'),
- copyArray = require('./_copyArray');
-
-/** Used for built-in method references. */
-var arrayProto = Array.prototype;
-
-/** Built-in value references. */
-var splice = arrayProto.splice;
-
-/**
- * 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;
-}
-
-module.exports = basePullAll;
diff --git a/node_modules/babel-core/node_modules/lodash/_basePullAt.js b/node_modules/babel-core/node_modules/lodash/_basePullAt.js
deleted file mode 100644
index c3e9e71..0000000
--- a/node_modules/babel-core/node_modules/lodash/_basePullAt.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var baseUnset = require('./_baseUnset'),
- isIndex = require('./_isIndex');
-
-/** Used for built-in method references. */
-var arrayProto = Array.prototype;
-
-/** Built-in value references. */
-var splice = arrayProto.splice;
-
-/**
- * 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;
-}
-
-module.exports = basePullAt;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseRandom.js b/node_modules/babel-core/node_modules/lodash/_baseRandom.js
deleted file mode 100644
index 94f76a7..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseRandom.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeFloor = Math.floor,
- nativeRandom = Math.random;
-
-/**
- * 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));
-}
-
-module.exports = baseRandom;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseRange.js b/node_modules/babel-core/node_modules/lodash/_baseRange.js
deleted file mode 100644
index 0fb8e41..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseRange.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeCeil = Math.ceil,
- nativeMax = Math.max;
-
-/**
- * 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;
-}
-
-module.exports = baseRange;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseReduce.js b/node_modules/babel-core/node_modules/lodash/_baseReduce.js
deleted file mode 100644
index 5a1f8b5..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseReduce.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseReduce;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseRepeat.js b/node_modules/babel-core/node_modules/lodash/_baseRepeat.js
deleted file mode 100644
index ee44c31..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseRepeat.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/** Used as references for various `Number` constants. */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeFloor = Math.floor;
-
-/**
- * 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;
-}
-
-module.exports = baseRepeat;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseRest.js b/node_modules/babel-core/node_modules/lodash/_baseRest.js
deleted file mode 100644
index d0dc4bd..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseRest.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var identity = require('./identity'),
- overRest = require('./_overRest'),
- setToString = require('./_setToString');
-
-/**
- * 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 + '');
-}
-
-module.exports = baseRest;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseSample.js b/node_modules/babel-core/node_modules/lodash/_baseSample.js
deleted file mode 100644
index 58582b9..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseSample.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var arraySample = require('./_arraySample'),
- values = require('./values');
-
-/**
- * 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));
-}
-
-module.exports = baseSample;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseSampleSize.js b/node_modules/babel-core/node_modules/lodash/_baseSampleSize.js
deleted file mode 100644
index 5c90ec5..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseSampleSize.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var baseClamp = require('./_baseClamp'),
- shuffleSelf = require('./_shuffleSelf'),
- values = require('./values');
-
-/**
- * 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));
-}
-
-module.exports = baseSampleSize;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseSet.js b/node_modules/babel-core/node_modules/lodash/_baseSet.js
deleted file mode 100644
index 612a24c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseSet.js
+++ /dev/null
@@ -1,47 +0,0 @@
-var assignValue = require('./_assignValue'),
- castPath = require('./_castPath'),
- isIndex = require('./_isIndex'),
- isObject = require('./isObject'),
- toKey = require('./_toKey');
-
-/**
- * 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;
-}
-
-module.exports = baseSet;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseSetData.js b/node_modules/babel-core/node_modules/lodash/_baseSetData.js
deleted file mode 100644
index c409947..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseSetData.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var identity = require('./identity'),
- metaMap = require('./_metaMap');
-
-/**
- * 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;
-};
-
-module.exports = baseSetData;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseSetToString.js b/node_modules/babel-core/node_modules/lodash/_baseSetToString.js
deleted file mode 100644
index 89eaca3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseSetToString.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var constant = require('./constant'),
- defineProperty = require('./_defineProperty'),
- identity = require('./identity');
-
-/**
- * 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
- });
-};
-
-module.exports = baseSetToString;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseShuffle.js b/node_modules/babel-core/node_modules/lodash/_baseShuffle.js
deleted file mode 100644
index 023077a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseShuffle.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var shuffleSelf = require('./_shuffleSelf'),
- values = require('./values');
-
-/**
- * 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));
-}
-
-module.exports = baseShuffle;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseSlice.js b/node_modules/babel-core/node_modules/lodash/_baseSlice.js
deleted file mode 100644
index 786f6c9..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseSlice.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseSlice;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseSome.js b/node_modules/babel-core/node_modules/lodash/_baseSome.js
deleted file mode 100644
index 58f3f44..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseSome.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var baseEach = require('./_baseEach');
-
-/**
- * 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;
-}
-
-module.exports = baseSome;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseSortBy.js b/node_modules/babel-core/node_modules/lodash/_baseSortBy.js
deleted file mode 100644
index a25c92e..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseSortBy.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseSortBy;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseSortedIndex.js b/node_modules/babel-core/node_modules/lodash/_baseSortedIndex.js
deleted file mode 100644
index 638c366..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseSortedIndex.js
+++ /dev/null
@@ -1,42 +0,0 @@
-var baseSortedIndexBy = require('./_baseSortedIndexBy'),
- identity = require('./identity'),
- isSymbol = require('./isSymbol');
-
-/** Used as references for the maximum length and index of an array. */
-var MAX_ARRAY_LENGTH = 4294967295,
- HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
-
-/**
- * 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);
-}
-
-module.exports = baseSortedIndex;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseSortedIndexBy.js b/node_modules/babel-core/node_modules/lodash/_baseSortedIndexBy.js
deleted file mode 100644
index bb22e36..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseSortedIndexBy.js
+++ /dev/null
@@ -1,64 +0,0 @@
-var isSymbol = require('./isSymbol');
-
-/** Used as references for the maximum length and index of an array. */
-var MAX_ARRAY_LENGTH = 4294967295,
- MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeFloor = Math.floor,
- nativeMin = Math.min;
-
-/**
- * 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);
-}
-
-module.exports = baseSortedIndexBy;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseSortedUniq.js b/node_modules/babel-core/node_modules/lodash/_baseSortedUniq.js
deleted file mode 100644
index 802159a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseSortedUniq.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var eq = require('./eq');
-
-/**
- * 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;
-}
-
-module.exports = baseSortedUniq;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseSum.js b/node_modules/babel-core/node_modules/lodash/_baseSum.js
deleted file mode 100644
index a9e84c1..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseSum.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseSum;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseTimes.js b/node_modules/babel-core/node_modules/lodash/_baseTimes.js
deleted file mode 100644
index 0603fc3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseTimes.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseTimes;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseToNumber.js b/node_modules/babel-core/node_modules/lodash/_baseToNumber.js
deleted file mode 100644
index 04859f3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseToNumber.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var isSymbol = require('./isSymbol');
-
-/** Used as references for various `Number` constants. */
-var NAN = 0 / 0;
-
-/**
- * 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;
-}
-
-module.exports = baseToNumber;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseToPairs.js b/node_modules/babel-core/node_modules/lodash/_baseToPairs.js
deleted file mode 100644
index bff1991..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseToPairs.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var arrayMap = require('./_arrayMap');
-
-/**
- * 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]];
- });
-}
-
-module.exports = baseToPairs;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseToString.js b/node_modules/babel-core/node_modules/lodash/_baseToString.js
deleted file mode 100644
index ada6ad2..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseToString.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var Symbol = require('./_Symbol'),
- arrayMap = require('./_arrayMap'),
- isArray = require('./isArray'),
- isSymbol = require('./isSymbol');
-
-/** Used as references for various `Number` constants. */
-var INFINITY = 1 / 0;
-
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolToString = symbolProto ? symbolProto.toString : undefined;
-
-/**
- * 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;
-}
-
-module.exports = baseToString;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseUnary.js b/node_modules/babel-core/node_modules/lodash/_baseUnary.js
deleted file mode 100644
index 98639e9..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseUnary.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * 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);
- };
-}
-
-module.exports = baseUnary;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseUniq.js b/node_modules/babel-core/node_modules/lodash/_baseUniq.js
deleted file mode 100644
index aea459d..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseUniq.js
+++ /dev/null
@@ -1,72 +0,0 @@
-var SetCache = require('./_SetCache'),
- arrayIncludes = require('./_arrayIncludes'),
- arrayIncludesWith = require('./_arrayIncludesWith'),
- cacheHas = require('./_cacheHas'),
- createSet = require('./_createSet'),
- setToArray = require('./_setToArray');
-
-/** Used as the size to enable large array optimizations. */
-var LARGE_ARRAY_SIZE = 200;
-
-/**
- * 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;
-}
-
-module.exports = baseUniq;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseUnset.js b/node_modules/babel-core/node_modules/lodash/_baseUnset.js
deleted file mode 100644
index eefc6e3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseUnset.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var castPath = require('./_castPath'),
- last = require('./last'),
- parent = require('./_parent'),
- toKey = require('./_toKey');
-
-/**
- * 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))];
-}
-
-module.exports = baseUnset;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseUpdate.js b/node_modules/babel-core/node_modules/lodash/_baseUpdate.js
deleted file mode 100644
index 92a6237..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseUpdate.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var baseGet = require('./_baseGet'),
- baseSet = require('./_baseSet');
-
-/**
- * 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);
-}
-
-module.exports = baseUpdate;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseValues.js b/node_modules/babel-core/node_modules/lodash/_baseValues.js
deleted file mode 100644
index b95faad..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseValues.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var arrayMap = require('./_arrayMap');
-
-/**
- * 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];
- });
-}
-
-module.exports = baseValues;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseWhile.js b/node_modules/babel-core/node_modules/lodash/_baseWhile.js
deleted file mode 100644
index 07eac61..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseWhile.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var baseSlice = require('./_baseSlice');
-
-/**
- * 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));
-}
-
-module.exports = baseWhile;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseWrapperValue.js b/node_modules/babel-core/node_modules/lodash/_baseWrapperValue.js
deleted file mode 100644
index 443e0df..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseWrapperValue.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var LazyWrapper = require('./_LazyWrapper'),
- arrayPush = require('./_arrayPush'),
- arrayReduce = require('./_arrayReduce');
-
-/**
- * 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);
-}
-
-module.exports = baseWrapperValue;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseXor.js b/node_modules/babel-core/node_modules/lodash/_baseXor.js
deleted file mode 100644
index 8e69338..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseXor.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var baseDifference = require('./_baseDifference'),
- baseFlatten = require('./_baseFlatten'),
- baseUniq = require('./_baseUniq');
-
-/**
- * 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);
-}
-
-module.exports = baseXor;
diff --git a/node_modules/babel-core/node_modules/lodash/_baseZipObject.js b/node_modules/babel-core/node_modules/lodash/_baseZipObject.js
deleted file mode 100644
index 401f85b..0000000
--- a/node_modules/babel-core/node_modules/lodash/_baseZipObject.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = baseZipObject;
diff --git a/node_modules/babel-core/node_modules/lodash/_cacheHas.js b/node_modules/babel-core/node_modules/lodash/_cacheHas.js
deleted file mode 100644
index 2dec892..0000000
--- a/node_modules/babel-core/node_modules/lodash/_cacheHas.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * 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);
-}
-
-module.exports = cacheHas;
diff --git a/node_modules/babel-core/node_modules/lodash/_castArrayLikeObject.js b/node_modules/babel-core/node_modules/lodash/_castArrayLikeObject.js
deleted file mode 100644
index 92c75fa..0000000
--- a/node_modules/babel-core/node_modules/lodash/_castArrayLikeObject.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var isArrayLikeObject = require('./isArrayLikeObject');
-
-/**
- * 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 : [];
-}
-
-module.exports = castArrayLikeObject;
diff --git a/node_modules/babel-core/node_modules/lodash/_castFunction.js b/node_modules/babel-core/node_modules/lodash/_castFunction.js
deleted file mode 100644
index 98c91ae..0000000
--- a/node_modules/babel-core/node_modules/lodash/_castFunction.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var identity = require('./identity');
-
-/**
- * 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;
-}
-
-module.exports = castFunction;
diff --git a/node_modules/babel-core/node_modules/lodash/_castPath.js b/node_modules/babel-core/node_modules/lodash/_castPath.js
deleted file mode 100644
index 017e4c1..0000000
--- a/node_modules/babel-core/node_modules/lodash/_castPath.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var isArray = require('./isArray'),
- isKey = require('./_isKey'),
- stringToPath = require('./_stringToPath'),
- toString = require('./toString');
-
-/**
- * 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));
-}
-
-module.exports = castPath;
diff --git a/node_modules/babel-core/node_modules/lodash/_castRest.js b/node_modules/babel-core/node_modules/lodash/_castRest.js
deleted file mode 100644
index 213c66f..0000000
--- a/node_modules/babel-core/node_modules/lodash/_castRest.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var baseRest = require('./_baseRest');
-
-/**
- * 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;
-
-module.exports = castRest;
diff --git a/node_modules/babel-core/node_modules/lodash/_castSlice.js b/node_modules/babel-core/node_modules/lodash/_castSlice.js
deleted file mode 100644
index 071faeb..0000000
--- a/node_modules/babel-core/node_modules/lodash/_castSlice.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var baseSlice = require('./_baseSlice');
-
-/**
- * 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);
-}
-
-module.exports = castSlice;
diff --git a/node_modules/babel-core/node_modules/lodash/_charsEndIndex.js b/node_modules/babel-core/node_modules/lodash/_charsEndIndex.js
deleted file mode 100644
index 07908ff..0000000
--- a/node_modules/babel-core/node_modules/lodash/_charsEndIndex.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var baseIndexOf = require('./_baseIndexOf');
-
-/**
- * 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;
-}
-
-module.exports = charsEndIndex;
diff --git a/node_modules/babel-core/node_modules/lodash/_charsStartIndex.js b/node_modules/babel-core/node_modules/lodash/_charsStartIndex.js
deleted file mode 100644
index b17afd2..0000000
--- a/node_modules/babel-core/node_modules/lodash/_charsStartIndex.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var baseIndexOf = require('./_baseIndexOf');
-
-/**
- * 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;
-}
-
-module.exports = charsStartIndex;
diff --git a/node_modules/babel-core/node_modules/lodash/_cloneArrayBuffer.js b/node_modules/babel-core/node_modules/lodash/_cloneArrayBuffer.js
deleted file mode 100644
index c3d8f6e..0000000
--- a/node_modules/babel-core/node_modules/lodash/_cloneArrayBuffer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var Uint8Array = require('./_Uint8Array');
-
-/**
- * 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;
-}
-
-module.exports = cloneArrayBuffer;
diff --git a/node_modules/babel-core/node_modules/lodash/_cloneBuffer.js b/node_modules/babel-core/node_modules/lodash/_cloneBuffer.js
deleted file mode 100644
index 27c4810..0000000
--- a/node_modules/babel-core/node_modules/lodash/_cloneBuffer.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var root = require('./_root');
-
-/** 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;
-
-/** Built-in value references. */
-var Buffer = moduleExports ? root.Buffer : undefined,
- allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;
-
-/**
- * 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;
-}
-
-module.exports = cloneBuffer;
diff --git a/node_modules/babel-core/node_modules/lodash/_cloneDataView.js b/node_modules/babel-core/node_modules/lodash/_cloneDataView.js
deleted file mode 100644
index 9c9b7b0..0000000
--- a/node_modules/babel-core/node_modules/lodash/_cloneDataView.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var cloneArrayBuffer = require('./_cloneArrayBuffer');
-
-/**
- * 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);
-}
-
-module.exports = cloneDataView;
diff --git a/node_modules/babel-core/node_modules/lodash/_cloneMap.js b/node_modules/babel-core/node_modules/lodash/_cloneMap.js
deleted file mode 100644
index 334b73e..0000000
--- a/node_modules/babel-core/node_modules/lodash/_cloneMap.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var addMapEntry = require('./_addMapEntry'),
- arrayReduce = require('./_arrayReduce'),
- mapToArray = require('./_mapToArray');
-
-/** Used to compose bitmasks for cloning. */
-var CLONE_DEEP_FLAG = 1;
-
-/**
- * Creates a clone of `map`.
- *
- * @private
- * @param {Object} map The map to clone.
- * @param {Function} cloneFunc The function to clone values.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned map.
- */
-function cloneMap(map, isDeep, cloneFunc) {
- var array = isDeep ? cloneFunc(mapToArray(map), CLONE_DEEP_FLAG) : mapToArray(map);
- return arrayReduce(array, addMapEntry, new map.constructor);
-}
-
-module.exports = cloneMap;
diff --git a/node_modules/babel-core/node_modules/lodash/_cloneRegExp.js b/node_modules/babel-core/node_modules/lodash/_cloneRegExp.js
deleted file mode 100644
index 64a30df..0000000
--- a/node_modules/babel-core/node_modules/lodash/_cloneRegExp.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/** Used to match `RegExp` flags from their coerced string values. */
-var reFlags = /\w*$/;
-
-/**
- * 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;
-}
-
-module.exports = cloneRegExp;
diff --git a/node_modules/babel-core/node_modules/lodash/_cloneSet.js b/node_modules/babel-core/node_modules/lodash/_cloneSet.js
deleted file mode 100644
index 713a2f7..0000000
--- a/node_modules/babel-core/node_modules/lodash/_cloneSet.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var addSetEntry = require('./_addSetEntry'),
- arrayReduce = require('./_arrayReduce'),
- setToArray = require('./_setToArray');
-
-/** Used to compose bitmasks for cloning. */
-var CLONE_DEEP_FLAG = 1;
-
-/**
- * Creates a clone of `set`.
- *
- * @private
- * @param {Object} set The set to clone.
- * @param {Function} cloneFunc The function to clone values.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned set.
- */
-function cloneSet(set, isDeep, cloneFunc) {
- var array = isDeep ? cloneFunc(setToArray(set), CLONE_DEEP_FLAG) : setToArray(set);
- return arrayReduce(array, addSetEntry, new set.constructor);
-}
-
-module.exports = cloneSet;
diff --git a/node_modules/babel-core/node_modules/lodash/_cloneSymbol.js b/node_modules/babel-core/node_modules/lodash/_cloneSymbol.js
deleted file mode 100644
index bede39f..0000000
--- a/node_modules/babel-core/node_modules/lodash/_cloneSymbol.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var Symbol = require('./_Symbol');
-
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
-
-/**
- * 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)) : {};
-}
-
-module.exports = cloneSymbol;
diff --git a/node_modules/babel-core/node_modules/lodash/_cloneTypedArray.js b/node_modules/babel-core/node_modules/lodash/_cloneTypedArray.js
deleted file mode 100644
index 7aad84d..0000000
--- a/node_modules/babel-core/node_modules/lodash/_cloneTypedArray.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var cloneArrayBuffer = require('./_cloneArrayBuffer');
-
-/**
- * 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);
-}
-
-module.exports = cloneTypedArray;
diff --git a/node_modules/babel-core/node_modules/lodash/_compareAscending.js b/node_modules/babel-core/node_modules/lodash/_compareAscending.js
deleted file mode 100644
index 8dc2791..0000000
--- a/node_modules/babel-core/node_modules/lodash/_compareAscending.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var isSymbol = require('./isSymbol');
-
-/**
- * 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;
-}
-
-module.exports = compareAscending;
diff --git a/node_modules/babel-core/node_modules/lodash/_compareMultiple.js b/node_modules/babel-core/node_modules/lodash/_compareMultiple.js
deleted file mode 100644
index ad61f0f..0000000
--- a/node_modules/babel-core/node_modules/lodash/_compareMultiple.js
+++ /dev/null
@@ -1,44 +0,0 @@
-var compareAscending = require('./_compareAscending');
-
-/**
- * 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;
-}
-
-module.exports = compareMultiple;
diff --git a/node_modules/babel-core/node_modules/lodash/_composeArgs.js b/node_modules/babel-core/node_modules/lodash/_composeArgs.js
deleted file mode 100644
index 1ce40f4..0000000
--- a/node_modules/babel-core/node_modules/lodash/_composeArgs.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max;
-
-/**
- * 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;
-}
-
-module.exports = composeArgs;
diff --git a/node_modules/babel-core/node_modules/lodash/_composeArgsRight.js b/node_modules/babel-core/node_modules/lodash/_composeArgsRight.js
deleted file mode 100644
index 8dc588d..0000000
--- a/node_modules/babel-core/node_modules/lodash/_composeArgsRight.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max;
-
-/**
- * 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;
-}
-
-module.exports = composeArgsRight;
diff --git a/node_modules/babel-core/node_modules/lodash/_copyArray.js b/node_modules/babel-core/node_modules/lodash/_copyArray.js
deleted file mode 100644
index cd94d5d..0000000
--- a/node_modules/babel-core/node_modules/lodash/_copyArray.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = copyArray;
diff --git a/node_modules/babel-core/node_modules/lodash/_copyObject.js b/node_modules/babel-core/node_modules/lodash/_copyObject.js
deleted file mode 100644
index 2f2a5c2..0000000
--- a/node_modules/babel-core/node_modules/lodash/_copyObject.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var assignValue = require('./_assignValue'),
- baseAssignValue = require('./_baseAssignValue');
-
-/**
- * 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;
-}
-
-module.exports = copyObject;
diff --git a/node_modules/babel-core/node_modules/lodash/_copySymbols.js b/node_modules/babel-core/node_modules/lodash/_copySymbols.js
deleted file mode 100644
index c35944a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_copySymbols.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var copyObject = require('./_copyObject'),
- getSymbols = require('./_getSymbols');
-
-/**
- * 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);
-}
-
-module.exports = copySymbols;
diff --git a/node_modules/babel-core/node_modules/lodash/_copySymbolsIn.js b/node_modules/babel-core/node_modules/lodash/_copySymbolsIn.js
deleted file mode 100644
index fdf20a7..0000000
--- a/node_modules/babel-core/node_modules/lodash/_copySymbolsIn.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var copyObject = require('./_copyObject'),
- getSymbolsIn = require('./_getSymbolsIn');
-
-/**
- * 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);
-}
-
-module.exports = copySymbolsIn;
diff --git a/node_modules/babel-core/node_modules/lodash/_coreJsData.js b/node_modules/babel-core/node_modules/lodash/_coreJsData.js
deleted file mode 100644
index f8e5b4e..0000000
--- a/node_modules/babel-core/node_modules/lodash/_coreJsData.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var root = require('./_root');
-
-/** Used to detect overreaching core-js shims. */
-var coreJsData = root['__core-js_shared__'];
-
-module.exports = coreJsData;
diff --git a/node_modules/babel-core/node_modules/lodash/_countHolders.js b/node_modules/babel-core/node_modules/lodash/_countHolders.js
deleted file mode 100644
index 718fcda..0000000
--- a/node_modules/babel-core/node_modules/lodash/_countHolders.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = countHolders;
diff --git a/node_modules/babel-core/node_modules/lodash/_createAggregator.js b/node_modules/babel-core/node_modules/lodash/_createAggregator.js
deleted file mode 100644
index 0be42c4..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createAggregator.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var arrayAggregator = require('./_arrayAggregator'),
- baseAggregator = require('./_baseAggregator'),
- baseIteratee = require('./_baseIteratee'),
- isArray = require('./isArray');
-
-/**
- * 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, baseIteratee(iteratee, 2), accumulator);
- };
-}
-
-module.exports = createAggregator;
diff --git a/node_modules/babel-core/node_modules/lodash/_createAssigner.js b/node_modules/babel-core/node_modules/lodash/_createAssigner.js
deleted file mode 100644
index 1f904c5..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createAssigner.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var baseRest = require('./_baseRest'),
- isIterateeCall = require('./_isIterateeCall');
-
-/**
- * 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;
- });
-}
-
-module.exports = createAssigner;
diff --git a/node_modules/babel-core/node_modules/lodash/_createBaseEach.js b/node_modules/babel-core/node_modules/lodash/_createBaseEach.js
deleted file mode 100644
index d24fdd1..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createBaseEach.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var isArrayLike = require('./isArrayLike');
-
-/**
- * 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;
- };
-}
-
-module.exports = createBaseEach;
diff --git a/node_modules/babel-core/node_modules/lodash/_createBaseFor.js b/node_modules/babel-core/node_modules/lodash/_createBaseFor.js
deleted file mode 100644
index 94cbf29..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createBaseFor.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 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;
- };
-}
-
-module.exports = createBaseFor;
diff --git a/node_modules/babel-core/node_modules/lodash/_createBind.js b/node_modules/babel-core/node_modules/lodash/_createBind.js
deleted file mode 100644
index 07cb99f..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createBind.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var createCtor = require('./_createCtor'),
- root = require('./_root');
-
-/** Used to compose bitmasks for function metadata. */
-var WRAP_BIND_FLAG = 1;
-
-/**
- * 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;
-}
-
-module.exports = createBind;
diff --git a/node_modules/babel-core/node_modules/lodash/_createCaseFirst.js b/node_modules/babel-core/node_modules/lodash/_createCaseFirst.js
deleted file mode 100644
index fe8ea48..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createCaseFirst.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var castSlice = require('./_castSlice'),
- hasUnicode = require('./_hasUnicode'),
- stringToArray = require('./_stringToArray'),
- toString = require('./toString');
-
-/**
- * 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;
- };
-}
-
-module.exports = createCaseFirst;
diff --git a/node_modules/babel-core/node_modules/lodash/_createCompounder.js b/node_modules/babel-core/node_modules/lodash/_createCompounder.js
deleted file mode 100644
index 8d4cee2..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createCompounder.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var arrayReduce = require('./_arrayReduce'),
- deburr = require('./deburr'),
- words = require('./words');
-
-/** Used to compose unicode capture groups. */
-var rsApos = "['\u2019]";
-
-/** Used to match apostrophes. */
-var reApos = RegExp(rsApos, 'g');
-
-/**
- * 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, '');
- };
-}
-
-module.exports = createCompounder;
diff --git a/node_modules/babel-core/node_modules/lodash/_createCtor.js b/node_modules/babel-core/node_modules/lodash/_createCtor.js
deleted file mode 100644
index 9047aa5..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createCtor.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var baseCreate = require('./_baseCreate'),
- isObject = require('./isObject');
-
-/**
- * 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;
- };
-}
-
-module.exports = createCtor;
diff --git a/node_modules/babel-core/node_modules/lodash/_createCurry.js b/node_modules/babel-core/node_modules/lodash/_createCurry.js
deleted file mode 100644
index f06c2cd..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createCurry.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var apply = require('./_apply'),
- createCtor = require('./_createCtor'),
- createHybrid = require('./_createHybrid'),
- createRecurry = require('./_createRecurry'),
- getHolder = require('./_getHolder'),
- replaceHolders = require('./_replaceHolders'),
- root = require('./_root');
-
-/**
- * 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;
-}
-
-module.exports = createCurry;
diff --git a/node_modules/babel-core/node_modules/lodash/_createFind.js b/node_modules/babel-core/node_modules/lodash/_createFind.js
deleted file mode 100644
index 8859ff8..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createFind.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var baseIteratee = require('./_baseIteratee'),
- isArrayLike = require('./isArrayLike'),
- keys = require('./keys');
-
-/**
- * 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 = baseIteratee(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;
- };
-}
-
-module.exports = createFind;
diff --git a/node_modules/babel-core/node_modules/lodash/_createFlow.js b/node_modules/babel-core/node_modules/lodash/_createFlow.js
deleted file mode 100644
index baaddbf..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createFlow.js
+++ /dev/null
@@ -1,78 +0,0 @@
-var LodashWrapper = require('./_LodashWrapper'),
- flatRest = require('./_flatRest'),
- getData = require('./_getData'),
- getFuncName = require('./_getFuncName'),
- isArray = require('./isArray'),
- isLaziable = require('./_isLaziable');
-
-/** Error message constants. */
-var FUNC_ERROR_TEXT = 'Expected a function';
-
-/** Used to compose bitmasks for function metadata. */
-var WRAP_CURRY_FLAG = 8,
- WRAP_PARTIAL_FLAG = 32,
- WRAP_ARY_FLAG = 128,
- WRAP_REARG_FLAG = 256;
-
-/**
- * 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;
- };
- });
-}
-
-module.exports = createFlow;
diff --git a/node_modules/babel-core/node_modules/lodash/_createHybrid.js b/node_modules/babel-core/node_modules/lodash/_createHybrid.js
deleted file mode 100644
index b671bd1..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createHybrid.js
+++ /dev/null
@@ -1,92 +0,0 @@
-var composeArgs = require('./_composeArgs'),
- composeArgsRight = require('./_composeArgsRight'),
- countHolders = require('./_countHolders'),
- createCtor = require('./_createCtor'),
- createRecurry = require('./_createRecurry'),
- getHolder = require('./_getHolder'),
- reorder = require('./_reorder'),
- replaceHolders = require('./_replaceHolders'),
- root = require('./_root');
-
-/** Used to compose bitmasks for function metadata. */
-var WRAP_BIND_FLAG = 1,
- WRAP_BIND_KEY_FLAG = 2,
- WRAP_CURRY_FLAG = 8,
- WRAP_CURRY_RIGHT_FLAG = 16,
- WRAP_ARY_FLAG = 128,
- WRAP_FLIP_FLAG = 512;
-
-/**
- * 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;
-}
-
-module.exports = createHybrid;
diff --git a/node_modules/babel-core/node_modules/lodash/_createInverter.js b/node_modules/babel-core/node_modules/lodash/_createInverter.js
deleted file mode 100644
index 6c0c562..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createInverter.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var baseInverter = require('./_baseInverter');
-
-/**
- * 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), {});
- };
-}
-
-module.exports = createInverter;
diff --git a/node_modules/babel-core/node_modules/lodash/_createMathOperation.js b/node_modules/babel-core/node_modules/lodash/_createMathOperation.js
deleted file mode 100644
index f1e238a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createMathOperation.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var baseToNumber = require('./_baseToNumber'),
- baseToString = require('./_baseToString');
-
-/**
- * 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;
- };
-}
-
-module.exports = createMathOperation;
diff --git a/node_modules/babel-core/node_modules/lodash/_createOver.js b/node_modules/babel-core/node_modules/lodash/_createOver.js
deleted file mode 100644
index 3b94551..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createOver.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var apply = require('./_apply'),
- arrayMap = require('./_arrayMap'),
- baseIteratee = require('./_baseIteratee'),
- baseRest = require('./_baseRest'),
- baseUnary = require('./_baseUnary'),
- flatRest = require('./_flatRest');
-
-/**
- * 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(baseIteratee));
- return baseRest(function(args) {
- var thisArg = this;
- return arrayFunc(iteratees, function(iteratee) {
- return apply(iteratee, thisArg, args);
- });
- });
- });
-}
-
-module.exports = createOver;
diff --git a/node_modules/babel-core/node_modules/lodash/_createPadding.js b/node_modules/babel-core/node_modules/lodash/_createPadding.js
deleted file mode 100644
index 2124612..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createPadding.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var baseRepeat = require('./_baseRepeat'),
- baseToString = require('./_baseToString'),
- castSlice = require('./_castSlice'),
- hasUnicode = require('./_hasUnicode'),
- stringSize = require('./_stringSize'),
- stringToArray = require('./_stringToArray');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeCeil = Math.ceil;
-
-/**
- * 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);
-}
-
-module.exports = createPadding;
diff --git a/node_modules/babel-core/node_modules/lodash/_createPartial.js b/node_modules/babel-core/node_modules/lodash/_createPartial.js
deleted file mode 100644
index e16c248..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createPartial.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var apply = require('./_apply'),
- createCtor = require('./_createCtor'),
- root = require('./_root');
-
-/** Used to compose bitmasks for function metadata. */
-var WRAP_BIND_FLAG = 1;
-
-/**
- * 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;
-}
-
-module.exports = createPartial;
diff --git a/node_modules/babel-core/node_modules/lodash/_createRange.js b/node_modules/babel-core/node_modules/lodash/_createRange.js
deleted file mode 100644
index 9f52c77..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createRange.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var baseRange = require('./_baseRange'),
- isIterateeCall = require('./_isIterateeCall'),
- toFinite = require('./toFinite');
-
-/**
- * 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);
- };
-}
-
-module.exports = createRange;
diff --git a/node_modules/babel-core/node_modules/lodash/_createRecurry.js b/node_modules/babel-core/node_modules/lodash/_createRecurry.js
deleted file mode 100644
index eb29fb2..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createRecurry.js
+++ /dev/null
@@ -1,56 +0,0 @@
-var isLaziable = require('./_isLaziable'),
- setData = require('./_setData'),
- setWrapToString = require('./_setWrapToString');
-
-/** 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_PARTIAL_FLAG = 32,
- WRAP_PARTIAL_RIGHT_FLAG = 64;
-
-/**
- * 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);
-}
-
-module.exports = createRecurry;
diff --git a/node_modules/babel-core/node_modules/lodash/_createRelationalOperation.js b/node_modules/babel-core/node_modules/lodash/_createRelationalOperation.js
deleted file mode 100644
index a17c6b5..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createRelationalOperation.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var toNumber = require('./toNumber');
-
-/**
- * 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);
- };
-}
-
-module.exports = createRelationalOperation;
diff --git a/node_modules/babel-core/node_modules/lodash/_createRound.js b/node_modules/babel-core/node_modules/lodash/_createRound.js
deleted file mode 100644
index bf9b713..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createRound.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var toInteger = require('./toInteger'),
- toNumber = require('./toNumber'),
- toString = require('./toString');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMin = Math.min;
-
-/**
- * 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);
- };
-}
-
-module.exports = createRound;
diff --git a/node_modules/babel-core/node_modules/lodash/_createSet.js b/node_modules/babel-core/node_modules/lodash/_createSet.js
deleted file mode 100644
index 0f644ee..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createSet.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var Set = require('./_Set'),
- noop = require('./noop'),
- setToArray = require('./_setToArray');
-
-/** Used as references for various `Number` constants. */
-var INFINITY = 1 / 0;
-
-/**
- * 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);
-};
-
-module.exports = createSet;
diff --git a/node_modules/babel-core/node_modules/lodash/_createToPairs.js b/node_modules/babel-core/node_modules/lodash/_createToPairs.js
deleted file mode 100644
index 568417a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createToPairs.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var baseToPairs = require('./_baseToPairs'),
- getTag = require('./_getTag'),
- mapToArray = require('./_mapToArray'),
- setToPairs = require('./_setToPairs');
-
-/** `Object#toString` result references. */
-var mapTag = '[object Map]',
- setTag = '[object Set]';
-
-/**
- * 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));
- };
-}
-
-module.exports = createToPairs;
diff --git a/node_modules/babel-core/node_modules/lodash/_createWrap.js b/node_modules/babel-core/node_modules/lodash/_createWrap.js
deleted file mode 100644
index 33f0633..0000000
--- a/node_modules/babel-core/node_modules/lodash/_createWrap.js
+++ /dev/null
@@ -1,106 +0,0 @@
-var baseSetData = require('./_baseSetData'),
- createBind = require('./_createBind'),
- createCurry = require('./_createCurry'),
- createHybrid = require('./_createHybrid'),
- createPartial = require('./_createPartial'),
- getData = require('./_getData'),
- mergeData = require('./_mergeData'),
- setData = require('./_setData'),
- setWrapToString = require('./_setWrapToString'),
- toInteger = require('./toInteger');
-
-/** Error message constants. */
-var FUNC_ERROR_TEXT = 'Expected a function';
-
-/** Used to compose bitmasks for function metadata. */
-var WRAP_BIND_FLAG = 1,
- WRAP_BIND_KEY_FLAG = 2,
- WRAP_CURRY_FLAG = 8,
- WRAP_CURRY_RIGHT_FLAG = 16,
- WRAP_PARTIAL_FLAG = 32,
- WRAP_PARTIAL_RIGHT_FLAG = 64;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max;
-
-/**
- * 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);
-}
-
-module.exports = createWrap;
diff --git a/node_modules/babel-core/node_modules/lodash/_customDefaultsAssignIn.js b/node_modules/babel-core/node_modules/lodash/_customDefaultsAssignIn.js
deleted file mode 100644
index 1f49e6f..0000000
--- a/node_modules/babel-core/node_modules/lodash/_customDefaultsAssignIn.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var eq = require('./eq');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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;
-}
-
-module.exports = customDefaultsAssignIn;
diff --git a/node_modules/babel-core/node_modules/lodash/_customDefaultsMerge.js b/node_modules/babel-core/node_modules/lodash/_customDefaultsMerge.js
deleted file mode 100644
index 4cab317..0000000
--- a/node_modules/babel-core/node_modules/lodash/_customDefaultsMerge.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var baseMerge = require('./_baseMerge'),
- isObject = require('./isObject');
-
-/**
- * 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;
-}
-
-module.exports = customDefaultsMerge;
diff --git a/node_modules/babel-core/node_modules/lodash/_customOmitClone.js b/node_modules/babel-core/node_modules/lodash/_customOmitClone.js
deleted file mode 100644
index 968db2e..0000000
--- a/node_modules/babel-core/node_modules/lodash/_customOmitClone.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var isPlainObject = require('./isPlainObject');
-
-/**
- * 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;
-}
-
-module.exports = customOmitClone;
diff --git a/node_modules/babel-core/node_modules/lodash/_deburrLetter.js b/node_modules/babel-core/node_modules/lodash/_deburrLetter.js
deleted file mode 100644
index 3e531ed..0000000
--- a/node_modules/babel-core/node_modules/lodash/_deburrLetter.js
+++ /dev/null
@@ -1,71 +0,0 @@
-var basePropertyOf = require('./_basePropertyOf');
-
-/** 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 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);
-
-module.exports = deburrLetter;
diff --git a/node_modules/babel-core/node_modules/lodash/_defineProperty.js b/node_modules/babel-core/node_modules/lodash/_defineProperty.js
deleted file mode 100644
index b6116d9..0000000
--- a/node_modules/babel-core/node_modules/lodash/_defineProperty.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var getNative = require('./_getNative');
-
-var defineProperty = (function() {
- try {
- var func = getNative(Object, 'defineProperty');
- func({}, '', {});
- return func;
- } catch (e) {}
-}());
-
-module.exports = defineProperty;
diff --git a/node_modules/babel-core/node_modules/lodash/_equalArrays.js b/node_modules/babel-core/node_modules/lodash/_equalArrays.js
deleted file mode 100644
index f6a3b7c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_equalArrays.js
+++ /dev/null
@@ -1,83 +0,0 @@
-var SetCache = require('./_SetCache'),
- arraySome = require('./_arraySome'),
- cacheHas = require('./_cacheHas');
-
-/** Used to compose bitmasks for value comparisons. */
-var COMPARE_PARTIAL_FLAG = 1,
- COMPARE_UNORDERED_FLAG = 2;
-
-/**
- * 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;
-}
-
-module.exports = equalArrays;
diff --git a/node_modules/babel-core/node_modules/lodash/_equalByTag.js b/node_modules/babel-core/node_modules/lodash/_equalByTag.js
deleted file mode 100644
index 71919e8..0000000
--- a/node_modules/babel-core/node_modules/lodash/_equalByTag.js
+++ /dev/null
@@ -1,112 +0,0 @@
-var Symbol = require('./_Symbol'),
- Uint8Array = require('./_Uint8Array'),
- eq = require('./eq'),
- equalArrays = require('./_equalArrays'),
- mapToArray = require('./_mapToArray'),
- setToArray = require('./_setToArray');
-
-/** Used to compose bitmasks for value comparisons. */
-var COMPARE_PARTIAL_FLAG = 1,
- COMPARE_UNORDERED_FLAG = 2;
-
-/** `Object#toString` result references. */
-var boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- errorTag = '[object Error]',
- mapTag = '[object Map]',
- numberTag = '[object Number]',
- regexpTag = '[object RegExp]',
- setTag = '[object Set]',
- stringTag = '[object String]',
- symbolTag = '[object Symbol]';
-
-var arrayBufferTag = '[object ArrayBuffer]',
- dataViewTag = '[object DataView]';
-
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
-
-/**
- * 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;
-}
-
-module.exports = equalByTag;
diff --git a/node_modules/babel-core/node_modules/lodash/_equalObjects.js b/node_modules/babel-core/node_modules/lodash/_equalObjects.js
deleted file mode 100644
index 17421f3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_equalObjects.js
+++ /dev/null
@@ -1,89 +0,0 @@
-var getAllKeys = require('./_getAllKeys');
-
-/** Used to compose bitmasks for value comparisons. */
-var COMPARE_PARTIAL_FLAG = 1;
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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;
-}
-
-module.exports = equalObjects;
diff --git a/node_modules/babel-core/node_modules/lodash/_escapeHtmlChar.js b/node_modules/babel-core/node_modules/lodash/_escapeHtmlChar.js
deleted file mode 100644
index 7ca68ee..0000000
--- a/node_modules/babel-core/node_modules/lodash/_escapeHtmlChar.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var basePropertyOf = require('./_basePropertyOf');
-
-/** Used to map characters to HTML entities. */
-var htmlEscapes = {
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- "'": '''
-};
-
-/**
- * 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);
-
-module.exports = escapeHtmlChar;
diff --git a/node_modules/babel-core/node_modules/lodash/_escapeStringChar.js b/node_modules/babel-core/node_modules/lodash/_escapeStringChar.js
deleted file mode 100644
index 44eca96..0000000
--- a/node_modules/babel-core/node_modules/lodash/_escapeStringChar.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/** Used to escape characters for inclusion in compiled string literals. */
-var stringEscapes = {
- '\\': '\\',
- "'": "'",
- '\n': 'n',
- '\r': 'r',
- '\u2028': 'u2028',
- '\u2029': 'u2029'
-};
-
-/**
- * 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];
-}
-
-module.exports = escapeStringChar;
diff --git a/node_modules/babel-core/node_modules/lodash/_flatRest.js b/node_modules/babel-core/node_modules/lodash/_flatRest.js
deleted file mode 100644
index 94ab6cc..0000000
--- a/node_modules/babel-core/node_modules/lodash/_flatRest.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var flatten = require('./flatten'),
- overRest = require('./_overRest'),
- setToString = require('./_setToString');
-
-/**
- * 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 + '');
-}
-
-module.exports = flatRest;
diff --git a/node_modules/babel-core/node_modules/lodash/_freeGlobal.js b/node_modules/babel-core/node_modules/lodash/_freeGlobal.js
deleted file mode 100644
index bbec998..0000000
--- a/node_modules/babel-core/node_modules/lodash/_freeGlobal.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/** Detect free variable `global` from Node.js. */
-var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
-
-module.exports = freeGlobal;
diff --git a/node_modules/babel-core/node_modules/lodash/_getAllKeys.js b/node_modules/babel-core/node_modules/lodash/_getAllKeys.js
deleted file mode 100644
index a9ce699..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getAllKeys.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var baseGetAllKeys = require('./_baseGetAllKeys'),
- getSymbols = require('./_getSymbols'),
- keys = require('./keys');
-
-/**
- * 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);
-}
-
-module.exports = getAllKeys;
diff --git a/node_modules/babel-core/node_modules/lodash/_getAllKeysIn.js b/node_modules/babel-core/node_modules/lodash/_getAllKeysIn.js
deleted file mode 100644
index 1b46678..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getAllKeysIn.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var baseGetAllKeys = require('./_baseGetAllKeys'),
- getSymbolsIn = require('./_getSymbolsIn'),
- keysIn = require('./keysIn');
-
-/**
- * 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);
-}
-
-module.exports = getAllKeysIn;
diff --git a/node_modules/babel-core/node_modules/lodash/_getData.js b/node_modules/babel-core/node_modules/lodash/_getData.js
deleted file mode 100644
index a1fe7b7..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getData.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var metaMap = require('./_metaMap'),
- noop = require('./noop');
-
-/**
- * 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);
-};
-
-module.exports = getData;
diff --git a/node_modules/babel-core/node_modules/lodash/_getFuncName.js b/node_modules/babel-core/node_modules/lodash/_getFuncName.js
deleted file mode 100644
index 21e15b3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getFuncName.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var realNames = require('./_realNames');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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;
-}
-
-module.exports = getFuncName;
diff --git a/node_modules/babel-core/node_modules/lodash/_getHolder.js b/node_modules/babel-core/node_modules/lodash/_getHolder.js
deleted file mode 100644
index 65e94b5..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getHolder.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * 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 = func;
- return object.placeholder;
-}
-
-module.exports = getHolder;
diff --git a/node_modules/babel-core/node_modules/lodash/_getMapData.js b/node_modules/babel-core/node_modules/lodash/_getMapData.js
deleted file mode 100644
index 17f6303..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getMapData.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var isKeyable = require('./_isKeyable');
-
-/**
- * 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;
-}
-
-module.exports = getMapData;
diff --git a/node_modules/babel-core/node_modules/lodash/_getMatchData.js b/node_modules/babel-core/node_modules/lodash/_getMatchData.js
deleted file mode 100644
index 2cc70f9..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getMatchData.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var isStrictComparable = require('./_isStrictComparable'),
- keys = require('./keys');
-
-/**
- * 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;
-}
-
-module.exports = getMatchData;
diff --git a/node_modules/babel-core/node_modules/lodash/_getNative.js b/node_modules/babel-core/node_modules/lodash/_getNative.js
deleted file mode 100644
index 97a622b..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getNative.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var baseIsNative = require('./_baseIsNative'),
- getValue = require('./_getValue');
-
-/**
- * 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;
-}
-
-module.exports = getNative;
diff --git a/node_modules/babel-core/node_modules/lodash/_getPrototype.js b/node_modules/babel-core/node_modules/lodash/_getPrototype.js
deleted file mode 100644
index e808612..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getPrototype.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var overArg = require('./_overArg');
-
-/** Built-in value references. */
-var getPrototype = overArg(Object.getPrototypeOf, Object);
-
-module.exports = getPrototype;
diff --git a/node_modules/babel-core/node_modules/lodash/_getRawTag.js b/node_modules/babel-core/node_modules/lodash/_getRawTag.js
deleted file mode 100644
index 49a95c9..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getRawTag.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var Symbol = require('./_Symbol');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var nativeObjectToString = objectProto.toString;
-
-/** Built-in value references. */
-var symToStringTag = Symbol ? Symbol.toStringTag : 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;
-}
-
-module.exports = getRawTag;
diff --git a/node_modules/babel-core/node_modules/lodash/_getSymbols.js b/node_modules/babel-core/node_modules/lodash/_getSymbols.js
deleted file mode 100644
index 7d6eafe..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getSymbols.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var arrayFilter = require('./_arrayFilter'),
- stubArray = require('./stubArray');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Built-in value references. */
-var propertyIsEnumerable = objectProto.propertyIsEnumerable;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeGetSymbols = Object.getOwnPropertySymbols;
-
-/**
- * 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);
- });
-};
-
-module.exports = getSymbols;
diff --git a/node_modules/babel-core/node_modules/lodash/_getSymbolsIn.js b/node_modules/babel-core/node_modules/lodash/_getSymbolsIn.js
deleted file mode 100644
index cec0855..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getSymbolsIn.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var arrayPush = require('./_arrayPush'),
- getPrototype = require('./_getPrototype'),
- getSymbols = require('./_getSymbols'),
- stubArray = require('./stubArray');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeGetSymbols = Object.getOwnPropertySymbols;
-
-/**
- * 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;
-};
-
-module.exports = getSymbolsIn;
diff --git a/node_modules/babel-core/node_modules/lodash/_getTag.js b/node_modules/babel-core/node_modules/lodash/_getTag.js
deleted file mode 100644
index deaf89d..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getTag.js
+++ /dev/null
@@ -1,58 +0,0 @@
-var DataView = require('./_DataView'),
- Map = require('./_Map'),
- Promise = require('./_Promise'),
- Set = require('./_Set'),
- WeakMap = require('./_WeakMap'),
- baseGetTag = require('./_baseGetTag'),
- toSource = require('./_toSource');
-
-/** `Object#toString` result references. */
-var mapTag = '[object Map]',
- objectTag = '[object Object]',
- promiseTag = '[object Promise]',
- setTag = '[object Set]',
- weakMapTag = '[object WeakMap]';
-
-var dataViewTag = '[object DataView]';
-
-/** Used to detect maps, sets, and weakmaps. */
-var dataViewCtorString = toSource(DataView),
- mapCtorString = toSource(Map),
- promiseCtorString = toSource(Promise),
- setCtorString = toSource(Set),
- weakMapCtorString = toSource(WeakMap);
-
-/**
- * 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;
- };
-}
-
-module.exports = getTag;
diff --git a/node_modules/babel-core/node_modules/lodash/_getValue.js b/node_modules/babel-core/node_modules/lodash/_getValue.js
deleted file mode 100644
index 5f7d773..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getValue.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * 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];
-}
-
-module.exports = getValue;
diff --git a/node_modules/babel-core/node_modules/lodash/_getView.js b/node_modules/babel-core/node_modules/lodash/_getView.js
deleted file mode 100644
index df1e5d4..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getView.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max,
- nativeMin = Math.min;
-
-/**
- * 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 };
-}
-
-module.exports = getView;
diff --git a/node_modules/babel-core/node_modules/lodash/_getWrapDetails.js b/node_modules/babel-core/node_modules/lodash/_getWrapDetails.js
deleted file mode 100644
index 3bcc6e4..0000000
--- a/node_modules/babel-core/node_modules/lodash/_getWrapDetails.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/** Used to match wrap detail comments. */
-var reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/,
- reSplitDetails = /,? & /;
-
-/**
- * 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) : [];
-}
-
-module.exports = getWrapDetails;
diff --git a/node_modules/babel-core/node_modules/lodash/_hasPath.js b/node_modules/babel-core/node_modules/lodash/_hasPath.js
deleted file mode 100644
index 93dbde1..0000000
--- a/node_modules/babel-core/node_modules/lodash/_hasPath.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var castPath = require('./_castPath'),
- isArguments = require('./isArguments'),
- isArray = require('./isArray'),
- isIndex = require('./_isIndex'),
- isLength = require('./isLength'),
- toKey = require('./_toKey');
-
-/**
- * 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));
-}
-
-module.exports = hasPath;
diff --git a/node_modules/babel-core/node_modules/lodash/_hasUnicode.js b/node_modules/babel-core/node_modules/lodash/_hasUnicode.js
deleted file mode 100644
index cb6ca15..0000000
--- a/node_modules/babel-core/node_modules/lodash/_hasUnicode.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/** Used to compose unicode character classes. */
-var rsAstralRange = '\\ud800-\\udfff',
- rsComboMarksRange = '\\u0300-\\u036f',
- reComboHalfMarksRange = '\\ufe20-\\ufe2f',
- rsComboSymbolsRange = '\\u20d0-\\u20ff',
- rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
- rsVarRange = '\\ufe0e\\ufe0f';
-
-/** Used to compose unicode capture groups. */
-var rsZWJ = '\\u200d';
-
-/** 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 + ']');
-
-/**
- * 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);
-}
-
-module.exports = hasUnicode;
diff --git a/node_modules/babel-core/node_modules/lodash/_hasUnicodeWord.js b/node_modules/babel-core/node_modules/lodash/_hasUnicodeWord.js
deleted file mode 100644
index a35d6e5..0000000
--- a/node_modules/babel-core/node_modules/lodash/_hasUnicodeWord.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/** 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 ]/;
-
-/**
- * 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);
-}
-
-module.exports = hasUnicodeWord;
diff --git a/node_modules/babel-core/node_modules/lodash/_hashClear.js b/node_modules/babel-core/node_modules/lodash/_hashClear.js
deleted file mode 100644
index 5d4b70c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_hashClear.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var nativeCreate = require('./_nativeCreate');
-
-/**
- * Removes all key-value entries from the hash.
- *
- * @private
- * @name clear
- * @memberOf Hash
- */
-function hashClear() {
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
- this.size = 0;
-}
-
-module.exports = hashClear;
diff --git a/node_modules/babel-core/node_modules/lodash/_hashDelete.js b/node_modules/babel-core/node_modules/lodash/_hashDelete.js
deleted file mode 100644
index ea9dabf..0000000
--- a/node_modules/babel-core/node_modules/lodash/_hashDelete.js
+++ /dev/null
@@ -1,17 +0,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;
-}
-
-module.exports = hashDelete;
diff --git a/node_modules/babel-core/node_modules/lodash/_hashGet.js b/node_modules/babel-core/node_modules/lodash/_hashGet.js
deleted file mode 100644
index 1fc2f34..0000000
--- a/node_modules/babel-core/node_modules/lodash/_hashGet.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var nativeCreate = require('./_nativeCreate');
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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;
-}
-
-module.exports = hashGet;
diff --git a/node_modules/babel-core/node_modules/lodash/_hashHas.js b/node_modules/babel-core/node_modules/lodash/_hashHas.js
deleted file mode 100644
index 281a551..0000000
--- a/node_modules/babel-core/node_modules/lodash/_hashHas.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var nativeCreate = require('./_nativeCreate');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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);
-}
-
-module.exports = hashHas;
diff --git a/node_modules/babel-core/node_modules/lodash/_hashSet.js b/node_modules/babel-core/node_modules/lodash/_hashSet.js
deleted file mode 100644
index e105528..0000000
--- a/node_modules/babel-core/node_modules/lodash/_hashSet.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var nativeCreate = require('./_nativeCreate');
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/**
- * 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;
-}
-
-module.exports = hashSet;
diff --git a/node_modules/babel-core/node_modules/lodash/_initCloneArray.js b/node_modules/babel-core/node_modules/lodash/_initCloneArray.js
deleted file mode 100644
index aef0212..0000000
--- a/node_modules/babel-core/node_modules/lodash/_initCloneArray.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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 = 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;
-}
-
-module.exports = initCloneArray;
diff --git a/node_modules/babel-core/node_modules/lodash/_initCloneByTag.js b/node_modules/babel-core/node_modules/lodash/_initCloneByTag.js
deleted file mode 100644
index e7b77ed..0000000
--- a/node_modules/babel-core/node_modules/lodash/_initCloneByTag.js
+++ /dev/null
@@ -1,80 +0,0 @@
-var cloneArrayBuffer = require('./_cloneArrayBuffer'),
- cloneDataView = require('./_cloneDataView'),
- cloneMap = require('./_cloneMap'),
- cloneRegExp = require('./_cloneRegExp'),
- cloneSet = require('./_cloneSet'),
- cloneSymbol = require('./_cloneSymbol'),
- cloneTypedArray = require('./_cloneTypedArray');
-
-/** `Object#toString` result references. */
-var boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- mapTag = '[object Map]',
- numberTag = '[object Number]',
- regexpTag = '[object RegExp]',
- setTag = '[object Set]',
- stringTag = '[object String]',
- symbolTag = '[object Symbol]';
-
-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]';
-
-/**
- * Initializes an object clone based on its `toStringTag`.
- *
- * **Note:** This function only supports cloning values with tags of
- * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
- *
- * @private
- * @param {Object} object The object to clone.
- * @param {string} tag The `toStringTag` of the object to clone.
- * @param {Function} cloneFunc The function to clone values.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the initialized clone.
- */
-function initCloneByTag(object, tag, cloneFunc, 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 cloneMap(object, isDeep, cloneFunc);
-
- case numberTag:
- case stringTag:
- return new Ctor(object);
-
- case regexpTag:
- return cloneRegExp(object);
-
- case setTag:
- return cloneSet(object, isDeep, cloneFunc);
-
- case symbolTag:
- return cloneSymbol(object);
- }
-}
-
-module.exports = initCloneByTag;
diff --git a/node_modules/babel-core/node_modules/lodash/_initCloneObject.js b/node_modules/babel-core/node_modules/lodash/_initCloneObject.js
deleted file mode 100644
index 5a13e64..0000000
--- a/node_modules/babel-core/node_modules/lodash/_initCloneObject.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var baseCreate = require('./_baseCreate'),
- getPrototype = require('./_getPrototype'),
- isPrototype = require('./_isPrototype');
-
-/**
- * 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))
- : {};
-}
-
-module.exports = initCloneObject;
diff --git a/node_modules/babel-core/node_modules/lodash/_insertWrapDetails.js b/node_modules/babel-core/node_modules/lodash/_insertWrapDetails.js
deleted file mode 100644
index e790808..0000000
--- a/node_modules/babel-core/node_modules/lodash/_insertWrapDetails.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/** Used to match wrap detail comments. */
-var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;
-
-/**
- * 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');
-}
-
-module.exports = insertWrapDetails;
diff --git a/node_modules/babel-core/node_modules/lodash/_isFlattenable.js b/node_modules/babel-core/node_modules/lodash/_isFlattenable.js
deleted file mode 100644
index 4cc2c24..0000000
--- a/node_modules/babel-core/node_modules/lodash/_isFlattenable.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var Symbol = require('./_Symbol'),
- isArguments = require('./isArguments'),
- isArray = require('./isArray');
-
-/** Built-in value references. */
-var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
-
-/**
- * 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]);
-}
-
-module.exports = isFlattenable;
diff --git a/node_modules/babel-core/node_modules/lodash/_isIndex.js b/node_modules/babel-core/node_modules/lodash/_isIndex.js
deleted file mode 100644
index e123dde..0000000
--- a/node_modules/babel-core/node_modules/lodash/_isIndex.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/** Used as references for various `Number` constants. */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/** Used to detect unsigned integer values. */
-var reIsUint = /^(?:0|[1-9]\d*)$/;
-
-/**
- * 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) {
- length = length == null ? MAX_SAFE_INTEGER : length;
- return !!length &&
- (typeof value == 'number' || reIsUint.test(value)) &&
- (value > -1 && value % 1 == 0 && value < length);
-}
-
-module.exports = isIndex;
diff --git a/node_modules/babel-core/node_modules/lodash/_isIterateeCall.js b/node_modules/babel-core/node_modules/lodash/_isIterateeCall.js
deleted file mode 100644
index a0bb5a9..0000000
--- a/node_modules/babel-core/node_modules/lodash/_isIterateeCall.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var eq = require('./eq'),
- isArrayLike = require('./isArrayLike'),
- isIndex = require('./_isIndex'),
- isObject = require('./isObject');
-
-/**
- * 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;
-}
-
-module.exports = isIterateeCall;
diff --git a/node_modules/babel-core/node_modules/lodash/_isKey.js b/node_modules/babel-core/node_modules/lodash/_isKey.js
deleted file mode 100644
index ff08b06..0000000
--- a/node_modules/babel-core/node_modules/lodash/_isKey.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var isArray = require('./isArray'),
- isSymbol = require('./isSymbol');
-
-/** Used to match property names within property paths. */
-var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
- reIsPlainProp = /^\w*$/;
-
-/**
- * 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));
-}
-
-module.exports = isKey;
diff --git a/node_modules/babel-core/node_modules/lodash/_isKeyable.js b/node_modules/babel-core/node_modules/lodash/_isKeyable.js
deleted file mode 100644
index 39f1828..0000000
--- a/node_modules/babel-core/node_modules/lodash/_isKeyable.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * 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);
-}
-
-module.exports = isKeyable;
diff --git a/node_modules/babel-core/node_modules/lodash/_isLaziable.js b/node_modules/babel-core/node_modules/lodash/_isLaziable.js
deleted file mode 100644
index a57c4f2..0000000
--- a/node_modules/babel-core/node_modules/lodash/_isLaziable.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var LazyWrapper = require('./_LazyWrapper'),
- getData = require('./_getData'),
- getFuncName = require('./_getFuncName'),
- lodash = require('./wrapperLodash');
-
-/**
- * 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];
-}
-
-module.exports = isLaziable;
diff --git a/node_modules/babel-core/node_modules/lodash/_isMaskable.js b/node_modules/babel-core/node_modules/lodash/_isMaskable.js
deleted file mode 100644
index eb98d09..0000000
--- a/node_modules/babel-core/node_modules/lodash/_isMaskable.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var coreJsData = require('./_coreJsData'),
- isFunction = require('./isFunction'),
- stubFalse = require('./stubFalse');
-
-/**
- * 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;
-
-module.exports = isMaskable;
diff --git a/node_modules/babel-core/node_modules/lodash/_isMasked.js b/node_modules/babel-core/node_modules/lodash/_isMasked.js
deleted file mode 100644
index 4b0f21b..0000000
--- a/node_modules/babel-core/node_modules/lodash/_isMasked.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var coreJsData = require('./_coreJsData');
-
-/** 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) : '';
-}());
-
-/**
- * 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);
-}
-
-module.exports = isMasked;
diff --git a/node_modules/babel-core/node_modules/lodash/_isPrototype.js b/node_modules/babel-core/node_modules/lodash/_isPrototype.js
deleted file mode 100644
index 0f29498..0000000
--- a/node_modules/babel-core/node_modules/lodash/_isPrototype.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * 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;
-}
-
-module.exports = isPrototype;
diff --git a/node_modules/babel-core/node_modules/lodash/_isStrictComparable.js b/node_modules/babel-core/node_modules/lodash/_isStrictComparable.js
deleted file mode 100644
index b59f40b..0000000
--- a/node_modules/babel-core/node_modules/lodash/_isStrictComparable.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var isObject = require('./isObject');
-
-/**
- * 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);
-}
-
-module.exports = isStrictComparable;
diff --git a/node_modules/babel-core/node_modules/lodash/_iteratorToArray.js b/node_modules/babel-core/node_modules/lodash/_iteratorToArray.js
deleted file mode 100644
index 4768566..0000000
--- a/node_modules/babel-core/node_modules/lodash/_iteratorToArray.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = iteratorToArray;
diff --git a/node_modules/babel-core/node_modules/lodash/_lazyClone.js b/node_modules/babel-core/node_modules/lodash/_lazyClone.js
deleted file mode 100644
index d8a51f8..0000000
--- a/node_modules/babel-core/node_modules/lodash/_lazyClone.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var LazyWrapper = require('./_LazyWrapper'),
- copyArray = require('./_copyArray');
-
-/**
- * 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;
-}
-
-module.exports = lazyClone;
diff --git a/node_modules/babel-core/node_modules/lodash/_lazyReverse.js b/node_modules/babel-core/node_modules/lodash/_lazyReverse.js
deleted file mode 100644
index c5b5219..0000000
--- a/node_modules/babel-core/node_modules/lodash/_lazyReverse.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var LazyWrapper = require('./_LazyWrapper');
-
-/**
- * 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;
-}
-
-module.exports = lazyReverse;
diff --git a/node_modules/babel-core/node_modules/lodash/_lazyValue.js b/node_modules/babel-core/node_modules/lodash/_lazyValue.js
deleted file mode 100644
index 371ca8d..0000000
--- a/node_modules/babel-core/node_modules/lodash/_lazyValue.js
+++ /dev/null
@@ -1,69 +0,0 @@
-var baseWrapperValue = require('./_baseWrapperValue'),
- getView = require('./_getView'),
- isArray = require('./isArray');
-
-/** Used to indicate the type of lazy iteratees. */
-var LAZY_FILTER_FLAG = 1,
- LAZY_MAP_FLAG = 2;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMin = Math.min;
-
-/**
- * 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;
-}
-
-module.exports = lazyValue;
diff --git a/node_modules/babel-core/node_modules/lodash/_listCacheClear.js b/node_modules/babel-core/node_modules/lodash/_listCacheClear.js
deleted file mode 100644
index acbe39a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_listCacheClear.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Removes all key-value entries from the list cache.
- *
- * @private
- * @name clear
- * @memberOf ListCache
- */
-function listCacheClear() {
- this.__data__ = [];
- this.size = 0;
-}
-
-module.exports = listCacheClear;
diff --git a/node_modules/babel-core/node_modules/lodash/_listCacheDelete.js b/node_modules/babel-core/node_modules/lodash/_listCacheDelete.js
deleted file mode 100644
index b1384ad..0000000
--- a/node_modules/babel-core/node_modules/lodash/_listCacheDelete.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var assocIndexOf = require('./_assocIndexOf');
-
-/** Used for built-in method references. */
-var arrayProto = Array.prototype;
-
-/** Built-in value references. */
-var splice = arrayProto.splice;
-
-/**
- * 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;
-}
-
-module.exports = listCacheDelete;
diff --git a/node_modules/babel-core/node_modules/lodash/_listCacheGet.js b/node_modules/babel-core/node_modules/lodash/_listCacheGet.js
deleted file mode 100644
index f8192fc..0000000
--- a/node_modules/babel-core/node_modules/lodash/_listCacheGet.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var assocIndexOf = require('./_assocIndexOf');
-
-/**
- * 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];
-}
-
-module.exports = listCacheGet;
diff --git a/node_modules/babel-core/node_modules/lodash/_listCacheHas.js b/node_modules/babel-core/node_modules/lodash/_listCacheHas.js
deleted file mode 100644
index 2adf671..0000000
--- a/node_modules/babel-core/node_modules/lodash/_listCacheHas.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var assocIndexOf = require('./_assocIndexOf');
-
-/**
- * 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;
-}
-
-module.exports = listCacheHas;
diff --git a/node_modules/babel-core/node_modules/lodash/_listCacheSet.js b/node_modules/babel-core/node_modules/lodash/_listCacheSet.js
deleted file mode 100644
index 5855c95..0000000
--- a/node_modules/babel-core/node_modules/lodash/_listCacheSet.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var assocIndexOf = require('./_assocIndexOf');
-
-/**
- * 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;
-}
-
-module.exports = listCacheSet;
diff --git a/node_modules/babel-core/node_modules/lodash/_mapCacheClear.js b/node_modules/babel-core/node_modules/lodash/_mapCacheClear.js
deleted file mode 100644
index bc9ca20..0000000
--- a/node_modules/babel-core/node_modules/lodash/_mapCacheClear.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var Hash = require('./_Hash'),
- ListCache = require('./_ListCache'),
- Map = require('./_Map');
-
-/**
- * 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
- };
-}
-
-module.exports = mapCacheClear;
diff --git a/node_modules/babel-core/node_modules/lodash/_mapCacheDelete.js b/node_modules/babel-core/node_modules/lodash/_mapCacheDelete.js
deleted file mode 100644
index 946ca3c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_mapCacheDelete.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var getMapData = require('./_getMapData');
-
-/**
- * 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;
-}
-
-module.exports = mapCacheDelete;
diff --git a/node_modules/babel-core/node_modules/lodash/_mapCacheGet.js b/node_modules/babel-core/node_modules/lodash/_mapCacheGet.js
deleted file mode 100644
index f29f55c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_mapCacheGet.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var getMapData = require('./_getMapData');
-
-/**
- * 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);
-}
-
-module.exports = mapCacheGet;
diff --git a/node_modules/babel-core/node_modules/lodash/_mapCacheHas.js b/node_modules/babel-core/node_modules/lodash/_mapCacheHas.js
deleted file mode 100644
index a1214c0..0000000
--- a/node_modules/babel-core/node_modules/lodash/_mapCacheHas.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var getMapData = require('./_getMapData');
-
-/**
- * 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);
-}
-
-module.exports = mapCacheHas;
diff --git a/node_modules/babel-core/node_modules/lodash/_mapCacheSet.js b/node_modules/babel-core/node_modules/lodash/_mapCacheSet.js
deleted file mode 100644
index 7346849..0000000
--- a/node_modules/babel-core/node_modules/lodash/_mapCacheSet.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var getMapData = require('./_getMapData');
-
-/**
- * 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;
-}
-
-module.exports = mapCacheSet;
diff --git a/node_modules/babel-core/node_modules/lodash/_mapToArray.js b/node_modules/babel-core/node_modules/lodash/_mapToArray.js
deleted file mode 100644
index fe3dd53..0000000
--- a/node_modules/babel-core/node_modules/lodash/_mapToArray.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = mapToArray;
diff --git a/node_modules/babel-core/node_modules/lodash/_matchesStrictComparable.js b/node_modules/babel-core/node_modules/lodash/_matchesStrictComparable.js
deleted file mode 100644
index f608af9..0000000
--- a/node_modules/babel-core/node_modules/lodash/_matchesStrictComparable.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * 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)));
- };
-}
-
-module.exports = matchesStrictComparable;
diff --git a/node_modules/babel-core/node_modules/lodash/_memoizeCapped.js b/node_modules/babel-core/node_modules/lodash/_memoizeCapped.js
deleted file mode 100644
index 7f71c8f..0000000
--- a/node_modules/babel-core/node_modules/lodash/_memoizeCapped.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var memoize = require('./memoize');
-
-/** Used as the maximum memoize cache size. */
-var MAX_MEMOIZE_SIZE = 500;
-
-/**
- * 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;
-}
-
-module.exports = memoizeCapped;
diff --git a/node_modules/babel-core/node_modules/lodash/_mergeData.js b/node_modules/babel-core/node_modules/lodash/_mergeData.js
deleted file mode 100644
index cb570f9..0000000
--- a/node_modules/babel-core/node_modules/lodash/_mergeData.js
+++ /dev/null
@@ -1,90 +0,0 @@
-var composeArgs = require('./_composeArgs'),
- composeArgsRight = require('./_composeArgsRight'),
- replaceHolders = require('./_replaceHolders');
-
-/** Used as the internal argument placeholder. */
-var PLACEHOLDER = '__lodash_placeholder__';
-
-/** 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_ARY_FLAG = 128,
- WRAP_REARG_FLAG = 256;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMin = Math.min;
-
-/**
- * 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;
-}
-
-module.exports = mergeData;
diff --git a/node_modules/babel-core/node_modules/lodash/_metaMap.js b/node_modules/babel-core/node_modules/lodash/_metaMap.js
deleted file mode 100644
index 0157a0b..0000000
--- a/node_modules/babel-core/node_modules/lodash/_metaMap.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var WeakMap = require('./_WeakMap');
-
-/** Used to store function metadata. */
-var metaMap = WeakMap && new WeakMap;
-
-module.exports = metaMap;
diff --git a/node_modules/babel-core/node_modules/lodash/_nativeCreate.js b/node_modules/babel-core/node_modules/lodash/_nativeCreate.js
deleted file mode 100644
index c7aede8..0000000
--- a/node_modules/babel-core/node_modules/lodash/_nativeCreate.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var getNative = require('./_getNative');
-
-/* Built-in method references that are verified to be native. */
-var nativeCreate = getNative(Object, 'create');
-
-module.exports = nativeCreate;
diff --git a/node_modules/babel-core/node_modules/lodash/_nativeKeys.js b/node_modules/babel-core/node_modules/lodash/_nativeKeys.js
deleted file mode 100644
index 479a104..0000000
--- a/node_modules/babel-core/node_modules/lodash/_nativeKeys.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var overArg = require('./_overArg');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeKeys = overArg(Object.keys, Object);
-
-module.exports = nativeKeys;
diff --git a/node_modules/babel-core/node_modules/lodash/_nativeKeysIn.js b/node_modules/babel-core/node_modules/lodash/_nativeKeysIn.js
deleted file mode 100644
index 00ee505..0000000
--- a/node_modules/babel-core/node_modules/lodash/_nativeKeysIn.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = nativeKeysIn;
diff --git a/node_modules/babel-core/node_modules/lodash/_nodeUtil.js b/node_modules/babel-core/node_modules/lodash/_nodeUtil.js
deleted file mode 100644
index 14e179f..0000000
--- a/node_modules/babel-core/node_modules/lodash/_nodeUtil.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var freeGlobal = require('./_freeGlobal');
-
-/** 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 {
- return freeProcess && freeProcess.binding && freeProcess.binding('util');
- } catch (e) {}
-}());
-
-module.exports = nodeUtil;
diff --git a/node_modules/babel-core/node_modules/lodash/_objectToString.js b/node_modules/babel-core/node_modules/lodash/_objectToString.js
deleted file mode 100644
index c614ec0..0000000
--- a/node_modules/babel-core/node_modules/lodash/_objectToString.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var nativeObjectToString = objectProto.toString;
-
-/**
- * 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);
-}
-
-module.exports = objectToString;
diff --git a/node_modules/babel-core/node_modules/lodash/_overArg.js b/node_modules/babel-core/node_modules/lodash/_overArg.js
deleted file mode 100644
index 651c5c5..0000000
--- a/node_modules/babel-core/node_modules/lodash/_overArg.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * 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));
- };
-}
-
-module.exports = overArg;
diff --git a/node_modules/babel-core/node_modules/lodash/_overRest.js b/node_modules/babel-core/node_modules/lodash/_overRest.js
deleted file mode 100644
index c7cdef3..0000000
--- a/node_modules/babel-core/node_modules/lodash/_overRest.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var apply = require('./_apply');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max;
-
-/**
- * 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);
- };
-}
-
-module.exports = overRest;
diff --git a/node_modules/babel-core/node_modules/lodash/_parent.js b/node_modules/babel-core/node_modules/lodash/_parent.js
deleted file mode 100644
index f174328..0000000
--- a/node_modules/babel-core/node_modules/lodash/_parent.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var baseGet = require('./_baseGet'),
- baseSlice = require('./_baseSlice');
-
-/**
- * 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));
-}
-
-module.exports = parent;
diff --git a/node_modules/babel-core/node_modules/lodash/_reEscape.js b/node_modules/babel-core/node_modules/lodash/_reEscape.js
deleted file mode 100644
index 7f47eda..0000000
--- a/node_modules/babel-core/node_modules/lodash/_reEscape.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/** Used to match template delimiters. */
-var reEscape = /<%-([\s\S]+?)%>/g;
-
-module.exports = reEscape;
diff --git a/node_modules/babel-core/node_modules/lodash/_reEvaluate.js b/node_modules/babel-core/node_modules/lodash/_reEvaluate.js
deleted file mode 100644
index 6adfc31..0000000
--- a/node_modules/babel-core/node_modules/lodash/_reEvaluate.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/** Used to match template delimiters. */
-var reEvaluate = /<%([\s\S]+?)%>/g;
-
-module.exports = reEvaluate;
diff --git a/node_modules/babel-core/node_modules/lodash/_reInterpolate.js b/node_modules/babel-core/node_modules/lodash/_reInterpolate.js
deleted file mode 100644
index d02ff0b..0000000
--- a/node_modules/babel-core/node_modules/lodash/_reInterpolate.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/** Used to match template delimiters. */
-var reInterpolate = /<%=([\s\S]+?)%>/g;
-
-module.exports = reInterpolate;
diff --git a/node_modules/babel-core/node_modules/lodash/_realNames.js b/node_modules/babel-core/node_modules/lodash/_realNames.js
deleted file mode 100644
index aa0d529..0000000
--- a/node_modules/babel-core/node_modules/lodash/_realNames.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/** Used to lookup unminified function names. */
-var realNames = {};
-
-module.exports = realNames;
diff --git a/node_modules/babel-core/node_modules/lodash/_reorder.js b/node_modules/babel-core/node_modules/lodash/_reorder.js
deleted file mode 100644
index a3502b0..0000000
--- a/node_modules/babel-core/node_modules/lodash/_reorder.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var copyArray = require('./_copyArray'),
- isIndex = require('./_isIndex');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMin = Math.min;
-
-/**
- * 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;
-}
-
-module.exports = reorder;
diff --git a/node_modules/babel-core/node_modules/lodash/_replaceHolders.js b/node_modules/babel-core/node_modules/lodash/_replaceHolders.js
deleted file mode 100644
index 74360ec..0000000
--- a/node_modules/babel-core/node_modules/lodash/_replaceHolders.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/** Used as the internal argument placeholder. */
-var PLACEHOLDER = '__lodash_placeholder__';
-
-/**
- * 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;
-}
-
-module.exports = replaceHolders;
diff --git a/node_modules/babel-core/node_modules/lodash/_root.js b/node_modules/babel-core/node_modules/lodash/_root.js
deleted file mode 100644
index d2852be..0000000
--- a/node_modules/babel-core/node_modules/lodash/_root.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var freeGlobal = require('./_freeGlobal');
-
-/** 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')();
-
-module.exports = root;
diff --git a/node_modules/babel-core/node_modules/lodash/_setCacheAdd.js b/node_modules/babel-core/node_modules/lodash/_setCacheAdd.js
deleted file mode 100644
index 1081a74..0000000
--- a/node_modules/babel-core/node_modules/lodash/_setCacheAdd.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/**
- * 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;
-}
-
-module.exports = setCacheAdd;
diff --git a/node_modules/babel-core/node_modules/lodash/_setCacheHas.js b/node_modules/babel-core/node_modules/lodash/_setCacheHas.js
deleted file mode 100644
index 9a49255..0000000
--- a/node_modules/babel-core/node_modules/lodash/_setCacheHas.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * 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);
-}
-
-module.exports = setCacheHas;
diff --git a/node_modules/babel-core/node_modules/lodash/_setData.js b/node_modules/babel-core/node_modules/lodash/_setData.js
deleted file mode 100644
index e5cf3eb..0000000
--- a/node_modules/babel-core/node_modules/lodash/_setData.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var baseSetData = require('./_baseSetData'),
- shortOut = require('./_shortOut');
-
-/**
- * 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);
-
-module.exports = setData;
diff --git a/node_modules/babel-core/node_modules/lodash/_setToArray.js b/node_modules/babel-core/node_modules/lodash/_setToArray.js
deleted file mode 100644
index b87f074..0000000
--- a/node_modules/babel-core/node_modules/lodash/_setToArray.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = setToArray;
diff --git a/node_modules/babel-core/node_modules/lodash/_setToPairs.js b/node_modules/babel-core/node_modules/lodash/_setToPairs.js
deleted file mode 100644
index 36ad37a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_setToPairs.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = setToPairs;
diff --git a/node_modules/babel-core/node_modules/lodash/_setToString.js b/node_modules/babel-core/node_modules/lodash/_setToString.js
deleted file mode 100644
index 6ca8419..0000000
--- a/node_modules/babel-core/node_modules/lodash/_setToString.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var baseSetToString = require('./_baseSetToString'),
- shortOut = require('./_shortOut');
-
-/**
- * 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);
-
-module.exports = setToString;
diff --git a/node_modules/babel-core/node_modules/lodash/_setWrapToString.js b/node_modules/babel-core/node_modules/lodash/_setWrapToString.js
deleted file mode 100644
index decdc44..0000000
--- a/node_modules/babel-core/node_modules/lodash/_setWrapToString.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var getWrapDetails = require('./_getWrapDetails'),
- insertWrapDetails = require('./_insertWrapDetails'),
- setToString = require('./_setToString'),
- updateWrapDetails = require('./_updateWrapDetails');
-
-/**
- * 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)));
-}
-
-module.exports = setWrapToString;
diff --git a/node_modules/babel-core/node_modules/lodash/_shortOut.js b/node_modules/babel-core/node_modules/lodash/_shortOut.js
deleted file mode 100644
index 3300a07..0000000
--- a/node_modules/babel-core/node_modules/lodash/_shortOut.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/** Used to detect hot functions by number of calls within a span of milliseconds. */
-var HOT_COUNT = 800,
- HOT_SPAN = 16;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeNow = Date.now;
-
-/**
- * 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);
- };
-}
-
-module.exports = shortOut;
diff --git a/node_modules/babel-core/node_modules/lodash/_shuffleSelf.js b/node_modules/babel-core/node_modules/lodash/_shuffleSelf.js
deleted file mode 100644
index 8bcc4f5..0000000
--- a/node_modules/babel-core/node_modules/lodash/_shuffleSelf.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var baseRandom = require('./_baseRandom');
-
-/**
- * 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;
-}
-
-module.exports = shuffleSelf;
diff --git a/node_modules/babel-core/node_modules/lodash/_stackClear.js b/node_modules/babel-core/node_modules/lodash/_stackClear.js
deleted file mode 100644
index ce8e5a9..0000000
--- a/node_modules/babel-core/node_modules/lodash/_stackClear.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var ListCache = require('./_ListCache');
-
-/**
- * Removes all key-value entries from the stack.
- *
- * @private
- * @name clear
- * @memberOf Stack
- */
-function stackClear() {
- this.__data__ = new ListCache;
- this.size = 0;
-}
-
-module.exports = stackClear;
diff --git a/node_modules/babel-core/node_modules/lodash/_stackDelete.js b/node_modules/babel-core/node_modules/lodash/_stackDelete.js
deleted file mode 100644
index ff9887a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_stackDelete.js
+++ /dev/null
@@ -1,18 +0,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;
-}
-
-module.exports = stackDelete;
diff --git a/node_modules/babel-core/node_modules/lodash/_stackGet.js b/node_modules/babel-core/node_modules/lodash/_stackGet.js
deleted file mode 100644
index 1cdf004..0000000
--- a/node_modules/babel-core/node_modules/lodash/_stackGet.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * 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);
-}
-
-module.exports = stackGet;
diff --git a/node_modules/babel-core/node_modules/lodash/_stackHas.js b/node_modules/babel-core/node_modules/lodash/_stackHas.js
deleted file mode 100644
index 16a3ad1..0000000
--- a/node_modules/babel-core/node_modules/lodash/_stackHas.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * 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);
-}
-
-module.exports = stackHas;
diff --git a/node_modules/babel-core/node_modules/lodash/_stackSet.js b/node_modules/babel-core/node_modules/lodash/_stackSet.js
deleted file mode 100644
index b790ac5..0000000
--- a/node_modules/babel-core/node_modules/lodash/_stackSet.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var ListCache = require('./_ListCache'),
- Map = require('./_Map'),
- MapCache = require('./_MapCache');
-
-/** Used as the size to enable large array optimizations. */
-var LARGE_ARRAY_SIZE = 200;
-
-/**
- * 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;
-}
-
-module.exports = stackSet;
diff --git a/node_modules/babel-core/node_modules/lodash/_strictIndexOf.js b/node_modules/babel-core/node_modules/lodash/_strictIndexOf.js
deleted file mode 100644
index 0486a49..0000000
--- a/node_modules/babel-core/node_modules/lodash/_strictIndexOf.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = strictIndexOf;
diff --git a/node_modules/babel-core/node_modules/lodash/_strictLastIndexOf.js b/node_modules/babel-core/node_modules/lodash/_strictLastIndexOf.js
deleted file mode 100644
index d7310dc..0000000
--- a/node_modules/babel-core/node_modules/lodash/_strictLastIndexOf.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = strictLastIndexOf;
diff --git a/node_modules/babel-core/node_modules/lodash/_stringSize.js b/node_modules/babel-core/node_modules/lodash/_stringSize.js
deleted file mode 100644
index 17ef462..0000000
--- a/node_modules/babel-core/node_modules/lodash/_stringSize.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var asciiSize = require('./_asciiSize'),
- hasUnicode = require('./_hasUnicode'),
- unicodeSize = require('./_unicodeSize');
-
-/**
- * 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);
-}
-
-module.exports = stringSize;
diff --git a/node_modules/babel-core/node_modules/lodash/_stringToArray.js b/node_modules/babel-core/node_modules/lodash/_stringToArray.js
deleted file mode 100644
index d161158..0000000
--- a/node_modules/babel-core/node_modules/lodash/_stringToArray.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var asciiToArray = require('./_asciiToArray'),
- hasUnicode = require('./_hasUnicode'),
- unicodeToArray = require('./_unicodeToArray');
-
-/**
- * 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);
-}
-
-module.exports = stringToArray;
diff --git a/node_modules/babel-core/node_modules/lodash/_stringToPath.js b/node_modules/babel-core/node_modules/lodash/_stringToPath.js
deleted file mode 100644
index db7b0f7..0000000
--- a/node_modules/babel-core/node_modules/lodash/_stringToPath.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var memoizeCapped = require('./_memoizeCapped');
-
-/** Used to match property names within property paths. */
-var reLeadingDot = /^\./,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
-
-/** Used to match backslashes in property paths. */
-var reEscapeChar = /\\(\\)?/g;
-
-/**
- * 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 (reLeadingDot.test(string)) {
- result.push('');
- }
- string.replace(rePropName, function(match, number, quote, string) {
- result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
- });
- return result;
-});
-
-module.exports = stringToPath;
diff --git a/node_modules/babel-core/node_modules/lodash/_toKey.js b/node_modules/babel-core/node_modules/lodash/_toKey.js
deleted file mode 100644
index c6d645c..0000000
--- a/node_modules/babel-core/node_modules/lodash/_toKey.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var isSymbol = require('./isSymbol');
-
-/** Used as references for various `Number` constants. */
-var INFINITY = 1 / 0;
-
-/**
- * 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;
-}
-
-module.exports = toKey;
diff --git a/node_modules/babel-core/node_modules/lodash/_toSource.js b/node_modules/babel-core/node_modules/lodash/_toSource.js
deleted file mode 100644
index a020b38..0000000
--- a/node_modules/babel-core/node_modules/lodash/_toSource.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/** Used for built-in method references. */
-var funcProto = Function.prototype;
-
-/** Used to resolve the decompiled source of functions. */
-var funcToString = funcProto.toString;
-
-/**
- * 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 '';
-}
-
-module.exports = toSource;
diff --git a/node_modules/babel-core/node_modules/lodash/_unescapeHtmlChar.js b/node_modules/babel-core/node_modules/lodash/_unescapeHtmlChar.js
deleted file mode 100644
index a71fecb..0000000
--- a/node_modules/babel-core/node_modules/lodash/_unescapeHtmlChar.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var basePropertyOf = require('./_basePropertyOf');
-
-/** Used to map HTML entities to characters. */
-var htmlUnescapes = {
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- ''': "'"
-};
-
-/**
- * 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);
-
-module.exports = unescapeHtmlChar;
diff --git a/node_modules/babel-core/node_modules/lodash/_unicodeSize.js b/node_modules/babel-core/node_modules/lodash/_unicodeSize.js
deleted file mode 100644
index 68137ec..0000000
--- a/node_modules/babel-core/node_modules/lodash/_unicodeSize.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/** Used to compose unicode character classes. */
-var rsAstralRange = '\\ud800-\\udfff',
- rsComboMarksRange = '\\u0300-\\u036f',
- reComboHalfMarksRange = '\\ufe20-\\ufe2f',
- rsComboSymbolsRange = '\\u20d0-\\u20ff',
- rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
- rsVarRange = '\\ufe0e\\ufe0f';
-
-/** Used to compose unicode capture groups. */
-var rsAstral = '[' + rsAstralRange + ']',
- rsCombo = '[' + rsComboRange + ']',
- rsFitz = '\\ud83c[\\udffb-\\udfff]',
- rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
- rsNonAstral = '[^' + rsAstralRange + ']',
- rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
- rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
- rsZWJ = '\\u200d';
-
-/** Used to compose unicode regexes. */
-var reOptMod = rsModifier + '?',
- rsOptVar = '[' + rsVarRange + ']?',
- rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
- rsSeq = rsOptVar + reOptMod + rsOptJoin,
- rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
-
-/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
-var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
-
-/**
- * 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;
-}
-
-module.exports = unicodeSize;
diff --git a/node_modules/babel-core/node_modules/lodash/_unicodeToArray.js b/node_modules/babel-core/node_modules/lodash/_unicodeToArray.js
deleted file mode 100644
index 2a725c0..0000000
--- a/node_modules/babel-core/node_modules/lodash/_unicodeToArray.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/** Used to compose unicode character classes. */
-var rsAstralRange = '\\ud800-\\udfff',
- rsComboMarksRange = '\\u0300-\\u036f',
- reComboHalfMarksRange = '\\ufe20-\\ufe2f',
- rsComboSymbolsRange = '\\u20d0-\\u20ff',
- rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
- rsVarRange = '\\ufe0e\\ufe0f';
-
-/** Used to compose unicode capture groups. */
-var rsAstral = '[' + rsAstralRange + ']',
- rsCombo = '[' + rsComboRange + ']',
- rsFitz = '\\ud83c[\\udffb-\\udfff]',
- rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
- rsNonAstral = '[^' + rsAstralRange + ']',
- rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
- rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
- rsZWJ = '\\u200d';
-
-/** Used to compose unicode regexes. */
-var reOptMod = rsModifier + '?',
- rsOptVar = '[' + rsVarRange + ']?',
- rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
- rsSeq = rsOptVar + reOptMod + rsOptJoin,
- rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
-
-/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
-var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
-
-/**
- * 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) || [];
-}
-
-module.exports = unicodeToArray;
diff --git a/node_modules/babel-core/node_modules/lodash/_unicodeWords.js b/node_modules/babel-core/node_modules/lodash/_unicodeWords.js
deleted file mode 100644
index d8b822a..0000000
--- a/node_modules/babel-core/node_modules/lodash/_unicodeWords.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/** 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]",
- 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)',
- rsOrdUpper = '\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)',
- rsSeq = rsOptVar + reOptMod + rsOptJoin,
- rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;
-
-/** 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');
-
-/**
- * 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) || [];
-}
-
-module.exports = unicodeWords;
diff --git a/node_modules/babel-core/node_modules/lodash/_updateWrapDetails.js b/node_modules/babel-core/node_modules/lodash/_updateWrapDetails.js
deleted file mode 100644
index 8759fbd..0000000
--- a/node_modules/babel-core/node_modules/lodash/_updateWrapDetails.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var arrayEach = require('./_arrayEach'),
- arrayIncludes = require('./_arrayIncludes');
-
-/** Used to compose bitmasks for function metadata. */
-var WRAP_BIND_FLAG = 1,
- WRAP_BIND_KEY_FLAG = 2,
- 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 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]
-];
-
-/**
- * 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();
-}
-
-module.exports = updateWrapDetails;
diff --git a/node_modules/babel-core/node_modules/lodash/_wrapperClone.js b/node_modules/babel-core/node_modules/lodash/_wrapperClone.js
deleted file mode 100644
index 7bb58a2..0000000
--- a/node_modules/babel-core/node_modules/lodash/_wrapperClone.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var LazyWrapper = require('./_LazyWrapper'),
- LodashWrapper = require('./_LodashWrapper'),
- copyArray = require('./_copyArray');
-
-/**
- * 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;
-}
-
-module.exports = wrapperClone;
diff --git a/node_modules/babel-core/node_modules/lodash/add.js b/node_modules/babel-core/node_modules/lodash/add.js
deleted file mode 100644
index f069515..0000000
--- a/node_modules/babel-core/node_modules/lodash/add.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var createMathOperation = require('./_createMathOperation');
-
-/**
- * Adds two numbers.
- *
- * @static
- * @memberOf _
- * @since 3.4.0
- * @category Math
- * @param {number} augend The first number in an addition.
- * @param {number} addend The second number in an addition.
- * @returns {number} Returns the total.
- * @example
- *
- * _.add(6, 4);
- * // => 10
- */
-var add = createMathOperation(function(augend, addend) {
- return augend + addend;
-}, 0);
-
-module.exports = add;
diff --git a/node_modules/babel-core/node_modules/lodash/after.js b/node_modules/babel-core/node_modules/lodash/after.js
deleted file mode 100644
index 3900c97..0000000
--- a/node_modules/babel-core/node_modules/lodash/after.js
+++ /dev/null
@@ -1,42 +0,0 @@
-var toInteger = require('./toInteger');
-
-/** Error message constants. */
-var FUNC_ERROR_TEXT = 'Expected a function';
-
-/**
- * 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);
- }
- };
-}
-
-module.exports = after;
diff --git a/node_modules/babel-core/node_modules/lodash/array.js b/node_modules/babel-core/node_modules/lodash/array.js
deleted file mode 100644
index af688d3..0000000
--- a/node_modules/babel-core/node_modules/lodash/array.js
+++ /dev/null
@@ -1,67 +0,0 @@
-module.exports = {
- 'chunk': require('./chunk'),
- 'compact': require('./compact'),
- 'concat': require('./concat'),
- 'difference': require('./difference'),
- 'differenceBy': require('./differenceBy'),
- 'differenceWith': require('./differenceWith'),
- 'drop': require('./drop'),
- 'dropRight': require('./dropRight'),
- 'dropRightWhile': require('./dropRightWhile'),
- 'dropWhile': require('./dropWhile'),
- 'fill': require('./fill'),
- 'findIndex': require('./findIndex'),
- 'findLastIndex': require('./findLastIndex'),
- 'first': require('./first'),
- 'flatten': require('./flatten'),
- 'flattenDeep': require('./flattenDeep'),
- 'flattenDepth': require('./flattenDepth'),
- 'fromPairs': require('./fromPairs'),
- 'head': require('./head'),
- 'indexOf': require('./indexOf'),
- 'initial': require('./initial'),
- 'intersection': require('./intersection'),
- 'intersectionBy': require('./intersectionBy'),
- 'intersectionWith': require('./intersectionWith'),
- 'join': require('./join'),
- 'last': require('./last'),
- 'lastIndexOf': require('./lastIndexOf'),
- 'nth': require('./nth'),
- 'pull': require('./pull'),
- 'pullAll': require('./pullAll'),
- 'pullAllBy': require('./pullAllBy'),
- 'pullAllWith': require('./pullAllWith'),
- 'pullAt': require('./pullAt'),
- 'remove': require('./remove'),
- 'reverse': require('./reverse'),
- 'slice': require('./slice'),
- 'sortedIndex': require('./sortedIndex'),
- 'sortedIndexBy': require('./sortedIndexBy'),
- 'sortedIndexOf': require('./sortedIndexOf'),
- 'sortedLastIndex': require('./sortedLastIndex'),
- 'sortedLastIndexBy': require('./sortedLastIndexBy'),
- 'sortedLastIndexOf': require('./sortedLastIndexOf'),
- 'sortedUniq': require('./sortedUniq'),
- 'sortedUniqBy': require('./sortedUniqBy'),
- 'tail': require('./tail'),
- 'take': require('./take'),
- 'takeRight': require('./takeRight'),
- 'takeRightWhile': require('./takeRightWhile'),
- 'takeWhile': require('./takeWhile'),
- 'union': require('./union'),
- 'unionBy': require('./unionBy'),
- 'unionWith': require('./unionWith'),
- 'uniq': require('./uniq'),
- 'uniqBy': require('./uniqBy'),
- 'uniqWith': require('./uniqWith'),
- 'unzip': require('./unzip'),
- 'unzipWith': require('./unzipWith'),
- 'without': require('./without'),
- 'xor': require('./xor'),
- 'xorBy': require('./xorBy'),
- 'xorWith': require('./xorWith'),
- 'zip': require('./zip'),
- 'zipObject': require('./zipObject'),
- 'zipObjectDeep': require('./zipObjectDeep'),
- 'zipWith': require('./zipWith')
-};
diff --git a/node_modules/babel-core/node_modules/lodash/ary.js b/node_modules/babel-core/node_modules/lodash/ary.js
deleted file mode 100644
index 70c87d0..0000000
--- a/node_modules/babel-core/node_modules/lodash/ary.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var createWrap = require('./_createWrap');
-
-/** Used to compose bitmasks for function metadata. */
-var WRAP_ARY_FLAG = 128;
-
-/**
- * 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);
-}
-
-module.exports = ary;
diff --git a/node_modules/babel-core/node_modules/lodash/assign.js b/node_modules/babel-core/node_modules/lodash/assign.js
deleted file mode 100644
index 909db26..0000000
--- a/node_modules/babel-core/node_modules/lodash/assign.js
+++ /dev/null
@@ -1,58 +0,0 @@
-var assignValue = require('./_assignValue'),
- copyObject = require('./_copyObject'),
- createAssigner = require('./_createAssigner'),
- isArrayLike = require('./isArrayLike'),
- isPrototype = require('./_isPrototype'),
- keys = require('./keys');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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]);
- }
- }
-});
-
-module.exports = assign;
diff --git a/node_modules/babel-core/node_modules/lodash/assignIn.js b/node_modules/babel-core/node_modules/lodash/assignIn.js
deleted file mode 100644
index e663473..0000000
--- a/node_modules/babel-core/node_modules/lodash/assignIn.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var copyObject = require('./_copyObject'),
- createAssigner = require('./_createAssigner'),
- keysIn = require('./keysIn');
-
-/**
- * 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);
-});
-
-module.exports = assignIn;
diff --git a/node_modules/babel-core/node_modules/lodash/assignInWith.js b/node_modules/babel-core/node_modules/lodash/assignInWith.js
deleted file mode 100644
index 68fcc0b..0000000
--- a/node_modules/babel-core/node_modules/lodash/assignInWith.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var copyObject = require('./_copyObject'),
- createAssigner = require('./_createAssigner'),
- keysIn = require('./keysIn');
-
-/**
- * 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);
-});
-
-module.exports = assignInWith;
diff --git a/node_modules/babel-core/node_modules/lodash/assignWith.js b/node_modules/babel-core/node_modules/lodash/assignWith.js
deleted file mode 100644
index 7dc6c76..0000000
--- a/node_modules/babel-core/node_modules/lodash/assignWith.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var copyObject = require('./_copyObject'),
- createAssigner = require('./_createAssigner'),
- keys = require('./keys');
-
-/**
- * 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);
-});
-
-module.exports = assignWith;
diff --git a/node_modules/babel-core/node_modules/lodash/at.js b/node_modules/babel-core/node_modules/lodash/at.js
deleted file mode 100644
index 781ee9e..0000000
--- a/node_modules/babel-core/node_modules/lodash/at.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var baseAt = require('./_baseAt'),
- flatRest = require('./_flatRest');
-
-/**
- * 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);
-
-module.exports = at;
diff --git a/node_modules/babel-core/node_modules/lodash/attempt.js b/node_modules/babel-core/node_modules/lodash/attempt.js
deleted file mode 100644
index 624d015..0000000
--- a/node_modules/babel-core/node_modules/lodash/attempt.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var apply = require('./_apply'),
- baseRest = require('./_baseRest'),
- isError = require('./isError');
-
-/**
- * Attempts to invoke `func`, returning either the result or the caught error
- * object. Any additional arguments are provided to `func` when it's invoked.
- *
- * @static
- * @memberOf _
- * @since 3.0.0
- * @category Util
- * @param {Function} func The function to attempt.
- * @param {...*} [args] The arguments to invoke `func` with.
- * @returns {*} Returns the `func` result or error object.
- * @example
- *
- * // Avoid throwing errors for invalid selectors.
- * var elements = _.attempt(function(selector) {
- * return document.querySelectorAll(selector);
- * }, '>_>');
- *
- * if (_.isError(elements)) {
- * elements = [];
- * }
- */
-var attempt = baseRest(function(func, args) {
- try {
- return apply(func, undefined, args);
- } catch (e) {
- return isError(e) ? e : new Error(e);
- }
-});
-
-module.exports = attempt;
diff --git a/node_modules/babel-core/node_modules/lodash/before.js b/node_modules/babel-core/node_modules/lodash/before.js
deleted file mode 100644
index a3e0a16..0000000
--- a/node_modules/babel-core/node_modules/lodash/before.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var toInteger = require('./toInteger');
-
-/** Error message constants. */
-var FUNC_ERROR_TEXT = 'Expected a function';
-
-/**
- * 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;
- };
-}
-
-module.exports = before;
diff --git a/node_modules/babel-core/node_modules/lodash/bind.js b/node_modules/babel-core/node_modules/lodash/bind.js
deleted file mode 100644
index b1076e9..0000000
--- a/node_modules/babel-core/node_modules/lodash/bind.js
+++ /dev/null
@@ -1,57 +0,0 @@
-var baseRest = require('./_baseRest'),
- createWrap = require('./_createWrap'),
- getHolder = require('./_getHolder'),
- replaceHolders = require('./_replaceHolders');
-
-/** Used to compose bitmasks for function metadata. */
-var WRAP_BIND_FLAG = 1,
- WRAP_PARTIAL_FLAG = 32;
-
-/**
- * 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);
-});
-
-// Assign default placeholders.
-bind.placeholder = {};
-
-module.exports = bind;
diff --git a/node_modules/babel-core/node_modules/lodash/bindAll.js b/node_modules/babel-core/node_modules/lodash/bindAll.js
deleted file mode 100644
index a35706d..0000000
--- a/node_modules/babel-core/node_modules/lodash/bindAll.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var arrayEach = require('./_arrayEach'),
- baseAssignValue = require('./_baseAssignValue'),
- bind = require('./bind'),
- flatRest = require('./_flatRest'),
- toKey = require('./_toKey');
-
-/**
- * Binds methods of an object to the object itself, overwriting the existing
- * method.
- *
- * **Note:** This method doesn't set the "length" property of bound functions.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Util
- * @param {Object} object The object to bind and assign the bound methods to.
- * @param {...(string|string[])} methodNames The object method names to bind.
- * @returns {Object} Returns `object`.
- * @example
- *
- * var view = {
- * 'label': 'docs',
- * 'click': function() {
- * console.log('clicked ' + this.label);
- * }
- * };
- *
- * _.bindAll(view, ['click']);
- * jQuery(element).on('click', view.click);
- * // => Logs 'clicked docs' when clicked.
- */
-var bindAll = flatRest(function(object, methodNames) {
- arrayEach(methodNames, function(key) {
- key = toKey(key);
- baseAssignValue(object, key, bind(object[key], object));
- });
- return object;
-});
-
-module.exports = bindAll;
diff --git a/node_modules/babel-core/node_modules/lodash/bindKey.js b/node_modules/babel-core/node_modules/lodash/bindKey.js
deleted file mode 100644
index f7fd64c..0000000
--- a/node_modules/babel-core/node_modules/lodash/bindKey.js
+++ /dev/null
@@ -1,68 +0,0 @@
-var baseRest = require('./_baseRest'),
- createWrap = require('./_createWrap'),
- getHolder = require('./_getHolder'),
- replaceHolders = require('./_replaceHolders');
-
-/** Used to compose bitmasks for function metadata. */
-var WRAP_BIND_FLAG = 1,
- WRAP_BIND_KEY_FLAG = 2,
- WRAP_PARTIAL_FLAG = 32;
-
-/**
- * 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);
-});
-
-// Assign default placeholders.
-bindKey.placeholder = {};
-
-module.exports = bindKey;
diff --git a/node_modules/babel-core/node_modules/lodash/camelCase.js b/node_modules/babel-core/node_modules/lodash/camelCase.js
deleted file mode 100644
index d7390de..0000000
--- a/node_modules/babel-core/node_modules/lodash/camelCase.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var capitalize = require('./capitalize'),
- createCompounder = require('./_createCompounder');
-
-/**
- * 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);
-});
-
-module.exports = camelCase;
diff --git a/node_modules/babel-core/node_modules/lodash/capitalize.js b/node_modules/babel-core/node_modules/lodash/capitalize.js
deleted file mode 100644
index 3e1600e..0000000
--- a/node_modules/babel-core/node_modules/lodash/capitalize.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var toString = require('./toString'),
- upperFirst = require('./upperFirst');
-
-/**
- * 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());
-}
-
-module.exports = capitalize;
diff --git a/node_modules/babel-core/node_modules/lodash/castArray.js b/node_modules/babel-core/node_modules/lodash/castArray.js
deleted file mode 100644
index e470bdb..0000000
--- a/node_modules/babel-core/node_modules/lodash/castArray.js
+++ /dev/null
@@ -1,44 +0,0 @@
-var isArray = require('./isArray');
-
-/**
- * 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];
-}
-
-module.exports = castArray;
diff --git a/node_modules/babel-core/node_modules/lodash/ceil.js b/node_modules/babel-core/node_modules/lodash/ceil.js
deleted file mode 100644
index 56c8722..0000000
--- a/node_modules/babel-core/node_modules/lodash/ceil.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var createRound = require('./_createRound');
-
-/**
- * Computes `number` rounded up to `precision`.
- *
- * @static
- * @memberOf _
- * @since 3.10.0
- * @category Math
- * @param {number} number The number to round up.
- * @param {number} [precision=0] The precision to round up to.
- * @returns {number} Returns the rounded up number.
- * @example
- *
- * _.ceil(4.006);
- * // => 5
- *
- * _.ceil(6.004, 2);
- * // => 6.01
- *
- * _.ceil(6040, -2);
- * // => 6100
- */
-var ceil = createRound('ceil');
-
-module.exports = ceil;
diff --git a/node_modules/babel-core/node_modules/lodash/chain.js b/node_modules/babel-core/node_modules/lodash/chain.js
deleted file mode 100644
index f6cd647..0000000
--- a/node_modules/babel-core/node_modules/lodash/chain.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var lodash = require('./wrapperLodash');
-
-/**
- * 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;
-}
-
-module.exports = chain;
diff --git a/node_modules/babel-core/node_modules/lodash/chunk.js b/node_modules/babel-core/node_modules/lodash/chunk.js
deleted file mode 100644
index 5b562fe..0000000
--- a/node_modules/babel-core/node_modules/lodash/chunk.js
+++ /dev/null
@@ -1,50 +0,0 @@
-var baseSlice = require('./_baseSlice'),
- isIterateeCall = require('./_isIterateeCall'),
- toInteger = require('./toInteger');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeCeil = Math.ceil,
- nativeMax = Math.max;
-
-/**
- * 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;
-}
-
-module.exports = chunk;
diff --git a/node_modules/babel-core/node_modules/lodash/clamp.js b/node_modules/babel-core/node_modules/lodash/clamp.js
deleted file mode 100644
index 91a72c9..0000000
--- a/node_modules/babel-core/node_modules/lodash/clamp.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var baseClamp = require('./_baseClamp'),
- toNumber = require('./toNumber');
-
-/**
- * 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);
-}
-
-module.exports = clamp;
diff --git a/node_modules/babel-core/node_modules/lodash/clone.js b/node_modules/babel-core/node_modules/lodash/clone.js
deleted file mode 100644
index dd439d6..0000000
--- a/node_modules/babel-core/node_modules/lodash/clone.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var baseClone = require('./_baseClone');
-
-/** Used to compose bitmasks for cloning. */
-var CLONE_SYMBOLS_FLAG = 4;
-
-/**
- * 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);
-}
-
-module.exports = clone;
diff --git a/node_modules/babel-core/node_modules/lodash/cloneDeep.js b/node_modules/babel-core/node_modules/lodash/cloneDeep.js
deleted file mode 100644
index 4425fbe..0000000
--- a/node_modules/babel-core/node_modules/lodash/cloneDeep.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var baseClone = require('./_baseClone');
-
-/** Used to compose bitmasks for cloning. */
-var CLONE_DEEP_FLAG = 1,
- CLONE_SYMBOLS_FLAG = 4;
-
-/**
- * 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);
-}
-
-module.exports = cloneDeep;
diff --git a/node_modules/babel-core/node_modules/lodash/cloneDeepWith.js b/node_modules/babel-core/node_modules/lodash/cloneDeepWith.js
deleted file mode 100644
index fd9c6c0..0000000
--- a/node_modules/babel-core/node_modules/lodash/cloneDeepWith.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var baseClone = require('./_baseClone');
-
-/** Used to compose bitmasks for cloning. */
-var CLONE_DEEP_FLAG = 1,
- CLONE_SYMBOLS_FLAG = 4;
-
-/**
- * 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);
-}
-
-module.exports = cloneDeepWith;
diff --git a/node_modules/babel-core/node_modules/lodash/cloneWith.js b/node_modules/babel-core/node_modules/lodash/cloneWith.js
deleted file mode 100644
index d2f4e75..0000000
--- a/node_modules/babel-core/node_modules/lodash/cloneWith.js
+++ /dev/null
@@ -1,42 +0,0 @@
-var baseClone = require('./_baseClone');
-
-/** Used to compose bitmasks for cloning. */
-var CLONE_SYMBOLS_FLAG = 4;
-
-/**
- * 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);
-}
-
-module.exports = cloneWith;
diff --git a/node_modules/babel-core/node_modules/lodash/collection.js b/node_modules/babel-core/node_modules/lodash/collection.js
deleted file mode 100644
index 77fe837..0000000
--- a/node_modules/babel-core/node_modules/lodash/collection.js
+++ /dev/null
@@ -1,30 +0,0 @@
-module.exports = {
- 'countBy': require('./countBy'),
- 'each': require('./each'),
- 'eachRight': require('./eachRight'),
- 'every': require('./every'),
- 'filter': require('./filter'),
- 'find': require('./find'),
- 'findLast': require('./findLast'),
- 'flatMap': require('./flatMap'),
- 'flatMapDeep': require('./flatMapDeep'),
- 'flatMapDepth': require('./flatMapDepth'),
- 'forEach': require('./forEach'),
- 'forEachRight': require('./forEachRight'),
- 'groupBy': require('./groupBy'),
- 'includes': require('./includes'),
- 'invokeMap': require('./invokeMap'),
- 'keyBy': require('./keyBy'),
- 'map': require('./map'),
- 'orderBy': require('./orderBy'),
- 'partition': require('./partition'),
- 'reduce': require('./reduce'),
- 'reduceRight': require('./reduceRight'),
- 'reject': require('./reject'),
- 'sample': require('./sample'),
- 'sampleSize': require('./sampleSize'),
- 'shuffle': require('./shuffle'),
- 'size': require('./size'),
- 'some': require('./some'),
- 'sortBy': require('./sortBy')
-};
diff --git a/node_modules/babel-core/node_modules/lodash/commit.js b/node_modules/babel-core/node_modules/lodash/commit.js
deleted file mode 100644
index fe4db71..0000000
--- a/node_modules/babel-core/node_modules/lodash/commit.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var LodashWrapper = require('./_LodashWrapper');
-
-/**
- * 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__);
-}
-
-module.exports = wrapperCommit;
diff --git a/node_modules/babel-core/node_modules/lodash/compact.js b/node_modules/babel-core/node_modules/lodash/compact.js
deleted file mode 100644
index 031fab4..0000000
--- a/node_modules/babel-core/node_modules/lodash/compact.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = compact;
diff --git a/node_modules/babel-core/node_modules/lodash/concat.js b/node_modules/babel-core/node_modules/lodash/concat.js
deleted file mode 100644
index 1da48a4..0000000
--- a/node_modules/babel-core/node_modules/lodash/concat.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var arrayPush = require('./_arrayPush'),
- baseFlatten = require('./_baseFlatten'),
- copyArray = require('./_copyArray'),
- isArray = require('./isArray');
-
-/**
- * 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));
-}
-
-module.exports = concat;
diff --git a/node_modules/babel-core/node_modules/lodash/cond.js b/node_modules/babel-core/node_modules/lodash/cond.js
deleted file mode 100644
index 6455598..0000000
--- a/node_modules/babel-core/node_modules/lodash/cond.js
+++ /dev/null
@@ -1,60 +0,0 @@
-var apply = require('./_apply'),
- arrayMap = require('./_arrayMap'),
- baseIteratee = require('./_baseIteratee'),
- baseRest = require('./_baseRest');
-
-/** Error message constants. */
-var FUNC_ERROR_TEXT = 'Expected a function';
-
-/**
- * Creates a function that iterates over `pairs` and invokes the corresponding
- * function of the first predicate to return truthy. The predicate-function
- * pairs are invoked with the `this` binding and arguments of the created
- * function.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Util
- * @param {Array} pairs The predicate-function pairs.
- * @returns {Function} Returns the new composite function.
- * @example
- *
- * var func = _.cond([
- * [_.matches({ 'a': 1 }), _.constant('matches A')],
- * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],
- * [_.stubTrue, _.constant('no match')]
- * ]);
- *
- * func({ 'a': 1, 'b': 2 });
- * // => 'matches A'
- *
- * func({ 'a': 0, 'b': 1 });
- * // => 'matches B'
- *
- * func({ 'a': '1', 'b': '2' });
- * // => 'no match'
- */
-function cond(pairs) {
- var length = pairs == null ? 0 : pairs.length,
- toIteratee = baseIteratee;
-
- pairs = !length ? [] : arrayMap(pairs, function(pair) {
- if (typeof pair[1] != 'function') {
- throw new TypeError(FUNC_ERROR_TEXT);
- }
- return [toIteratee(pair[0]), pair[1]];
- });
-
- return baseRest(function(args) {
- var index = -1;
- while (++index < length) {
- var pair = pairs[index];
- if (apply(pair[0], this, args)) {
- return apply(pair[1], this, args);
- }
- }
- });
-}
-
-module.exports = cond;
diff --git a/node_modules/babel-core/node_modules/lodash/conforms.js b/node_modules/babel-core/node_modules/lodash/conforms.js
deleted file mode 100644
index 5501a94..0000000
--- a/node_modules/babel-core/node_modules/lodash/conforms.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var baseClone = require('./_baseClone'),
- baseConforms = require('./_baseConforms');
-
-/** Used to compose bitmasks for cloning. */
-var CLONE_DEEP_FLAG = 1;
-
-/**
- * Creates a function that invokes the predicate properties of `source` with
- * the corresponding property values of a given object, returning `true` if
- * all predicates return truthy, else `false`.
- *
- * **Note:** The created function is equivalent to `_.conformsTo` with
- * `source` partially applied.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Util
- * @param {Object} source The object of property predicates to conform to.
- * @returns {Function} Returns the new spec function.
- * @example
- *
- * var objects = [
- * { 'a': 2, 'b': 1 },
- * { 'a': 1, 'b': 2 }
- * ];
- *
- * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));
- * // => [{ 'a': 1, 'b': 2 }]
- */
-function conforms(source) {
- return baseConforms(baseClone(source, CLONE_DEEP_FLAG));
-}
-
-module.exports = conforms;
diff --git a/node_modules/babel-core/node_modules/lodash/conformsTo.js b/node_modules/babel-core/node_modules/lodash/conformsTo.js
deleted file mode 100644
index b8a93eb..0000000
--- a/node_modules/babel-core/node_modules/lodash/conformsTo.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var baseConformsTo = require('./_baseConformsTo'),
- keys = require('./keys');
-
-/**
- * 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));
-}
-
-module.exports = conformsTo;
diff --git a/node_modules/babel-core/node_modules/lodash/constant.js b/node_modules/babel-core/node_modules/lodash/constant.js
deleted file mode 100644
index 655ece3..0000000
--- a/node_modules/babel-core/node_modules/lodash/constant.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * Creates a function that returns `value`.
- *
- * @static
- * @memberOf _
- * @since 2.4.0
- * @category Util
- * @param {*} value The value to return from the new function.
- * @returns {Function} Returns the new constant function.
- * @example
- *
- * var objects = _.times(2, _.constant({ 'a': 1 }));
- *
- * console.log(objects);
- * // => [{ 'a': 1 }, { 'a': 1 }]
- *
- * console.log(objects[0] === objects[1]);
- * // => true
- */
-function constant(value) {
- return function() {
- return value;
- };
-}
-
-module.exports = constant;
diff --git a/node_modules/babel-core/node_modules/lodash/core.js b/node_modules/babel-core/node_modules/lodash/core.js
deleted file mode 100644
index 88c263f..0000000
--- a/node_modules/babel-core/node_modules/lodash/core.js
+++ /dev/null
@@ -1,3836 +0,0 @@
-/**
- * @license
- * Lodash (Custom Build)
- * Build: `lodash core -o ./dist/lodash.core.js`
- * 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.4';
-
- /** Error message constants. */
- var FUNC_ERROR_TEXT = 'Expected a function';
-
- /** 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_PARTIAL_FLAG = 32;
-
- /** Used as references for various `Number` constants. */
- var INFINITY = 1 / 0,
- MAX_SAFE_INTEGER = 9007199254740991;
-
- /** `Object#toString` result references. */
- var argsTag = '[object Arguments]',
- arrayTag = '[object Array]',
- asyncTag = '[object AsyncFunction]',
- boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- errorTag = '[object Error]',
- funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- numberTag = '[object Number]',
- objectTag = '[object Object]',
- proxyTag = '[object Proxy]',
- regexpTag = '[object RegExp]',
- stringTag = '[object String]';
-
- /** Used to match HTML entities and HTML characters. */
- var reUnescapedHtml = /[&<>"']/g,
- reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
-
- /** Used to map characters to HTML entities. */
- var htmlEscapes = {
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- "'": '''
- };
-
- /** 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;
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * 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) {
- array.push.apply(array, values);
- return array;
- }
-
- /**
- * 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 `_.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 `_.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 baseMap(props, function(key) {
- return object[key];
- });
- }
-
- /**
- * 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);
-
- /**
- * 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));
- };
- }
-
- /*--------------------------------------------------------------------------*/
-
- /** Used for built-in method references. */
- var arrayProto = Array.prototype,
- objectProto = Object.prototype;
-
- /** Used to check objects for own properties. */
- var hasOwnProperty = objectProto.hasOwnProperty;
-
- /** Used to generate unique IDs. */
- var idCounter = 0;
-
- /**
- * 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 restore the original `_` reference in `_.noConflict`. */
- var oldDash = root._;
-
- /** Built-in value references. */
- var objectCreate = Object.create,
- propertyIsEnumerable = objectProto.propertyIsEnumerable;
-
- /* Built-in method references for those with the same name as other `lodash` methods. */
- var nativeIsFinite = root.isFinite,
- nativeKeys = overArg(Object.keys, Object),
- nativeMax = Math.max;
-
- /*------------------------------------------------------------------------*/
-
- /**
- * 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) {
- return value instanceof LodashWrapper
- ? value
- : 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 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;
- }
-
- LodashWrapper.prototype = baseCreate(lodash.prototype);
- LodashWrapper.prototype.constructor = LodashWrapper;
-
- /*------------------------------------------------------------------------*/
-
- /**
- * 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);
- }
- }
-
- /**
- * 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) {
- object[key] = value;
- }
-
- /**
- * 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 `_.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 `_.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 && !false)
- : comparator(current, computed)
- )) {
- var computed = current,
- result = value;
- }
- }
- return result;
- }
-
- /**
- * 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();
-
- /**
- * 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 `_.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 baseFilter(props, function(key) {
- return isFunction(object[key]);
- });
- }
-
- /**
- * 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) {
- return 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 `_.isArguments`.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an `arguments` object,
- */
- var baseIsArguments = noop;
-
- /**
- * 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 : baseGetTag(object),
- othTag = othIsArr ? arrayTag : baseGetTag(other);
-
- objTag = objTag == argsTag ? objectTag : objTag;
- othTag = othTag == argsTag ? objectTag : othTag;
-
- var objIsObj = objTag == objectTag,
- othIsObj = othTag == objectTag,
- isSameTag = objTag == othTag;
-
- stack || (stack = []);
- var objStack = find(stack, function(entry) {
- return entry[0] == object;
- });
- var othStack = find(stack, function(entry) {
- return entry[0] == other;
- });
- if (objStack && othStack) {
- return objStack[1] == other;
- }
- stack.push([object, other]);
- stack.push([other, object]);
- if (isSameTag && !objIsObj) {
- var result = (objIsArr)
- ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
- : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
- stack.pop();
- return result;
- }
- 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;
-
- var result = equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
- stack.pop();
- return result;
- }
- }
- if (!isSameTag) {
- return false;
- }
- var result = equalObjects(object, other, bitmask, customizer, equalFunc, stack);
- stack.pop();
- return result;
- }
-
- /**
- * 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 `_.iteratee`.
- *
- * @private
- * @param {*} [value=_.identity] The value to convert to an iteratee.
- * @returns {Function} Returns the iteratee.
- */
- function baseIteratee(func) {
- if (typeof func == 'function') {
- return func;
- }
- if (func == null) {
- return identity;
- }
- return (typeof func == 'object' ? baseMatches : baseProperty)(func);
- }
-
- /**
- * 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 props = nativeKeys(source);
- return function(object) {
- var length = props.length;
- if (object == null) {
- return !length;
- }
- object = Object(object);
- while (length--) {
- var key = props[length];
- if (!(key in object &&
- baseIsEqual(source[key], object[key], COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG)
- )) {
- return false;
- }
- }
- return true;
- };
- }
-
- /**
- * 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, props) {
- object = Object(object);
- return reduce(props, function(result, key) {
- if (key in object) {
- result[key] = object[key];
- }
- 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 `_.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;
- }
-
- /**
- * 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) {
- return baseSlice(source, 0, source.length);
- }
-
- /**
- * 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 `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;
- return reduce(actions, function(result, action) {
- return action.func.apply(action.thisArg, arrayPush([result], action.args));
- }, result);
- }
-
- /**
- * 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 = false;
-
- var othIsDefined = other !== undefined,
- othIsNull = other === null,
- othIsReflexive = other === other,
- othIsSymbol = false;
-
- 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;
- }
-
- /**
- * 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;
- }
-
- /**
- * 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;
-
- customizer = (assigner.length > 3 && typeof customizer == 'function')
- ? (length--, customizer)
- : undefined;
-
- 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 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;
- 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 `_.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 = baseIteratee(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 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) {
- if (typeof func != 'function') {
- throw new TypeError(FUNC_ERROR_TEXT);
- }
- 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 fn.apply(isBind ? thisArg : this, args);
- }
- return wrapper;
- }
-
- /**
- * 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;
- }
-
- /**
- * 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;
- }
- var index = -1,
- result = true,
- seen = (bitmask & COMPARE_UNORDERED_FLAG) ? [] : undefined;
-
- // Ignore non-index properties.
- while (++index < arrLength) {
- var arrValue = array[index],
- othValue = other[index];
-
- var compared;
- if (compared !== undefined) {
- if (compared) {
- continue;
- }
- result = false;
- break;
- }
- // Recursively compare arrays (susceptible to call stack limits).
- if (seen) {
- if (!baseSome(other, function(othValue, othIndex) {
- if (!indexOf(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;
- }
- }
- 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 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 + '');
-
- }
- 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 = keys(object),
- objLength = objProps.length,
- othProps = keys(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;
- }
- }
- var result = true;
-
- var skipCtor = isPartial;
- while (++index < objLength) {
- key = objProps[index];
- var objValue = object[key],
- othValue = other[key];
-
- var compared;
- // 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;
- }
- }
- 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 + '');
- }
-
- /**
- * 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);
- }
-
- /**
- * 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 func.apply(this, otherArgs);
- };
- }
-
- /**
- * 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 = identity;
-
- /*------------------------------------------------------------------------*/
-
- /**
- * 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) {
- return baseFilter(array, Boolean);
- }
-
- /**
- * 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));
- }
-
- /**
- * 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, baseIteratee(predicate, 3), index);
- }
-
- /**
- * 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) : [];
- }
-
- /**
- * 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 (typeof fromIndex == 'number') {
- fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex;
- } else {
- fromIndex = 0;
- }
- var index = (fromIndex || 0) - 1,
- isReflexive = value === value;
-
- while (++index < length) {
- var other = array[index];
- if ((isReflexive ? other === value : other !== other)) {
- return index;
- }
- }
- return -1;
- }
-
- /**
- * 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;
- }
-
- /**
- * 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;
- start = start == null ? 0 : +start;
- end = end === undefined ? length : +end;
- return length ? baseSlice(array, start, end) : [];
- }
-
- /*------------------------------------------------------------------------*/
-
- /**
- * 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);
- }
-
- /**
- * 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 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__);
- }
-
- /*------------------------------------------------------------------------*/
-
- /**
- * 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) {
- predicate = guard ? undefined : predicate;
- return baseEvery(collection, baseIteratee(predicate));
- }
-
- /**
- * 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) {
- return baseFilter(collection, baseIteratee(predicate));
- }
-
- /**
- * 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);
-
- /**
- * 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) {
- return baseEach(collection, baseIteratee(iteratee));
- }
-
- /**
- * 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) {
- return baseMap(collection, baseIteratee(iteratee));
- }
-
- /**
- * 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) {
- return baseReduce(collection, baseIteratee(iteratee), accumulator, arguments.length < 3, baseEach);
- }
-
- /**
- * 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;
- }
- collection = isArrayLike(collection) ? collection : nativeKeys(collection);
- return 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) {
- predicate = guard ? undefined : predicate;
- return baseSome(collection, baseIteratee(predicate));
- }
-
- /**
- * 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]]
- */
- function sortBy(collection, iteratee) {
- var index = 0;
- iteratee = baseIteratee(iteratee);
-
- return baseMap(baseMap(collection, function(value, key, collection) {
- return { 'value': value, 'index': index++, 'criteria': iteratee(value, key, collection) };
- }).sort(function(object, other) {
- return compareAscending(object.criteria, other.criteria) || (object.index - other.index);
- }), baseProperty('value'));
- }
-
- /*------------------------------------------------------------------------*/
-
- /**
- * 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) {
- return createPartial(func, WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, thisArg, partials);
- });
-
- /**
- * 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 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;
- 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 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) {
- if (!isObject(value)) {
- return value;
- }
- return isArray(value) ? copyArray(value) : copyObject(value, nativeKeys(value));
- }
-
- /**
- * 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 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 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);
- }
-
- /**
- * 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 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 = baseIsDate;
-
- /**
- * 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 (isArrayLike(value) &&
- (isArray(value) || isString(value) ||
- isFunction(value.splice) || isArguments(value))) {
- return !value.length;
- }
- return !nativeKeys(value).length;
- }
-
- /**
- * 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);
- }
-
- /**
- * 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 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 `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 `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 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 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 = baseIsRegExp;
-
- /**
- * 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 `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;
- }
-
- /**
- * 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 (!isArrayLike(value)) {
- return values(value);
- }
- return value.length ? copyArray(value) : [];
- }
-
- /**
- * 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
- */
- var toInteger = Number;
-
- /**
- * 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
- */
- var toNumber = Number;
-
- /**
- * 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) {
- if (typeof value == 'string') {
- return value;
- }
- return value == null ? '' : (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) {
- copyObject(source, nativeKeys(source), object);
- });
-
- /**
- * 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, nativeKeysIn(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);
- });
-
- /**
- * 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 : assign(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(args) {
- args.push(undefined, customDefaultsAssignIn);
- return assignInWith.apply(undefined, args);
- });
-
- /**
- * 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 && hasOwnProperty.call(object, path);
- }
-
- /**
- * 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']
- */
- var keys = nativeKeys;
-
- /**
- * 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)
- */
- var keysIn = nativeKeysIn;
-
- /**
- * 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);
- });
-
- /**
- * 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) {
- var value = object == null ? undefined : object[path];
- if (value === undefined) {
- value = defaultValue;
- }
- return isFunction(value) ? value.call(object) : value;
- }
-
- /**
- * 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));
- }
-
- /*------------------------------------------------------------------------*/
-
- /**
- * 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;
- }
-
- /*------------------------------------------------------------------------*/
-
- /**
- * This method returns the first argument it receives.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Util
- * @param {*} value Any value.
- * @returns {*} Returns `value`.
- * @example
- *
- * var object = { 'a': 1 };
- *
- * console.log(_.identity(object) === object);
- * // => true
- */
- function identity(value) {
- return value;
- }
-
- /**
- * Creates a function that invokes `func` with the arguments of the created
- * function. If `func` is a property name, the created function returns the
- * property value for a given element. If `func` is an array or object, the
- * created function returns `true` for elements that contain the equivalent
- * source properties, otherwise it returns `false`.
- *
- * @static
- * @since 4.0.0
- * @memberOf _
- * @category Util
- * @param {*} [func=_.identity] The value to convert to a callback.
- * @returns {Function} Returns the callback.
- * @example
- *
- * var users = [
- * { 'user': 'barney', 'age': 36, 'active': true },
- * { 'user': 'fred', 'age': 40, 'active': false }
- * ];
- *
- * // The `_.matches` iteratee shorthand.
- * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));
- * // => [{ 'user': 'barney', 'age': 36, 'active': true }]
- *
- * // The `_.matchesProperty` iteratee shorthand.
- * _.filter(users, _.iteratee(['user', 'fred']));
- * // => [{ 'user': 'fred', 'age': 40 }]
- *
- * // The `_.property` iteratee shorthand.
- * _.map(users, _.iteratee('user'));
- * // => ['barney', 'fred']
- *
- * // Create custom iteratee shorthands.
- * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {
- * return !_.isRegExp(func) ? iteratee(func) : function(string) {
- * return func.test(string);
- * };
- * });
- *
- * _.filter(['abc', 'def'], /ef/);
- * // => ['def']
- */
- var iteratee = baseIteratee;
-
- /**
- * Creates a function that performs a partial deep comparison between a given
- * object and `source`, returning `true` if the given object has equivalent
- * property values, else `false`.
- *
- * **Note:** The created function is equivalent to `_.isMatch` with `source`
- * 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 Util
- * @param {Object} source The object of property values to match.
- * @returns {Function} Returns the new spec function.
- * @example
- *
- * var objects = [
- * { 'a': 1, 'b': 2, 'c': 3 },
- * { 'a': 4, 'b': 5, 'c': 6 }
- * ];
- *
- * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));
- * // => [{ 'a': 4, 'b': 5, 'c': 6 }]
- */
- function matches(source) {
- return baseMatches(assign({}, source));
- }
-
- /**
- * Adds all own enumerable string keyed function properties of a source
- * object to the destination object. If `object` is a function, then methods
- * are added to its prototype as well.
- *
- * **Note:** Use `_.runInContext` to create a pristine `lodash` function to
- * avoid conflicts caused by modifying the original.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Util
- * @param {Function|Object} [object=lodash] The destination object.
- * @param {Object} source The object of functions to add.
- * @param {Object} [options={}] The options object.
- * @param {boolean} [options.chain=true] Specify whether mixins are chainable.
- * @returns {Function|Object} Returns `object`.
- * @example
- *
- * function vowels(string) {
- * return _.filter(string, function(v) {
- * return /[aeiou]/i.test(v);
- * });
- * }
- *
- * _.mixin({ 'vowels': vowels });
- * _.vowels('fred');
- * // => ['e']
- *
- * _('fred').vowels().value();
- * // => ['e']
- *
- * _.mixin({ 'vowels': vowels }, { 'chain': false });
- * _('fred').vowels();
- * // => ['e']
- */
- function mixin(object, source, options) {
- var props = keys(source),
- methodNames = baseFunctions(source, props);
-
- if (options == null &&
- !(isObject(source) && (methodNames.length || !props.length))) {
- options = source;
- source = object;
- object = this;
- methodNames = baseFunctions(source, keys(source));
- }
- var chain = !(isObject(options) && 'chain' in options) || !!options.chain,
- isFunc = isFunction(object);
-
- baseEach(methodNames, function(methodName) {
- var func = source[methodName];
- object[methodName] = func;
- if (isFunc) {
- object.prototype[methodName] = function() {
- var chainAll = this.__chain__;
- if (chain || chainAll) {
- var result = object(this.__wrapped__),
- actions = result.__actions__ = copyArray(this.__actions__);
-
- actions.push({ 'func': func, 'args': arguments, 'thisArg': object });
- result.__chain__ = chainAll;
- return result;
- }
- return func.apply(object, arrayPush([this.value()], arguments));
- };
- }
- });
-
- return object;
- }
-
- /**
- * Reverts the `_` variable to its previous value and returns a reference to
- * the `lodash` function.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Util
- * @returns {Function} Returns the `lodash` function.
- * @example
- *
- * var lodash = _.noConflict();
- */
- function noConflict() {
- if (root._ === this) {
- root._ = oldDash;
- }
- return this;
- }
-
- /**
- * This method returns `undefined`.
- *
- * @static
- * @memberOf _
- * @since 2.3.0
- * @category Util
- * @example
- *
- * _.times(2, _.noop);
- * // => [undefined, undefined]
- */
- function noop() {
- // No operation performed.
- }
-
- /**
- * Generates a unique ID. If `prefix` is given, the ID is appended to it.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Util
- * @param {string} [prefix=''] The value to prefix the ID with.
- * @returns {string} Returns the unique ID.
- * @example
- *
- * _.uniqueId('contact_');
- * // => 'contact_104'
- *
- * _.uniqueId();
- * // => '105'
- */
- function uniqueId(prefix) {
- var id = ++idCounter;
- return toString(prefix) + id;
- }
-
- /*------------------------------------------------------------------------*/
-
- /**
- * Computes the maximum value of `array`. If `array` is empty or falsey,
- * `undefined` is returned.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Math
- * @param {Array} array The array to iterate over.
- * @returns {*} Returns the maximum value.
- * @example
- *
- * _.max([4, 2, 8, 6]);
- * // => 8
- *
- * _.max([]);
- * // => undefined
- */
- function max(array) {
- return (array && array.length)
- ? baseExtremum(array, identity, baseGt)
- : undefined;
- }
-
- /**
- * Computes the minimum value of `array`. If `array` is empty or falsey,
- * `undefined` is returned.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Math
- * @param {Array} array The array to iterate over.
- * @returns {*} Returns the minimum value.
- * @example
- *
- * _.min([4, 2, 8, 6]);
- * // => 2
- *
- * _.min([]);
- * // => undefined
- */
- function min(array) {
- return (array && array.length)
- ? baseExtremum(array, identity, baseLt)
- : undefined;
- }
-
- /*------------------------------------------------------------------------*/
-
- // Add methods that return wrapped values in chain sequences.
- lodash.assignIn = assignIn;
- lodash.before = before;
- lodash.bind = bind;
- lodash.chain = chain;
- lodash.compact = compact;
- lodash.concat = concat;
- lodash.create = create;
- lodash.defaults = defaults;
- lodash.defer = defer;
- lodash.delay = delay;
- lodash.filter = filter;
- lodash.flatten = flatten;
- lodash.flattenDeep = flattenDeep;
- lodash.iteratee = iteratee;
- lodash.keys = keys;
- lodash.map = map;
- lodash.matches = matches;
- lodash.mixin = mixin;
- lodash.negate = negate;
- lodash.once = once;
- lodash.pick = pick;
- lodash.slice = slice;
- lodash.sortBy = sortBy;
- lodash.tap = tap;
- lodash.thru = thru;
- lodash.toArray = toArray;
- lodash.values = values;
-
- // Add aliases.
- lodash.extend = assignIn;
-
- // Add methods to `lodash.prototype`.
- mixin(lodash, lodash);
-
- /*------------------------------------------------------------------------*/
-
- // Add methods that return unwrapped values in chain sequences.
- lodash.clone = clone;
- lodash.escape = escape;
- lodash.every = every;
- lodash.find = find;
- lodash.forEach = forEach;
- lodash.has = has;
- lodash.head = head;
- lodash.identity = identity;
- lodash.indexOf = indexOf;
- lodash.isArguments = isArguments;
- lodash.isArray = isArray;
- lodash.isBoolean = isBoolean;
- lodash.isDate = isDate;
- lodash.isEmpty = isEmpty;
- lodash.isEqual = isEqual;
- lodash.isFinite = isFinite;
- lodash.isFunction = isFunction;
- lodash.isNaN = isNaN;
- lodash.isNull = isNull;
- lodash.isNumber = isNumber;
- lodash.isObject = isObject;
- lodash.isRegExp = isRegExp;
- lodash.isString = isString;
- lodash.isUndefined = isUndefined;
- lodash.last = last;
- lodash.max = max;
- lodash.min = min;
- lodash.noConflict = noConflict;
- lodash.noop = noop;
- lodash.reduce = reduce;
- lodash.result = result;
- lodash.size = size;
- lodash.some = some;
- lodash.uniqueId = uniqueId;
-
- // Add aliases.
- lodash.each = forEach;
- lodash.first = head;
-
- mixin(lodash, (function() {
- var source = {};
- baseForOwn(lodash, function(func, methodName) {
- if (!hasOwnProperty.call(lodash.prototype, methodName)) {
- source[methodName] = func;
- }
- });
- return source;
- }()), { 'chain': false });
-
- /*------------------------------------------------------------------------*/
-
- /**
- * The semantic version number.
- *
- * @static
- * @memberOf _
- * @type {string}
- */
- lodash.VERSION = VERSION;
-
- // Add `Array` methods to `lodash.prototype`.
- baseEach(['pop', 'join', 'replace', 'reverse', 'split', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {
- var func = (/^(?:replace|split)$/.test(methodName) ? String.prototype : arrayProto)[methodName],
- chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',
- retUnwrapped = /^(?:pop|join|replace|shift)$/.test(methodName);
-
- lodash.prototype[methodName] = function() {
- var args = arguments;
- if (retUnwrapped && !this.__chain__) {
- var value = this.value();
- return func.apply(isArray(value) ? value : [], args);
- }
- return this[chainName](function(value) {
- return func.apply(isArray(value) ? value : [], args);
- });
- };
- });
-
- // Add chain sequence methods to the `lodash` wrapper.
- lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;
-
- /*--------------------------------------------------------------------------*/
-
- // Some AMD build optimizers, like r.js, check for condition patterns like:
- if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
- // Expose Lodash on the global object to prevent errors when Lodash is
- // loaded by a script tag in the presence of an AMD loader.
- // See http://requirejs.org/docs/errors.html#mismatch for more details.
- // Use `_.noConflict` to remove Lodash from the global object.
- root._ = lodash;
-
- // Define as an anonymous module so, through path mapping, it can be
- // referenced as the "underscore" module.
- define(function() {
- return lodash;
- });
- }
- // Check for `exports` after `define` in case a build optimizer adds it.
- else if (freeModule) {
- // Export for Node.js.
- (freeModule.exports = lodash)._ = lodash;
- // Export for CommonJS support.
- freeExports._ = lodash;
- }
- else {
- // Export to the global object.
- root._ = lodash;
- }
-}.call(this));
diff --git a/node_modules/babel-core/node_modules/lodash/core.min.js b/node_modules/babel-core/node_modules/lodash/core.min.js
deleted file mode 100644
index b909d31..0000000
--- a/node_modules/babel-core/node_modules/lodash/core.min.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * @license
- * Lodash (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
- * Build: `lodash core -o ./dist/lodash.core.js`
- */
-;(function(){function n(n){return K(n)&&pn.call(n,"callee")&&!bn.call(n,"callee")}function t(n,t){return n.push.apply(n,t),n}function r(n){return function(t){return null==t?nn:t[n]}}function e(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function u(n,t){return j(t,function(t){return n[t]})}function o(n){return n instanceof i?n:new i(n)}function i(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function c(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");
-return setTimeout(function(){n.apply(nn,r)},t)}function f(n,t){var r=true;return mn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function a(n,t,r){for(var e=-1,u=n.length;++et}function y(n,t,r,e,u){return n===t||(null==n||null==t||!K(n)&&!K(t)?n!==n&&t!==t:b(n,t,r,e,y,u))}function b(n,t,r,e,u,o){var i=Nn(n),c=Nn(t),f=i?"[object Array]":hn.call(n),a=c?"[object Array]":hn.call(t),f="[object Arguments]"==f?"[object Object]":f,a="[object Arguments]"==a?"[object Object]":a,l="[object Object]"==f,c="[object Object]"==a,a=f==a;o||(o=[]);var p=An(o,function(t){return t[0]==n}),s=An(o,function(n){
-return n[0]==t});if(p&&s)return p[1]==t;if(o.push([n,t]),o.push([t,n]),a&&!l){if(i)r=B(n,t,r,e,u,o);else n:{switch(f){case"[object Boolean]":case"[object Date]":case"[object Number]":r=M(+n,+t);break n;case"[object Error]":r=n.name==t.name&&n.message==t.message;break n;case"[object RegExp]":case"[object String]":r=n==t+"";break n}r=false}return o.pop(),r}return 1&r||(i=l&&pn.call(n,"__wrapped__"),f=c&&pn.call(t,"__wrapped__"),!i&&!f)?!!a&&(r=R(n,t,r,e,u,o),o.pop(),r):(i=i?n.value():n,f=f?t.value():t,
-r=u(i,f,r,e,o),o.pop(),r)}function g(n){return typeof n=="function"?n:null==n?Y:(typeof n=="object"?d:r)(n)}function _(n,t){return nt&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++ei))return false;for(var c=-1,f=true,a=2&r?[]:nn;++cr?jn(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++rarguments.length,mn)}function J(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Fn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=nn),r}}function M(n,t){return n===t||n!==n&&t!==t}function U(n){var t;return(t=null!=n)&&(t=n.length,t=typeof t=="number"&&-1=t),t&&!V(n)}function V(n){return!!H(n)&&(n=hn.call(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n);
-}function H(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function K(n){return null!=n&&typeof n=="object"}function L(n){return typeof n=="number"||K(n)&&"[object Number]"==hn.call(n)}function Q(n){return typeof n=="string"||!Nn(n)&&K(n)&&"[object String]"==hn.call(n)}function W(n){return typeof n=="string"?n:null==n?"":n+""}function X(n){return null==n?[]:u(n,In(n))}function Y(n){return n}function Z(n,r,e){var u=In(r),o=h(r,u);null!=e||H(r)&&(o.length||!u.length)||(e=r,r=n,n=this,o=h(r,In(r)));
-var i=!(H(e)&&"chain"in e&&!e.chain),c=V(n);return mn(o,function(e){var u=r[e];n[e]=u,c&&(n.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=n(this.__wrapped__);return(e.__actions__=A(this.__actions__)).push({func:u,args:arguments,thisArg:n}),e.__chain__=r,e}return u.apply(n,t([this.value()],arguments))})}),n}var nn,tn=1/0,rn=/[&<>"']/g,en=RegExp(rn.source),un=typeof self=="object"&&self&&self.Object===Object&&self,on=typeof global=="object"&&global&&global.Object===Object&&global||un||Function("return this")(),cn=(un=typeof exports=="object"&&exports&&!exports.nodeType&&exports)&&typeof module=="object"&&module&&!module.nodeType&&module,fn=function(n){
-return function(t){return null==n?nn:n[t]}}({"&":"&","<":"<",">":">",'"':""","'":"'"}),an=Array.prototype,ln=Object.prototype,pn=ln.hasOwnProperty,sn=0,hn=ln.toString,vn=on._,yn=Object.create,bn=ln.propertyIsEnumerable,gn=on.isFinite,_n=function(n,t){return function(r){return n(t(r))}}(Object.keys,Object),jn=Math.max,dn=function(){function n(){}return function(t){return H(t)?yn?yn(t):(n.prototype=t,t=new n,n.prototype=nn,t):{}}}();i.prototype=dn(o.prototype),i.prototype.constructor=i;
-var mn=function(n,t){return function(r,e){if(null==r)return r;if(!U(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++or&&(r=jn(e+r,0));n:{for(t=g(t),e=n.length,r+=-1;++re||o&&c&&a||!u&&a||!i){r=1;break n}if(!o&&r { '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);
- }
-});
-
-module.exports = countBy;
diff --git a/node_modules/babel-core/node_modules/lodash/create.js b/node_modules/babel-core/node_modules/lodash/create.js
deleted file mode 100644
index 919edb8..0000000
--- a/node_modules/babel-core/node_modules/lodash/create.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var baseAssign = require('./_baseAssign'),
- baseCreate = require('./_baseCreate');
-
-/**
- * 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);
-}
-
-module.exports = create;
diff --git a/node_modules/babel-core/node_modules/lodash/curry.js b/node_modules/babel-core/node_modules/lodash/curry.js
deleted file mode 100644
index 918db1a..0000000
--- a/node_modules/babel-core/node_modules/lodash/curry.js
+++ /dev/null
@@ -1,57 +0,0 @@
-var createWrap = require('./_createWrap');
-
-/** Used to compose bitmasks for function metadata. */
-var WRAP_CURRY_FLAG = 8;
-
-/**
- * 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;
-}
-
-// Assign default placeholders.
-curry.placeholder = {};
-
-module.exports = curry;
diff --git a/node_modules/babel-core/node_modules/lodash/curryRight.js b/node_modules/babel-core/node_modules/lodash/curryRight.js
deleted file mode 100644
index c85b6f3..0000000
--- a/node_modules/babel-core/node_modules/lodash/curryRight.js
+++ /dev/null
@@ -1,54 +0,0 @@
-var createWrap = require('./_createWrap');
-
-/** Used to compose bitmasks for function metadata. */
-var WRAP_CURRY_RIGHT_FLAG = 16;
-
-/**
- * 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;
-}
-
-// Assign default placeholders.
-curryRight.placeholder = {};
-
-module.exports = curryRight;
diff --git a/node_modules/babel-core/node_modules/lodash/date.js b/node_modules/babel-core/node_modules/lodash/date.js
deleted file mode 100644
index cbf5b41..0000000
--- a/node_modules/babel-core/node_modules/lodash/date.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- 'now': require('./now')
-};
diff --git a/node_modules/babel-core/node_modules/lodash/debounce.js b/node_modules/babel-core/node_modules/lodash/debounce.js
deleted file mode 100644
index 04d7dfd..0000000
--- a/node_modules/babel-core/node_modules/lodash/debounce.js
+++ /dev/null
@@ -1,188 +0,0 @@
-var isObject = require('./isObject'),
- now = require('./now'),
- toNumber = require('./toNumber');
-
-/** Error message constants. */
-var FUNC_ERROR_TEXT = 'Expected a function';
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max,
- nativeMin = Math.min;
-
-/**
- * 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,
- result = wait - timeSinceLastCall;
-
- return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
- }
-
- 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;
-}
-
-module.exports = debounce;
diff --git a/node_modules/babel-core/node_modules/lodash/deburr.js b/node_modules/babel-core/node_modules/lodash/deburr.js
deleted file mode 100644
index f85e314..0000000
--- a/node_modules/babel-core/node_modules/lodash/deburr.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var deburrLetter = require('./_deburrLetter'),
- toString = require('./toString');
-
-/** Used to match Latin Unicode letters (excluding mathematical operators). */
-var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
-
-/** Used to compose unicode character classes. */
-var rsComboMarksRange = '\\u0300-\\u036f',
- reComboHalfMarksRange = '\\ufe20-\\ufe2f',
- rsComboSymbolsRange = '\\u20d0-\\u20ff',
- rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
-
-/** Used to compose unicode capture groups. */
-var rsCombo = '[' + rsComboRange + ']';
-
-/**
- * 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');
-
-/**
- * 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, '');
-}
-
-module.exports = deburr;
diff --git a/node_modules/babel-core/node_modules/lodash/defaultTo.js b/node_modules/babel-core/node_modules/lodash/defaultTo.js
deleted file mode 100644
index 5b33359..0000000
--- a/node_modules/babel-core/node_modules/lodash/defaultTo.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Checks `value` to determine whether a default value should be returned in
- * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,
- * or `undefined`.
- *
- * @static
- * @memberOf _
- * @since 4.14.0
- * @category Util
- * @param {*} value The value to check.
- * @param {*} defaultValue The default value.
- * @returns {*} Returns the resolved value.
- * @example
- *
- * _.defaultTo(1, 10);
- * // => 1
- *
- * _.defaultTo(undefined, 10);
- * // => 10
- */
-function defaultTo(value, defaultValue) {
- return (value == null || value !== value) ? defaultValue : value;
-}
-
-module.exports = defaultTo;
diff --git a/node_modules/babel-core/node_modules/lodash/defaults.js b/node_modules/babel-core/node_modules/lodash/defaults.js
deleted file mode 100644
index 6b75ee0..0000000
--- a/node_modules/babel-core/node_modules/lodash/defaults.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var apply = require('./_apply'),
- assignInWith = require('./assignInWith'),
- baseRest = require('./_baseRest'),
- customDefaultsAssignIn = require('./_customDefaultsAssignIn');
-
-/**
- * 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(args) {
- args.push(undefined, customDefaultsAssignIn);
- return apply(assignInWith, undefined, args);
-});
-
-module.exports = defaults;
diff --git a/node_modules/babel-core/node_modules/lodash/defaultsDeep.js b/node_modules/babel-core/node_modules/lodash/defaultsDeep.js
deleted file mode 100644
index 9b5fa3e..0000000
--- a/node_modules/babel-core/node_modules/lodash/defaultsDeep.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var apply = require('./_apply'),
- baseRest = require('./_baseRest'),
- customDefaultsMerge = require('./_customDefaultsMerge'),
- mergeWith = require('./mergeWith');
-
-/**
- * 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);
-});
-
-module.exports = defaultsDeep;
diff --git a/node_modules/babel-core/node_modules/lodash/defer.js b/node_modules/babel-core/node_modules/lodash/defer.js
deleted file mode 100644
index f6d6c6f..0000000
--- a/node_modules/babel-core/node_modules/lodash/defer.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var baseDelay = require('./_baseDelay'),
- baseRest = require('./_baseRest');
-
-/**
- * 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);
-});
-
-module.exports = defer;
diff --git a/node_modules/babel-core/node_modules/lodash/delay.js b/node_modules/babel-core/node_modules/lodash/delay.js
deleted file mode 100644
index bd55479..0000000
--- a/node_modules/babel-core/node_modules/lodash/delay.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var baseDelay = require('./_baseDelay'),
- baseRest = require('./_baseRest'),
- toNumber = require('./toNumber');
-
-/**
- * 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);
-});
-
-module.exports = delay;
diff --git a/node_modules/babel-core/node_modules/lodash/difference.js b/node_modules/babel-core/node_modules/lodash/difference.js
deleted file mode 100644
index fa28bb3..0000000
--- a/node_modules/babel-core/node_modules/lodash/difference.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var baseDifference = require('./_baseDifference'),
- baseFlatten = require('./_baseFlatten'),
- baseRest = require('./_baseRest'),
- isArrayLikeObject = require('./isArrayLikeObject');
-
-/**
- * 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))
- : [];
-});
-
-module.exports = difference;
diff --git a/node_modules/babel-core/node_modules/lodash/differenceBy.js b/node_modules/babel-core/node_modules/lodash/differenceBy.js
deleted file mode 100644
index 2cd63e7..0000000
--- a/node_modules/babel-core/node_modules/lodash/differenceBy.js
+++ /dev/null
@@ -1,44 +0,0 @@
-var baseDifference = require('./_baseDifference'),
- baseFlatten = require('./_baseFlatten'),
- baseIteratee = require('./_baseIteratee'),
- baseRest = require('./_baseRest'),
- isArrayLikeObject = require('./isArrayLikeObject'),
- last = require('./last');
-
-/**
- * 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), baseIteratee(iteratee, 2))
- : [];
-});
-
-module.exports = differenceBy;
diff --git a/node_modules/babel-core/node_modules/lodash/differenceWith.js b/node_modules/babel-core/node_modules/lodash/differenceWith.js
deleted file mode 100644
index c0233f4..0000000
--- a/node_modules/babel-core/node_modules/lodash/differenceWith.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var baseDifference = require('./_baseDifference'),
- baseFlatten = require('./_baseFlatten'),
- baseRest = require('./_baseRest'),
- isArrayLikeObject = require('./isArrayLikeObject'),
- last = require('./last');
-
-/**
- * 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)
- : [];
-});
-
-module.exports = differenceWith;
diff --git a/node_modules/babel-core/node_modules/lodash/divide.js b/node_modules/babel-core/node_modules/lodash/divide.js
deleted file mode 100644
index 8cae0cd..0000000
--- a/node_modules/babel-core/node_modules/lodash/divide.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var createMathOperation = require('./_createMathOperation');
-
-/**
- * Divide two numbers.
- *
- * @static
- * @memberOf _
- * @since 4.7.0
- * @category Math
- * @param {number} dividend The first number in a division.
- * @param {number} divisor The second number in a division.
- * @returns {number} Returns the quotient.
- * @example
- *
- * _.divide(6, 4);
- * // => 1.5
- */
-var divide = createMathOperation(function(dividend, divisor) {
- return dividend / divisor;
-}, 1);
-
-module.exports = divide;
diff --git a/node_modules/babel-core/node_modules/lodash/drop.js b/node_modules/babel-core/node_modules/lodash/drop.js
deleted file mode 100644
index d5c3cba..0000000
--- a/node_modules/babel-core/node_modules/lodash/drop.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var baseSlice = require('./_baseSlice'),
- toInteger = require('./toInteger');
-
-/**
- * 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);
-}
-
-module.exports = drop;
diff --git a/node_modules/babel-core/node_modules/lodash/dropRight.js b/node_modules/babel-core/node_modules/lodash/dropRight.js
deleted file mode 100644
index 441fe99..0000000
--- a/node_modules/babel-core/node_modules/lodash/dropRight.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var baseSlice = require('./_baseSlice'),
- toInteger = require('./toInteger');
-
-/**
- * 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);
-}
-
-module.exports = dropRight;
diff --git a/node_modules/babel-core/node_modules/lodash/dropRightWhile.js b/node_modules/babel-core/node_modules/lodash/dropRightWhile.js
deleted file mode 100644
index 9ad36a0..0000000
--- a/node_modules/babel-core/node_modules/lodash/dropRightWhile.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var baseIteratee = require('./_baseIteratee'),
- baseWhile = require('./_baseWhile');
-
-/**
- * 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, baseIteratee(predicate, 3), true, true)
- : [];
-}
-
-module.exports = dropRightWhile;
diff --git a/node_modules/babel-core/node_modules/lodash/dropWhile.js b/node_modules/babel-core/node_modules/lodash/dropWhile.js
deleted file mode 100644
index 903ef56..0000000
--- a/node_modules/babel-core/node_modules/lodash/dropWhile.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var baseIteratee = require('./_baseIteratee'),
- baseWhile = require('./_baseWhile');
-
-/**
- * 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, baseIteratee(predicate, 3), true)
- : [];
-}
-
-module.exports = dropWhile;
diff --git a/node_modules/babel-core/node_modules/lodash/each.js b/node_modules/babel-core/node_modules/lodash/each.js
deleted file mode 100644
index 8800f42..0000000
--- a/node_modules/babel-core/node_modules/lodash/each.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./forEach');
diff --git a/node_modules/babel-core/node_modules/lodash/eachRight.js b/node_modules/babel-core/node_modules/lodash/eachRight.js
deleted file mode 100644
index 3252b2a..0000000
--- a/node_modules/babel-core/node_modules/lodash/eachRight.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./forEachRight');
diff --git a/node_modules/babel-core/node_modules/lodash/endsWith.js b/node_modules/babel-core/node_modules/lodash/endsWith.js
deleted file mode 100644
index 76fc866..0000000
--- a/node_modules/babel-core/node_modules/lodash/endsWith.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var baseClamp = require('./_baseClamp'),
- baseToString = require('./_baseToString'),
- toInteger = require('./toInteger'),
- toString = require('./toString');
-
-/**
- * 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;
-}
-
-module.exports = endsWith;
diff --git a/node_modules/babel-core/node_modules/lodash/entries.js b/node_modules/babel-core/node_modules/lodash/entries.js
deleted file mode 100644
index 7a88df2..0000000
--- a/node_modules/babel-core/node_modules/lodash/entries.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./toPairs');
diff --git a/node_modules/babel-core/node_modules/lodash/entriesIn.js b/node_modules/babel-core/node_modules/lodash/entriesIn.js
deleted file mode 100644
index f6c6331..0000000
--- a/node_modules/babel-core/node_modules/lodash/entriesIn.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./toPairsIn');
diff --git a/node_modules/babel-core/node_modules/lodash/eq.js b/node_modules/babel-core/node_modules/lodash/eq.js
deleted file mode 100644
index a940688..0000000
--- a/node_modules/babel-core/node_modules/lodash/eq.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * 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);
-}
-
-module.exports = eq;
diff --git a/node_modules/babel-core/node_modules/lodash/escape.js b/node_modules/babel-core/node_modules/lodash/escape.js
deleted file mode 100644
index 9247e00..0000000
--- a/node_modules/babel-core/node_modules/lodash/escape.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var escapeHtmlChar = require('./_escapeHtmlChar'),
- toString = require('./toString');
-
-/** Used to match HTML entities and HTML characters. */
-var reUnescapedHtml = /[&<>"']/g,
- reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
-
-/**
- * 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;
-}
-
-module.exports = escape;
diff --git a/node_modules/babel-core/node_modules/lodash/escapeRegExp.js b/node_modules/babel-core/node_modules/lodash/escapeRegExp.js
deleted file mode 100644
index 0a58c69..0000000
--- a/node_modules/babel-core/node_modules/lodash/escapeRegExp.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var toString = require('./toString');
-
-/**
- * Used to match `RegExp`
- * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
- */
-var reRegExpChar = /[\\^$.*+?()[\]{}|]/g,
- reHasRegExpChar = RegExp(reRegExpChar.source);
-
-/**
- * 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;
-}
-
-module.exports = escapeRegExp;
diff --git a/node_modules/babel-core/node_modules/lodash/every.js b/node_modules/babel-core/node_modules/lodash/every.js
deleted file mode 100644
index 25080da..0000000
--- a/node_modules/babel-core/node_modules/lodash/every.js
+++ /dev/null
@@ -1,56 +0,0 @@
-var arrayEvery = require('./_arrayEvery'),
- baseEvery = require('./_baseEvery'),
- baseIteratee = require('./_baseIteratee'),
- isArray = require('./isArray'),
- isIterateeCall = require('./_isIterateeCall');
-
-/**
- * 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, baseIteratee(predicate, 3));
-}
-
-module.exports = every;
diff --git a/node_modules/babel-core/node_modules/lodash/extend.js b/node_modules/babel-core/node_modules/lodash/extend.js
deleted file mode 100644
index e00166c..0000000
--- a/node_modules/babel-core/node_modules/lodash/extend.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./assignIn');
diff --git a/node_modules/babel-core/node_modules/lodash/extendWith.js b/node_modules/babel-core/node_modules/lodash/extendWith.js
deleted file mode 100644
index dbdcb3b..0000000
--- a/node_modules/babel-core/node_modules/lodash/extendWith.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./assignInWith');
diff --git a/node_modules/babel-core/node_modules/lodash/fill.js b/node_modules/babel-core/node_modules/lodash/fill.js
deleted file mode 100644
index ae13aa1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fill.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var baseFill = require('./_baseFill'),
- isIterateeCall = require('./_isIterateeCall');
-
-/**
- * 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);
-}
-
-module.exports = fill;
diff --git a/node_modules/babel-core/node_modules/lodash/filter.js b/node_modules/babel-core/node_modules/lodash/filter.js
deleted file mode 100644
index 52616be..0000000
--- a/node_modules/babel-core/node_modules/lodash/filter.js
+++ /dev/null
@@ -1,48 +0,0 @@
-var arrayFilter = require('./_arrayFilter'),
- baseFilter = require('./_baseFilter'),
- baseIteratee = require('./_baseIteratee'),
- isArray = require('./isArray');
-
-/**
- * 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, baseIteratee(predicate, 3));
-}
-
-module.exports = filter;
diff --git a/node_modules/babel-core/node_modules/lodash/find.js b/node_modules/babel-core/node_modules/lodash/find.js
deleted file mode 100644
index de732cc..0000000
--- a/node_modules/babel-core/node_modules/lodash/find.js
+++ /dev/null
@@ -1,42 +0,0 @@
-var createFind = require('./_createFind'),
- findIndex = require('./findIndex');
-
-/**
- * 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);
-
-module.exports = find;
diff --git a/node_modules/babel-core/node_modules/lodash/findIndex.js b/node_modules/babel-core/node_modules/lodash/findIndex.js
deleted file mode 100644
index 4689069..0000000
--- a/node_modules/babel-core/node_modules/lodash/findIndex.js
+++ /dev/null
@@ -1,55 +0,0 @@
-var baseFindIndex = require('./_baseFindIndex'),
- baseIteratee = require('./_baseIteratee'),
- toInteger = require('./toInteger');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max;
-
-/**
- * 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, baseIteratee(predicate, 3), index);
-}
-
-module.exports = findIndex;
diff --git a/node_modules/babel-core/node_modules/lodash/findKey.js b/node_modules/babel-core/node_modules/lodash/findKey.js
deleted file mode 100644
index cac0248..0000000
--- a/node_modules/babel-core/node_modules/lodash/findKey.js
+++ /dev/null
@@ -1,44 +0,0 @@
-var baseFindKey = require('./_baseFindKey'),
- baseForOwn = require('./_baseForOwn'),
- baseIteratee = require('./_baseIteratee');
-
-/**
- * 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, baseIteratee(predicate, 3), baseForOwn);
-}
-
-module.exports = findKey;
diff --git a/node_modules/babel-core/node_modules/lodash/findLast.js b/node_modules/babel-core/node_modules/lodash/findLast.js
deleted file mode 100644
index 70b4271..0000000
--- a/node_modules/babel-core/node_modules/lodash/findLast.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var createFind = require('./_createFind'),
- findLastIndex = require('./findLastIndex');
-
-/**
- * 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);
-
-module.exports = findLast;
diff --git a/node_modules/babel-core/node_modules/lodash/findLastIndex.js b/node_modules/babel-core/node_modules/lodash/findLastIndex.js
deleted file mode 100644
index 7da3431..0000000
--- a/node_modules/babel-core/node_modules/lodash/findLastIndex.js
+++ /dev/null
@@ -1,59 +0,0 @@
-var baseFindIndex = require('./_baseFindIndex'),
- baseIteratee = require('./_baseIteratee'),
- toInteger = require('./toInteger');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max,
- nativeMin = Math.min;
-
-/**
- * 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, baseIteratee(predicate, 3), index, true);
-}
-
-module.exports = findLastIndex;
diff --git a/node_modules/babel-core/node_modules/lodash/findLastKey.js b/node_modules/babel-core/node_modules/lodash/findLastKey.js
deleted file mode 100644
index 66fb9fb..0000000
--- a/node_modules/babel-core/node_modules/lodash/findLastKey.js
+++ /dev/null
@@ -1,44 +0,0 @@
-var baseFindKey = require('./_baseFindKey'),
- baseForOwnRight = require('./_baseForOwnRight'),
- baseIteratee = require('./_baseIteratee');
-
-/**
- * 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, baseIteratee(predicate, 3), baseForOwnRight);
-}
-
-module.exports = findLastKey;
diff --git a/node_modules/babel-core/node_modules/lodash/first.js b/node_modules/babel-core/node_modules/lodash/first.js
deleted file mode 100644
index 53f4ad1..0000000
--- a/node_modules/babel-core/node_modules/lodash/first.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./head');
diff --git a/node_modules/babel-core/node_modules/lodash/flatMap.js b/node_modules/babel-core/node_modules/lodash/flatMap.js
deleted file mode 100644
index e668506..0000000
--- a/node_modules/babel-core/node_modules/lodash/flatMap.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var baseFlatten = require('./_baseFlatten'),
- map = require('./map');
-
-/**
- * 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);
-}
-
-module.exports = flatMap;
diff --git a/node_modules/babel-core/node_modules/lodash/flatMapDeep.js b/node_modules/babel-core/node_modules/lodash/flatMapDeep.js
deleted file mode 100644
index 4653d60..0000000
--- a/node_modules/babel-core/node_modules/lodash/flatMapDeep.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var baseFlatten = require('./_baseFlatten'),
- map = require('./map');
-
-/** Used as references for various `Number` constants. */
-var INFINITY = 1 / 0;
-
-/**
- * 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);
-}
-
-module.exports = flatMapDeep;
diff --git a/node_modules/babel-core/node_modules/lodash/flatMapDepth.js b/node_modules/babel-core/node_modules/lodash/flatMapDepth.js
deleted file mode 100644
index 6d72005..0000000
--- a/node_modules/babel-core/node_modules/lodash/flatMapDepth.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var baseFlatten = require('./_baseFlatten'),
- map = require('./map'),
- toInteger = require('./toInteger');
-
-/**
- * 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);
-}
-
-module.exports = flatMapDepth;
diff --git a/node_modules/babel-core/node_modules/lodash/flatten.js b/node_modules/babel-core/node_modules/lodash/flatten.js
deleted file mode 100644
index 3f09f7f..0000000
--- a/node_modules/babel-core/node_modules/lodash/flatten.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var baseFlatten = require('./_baseFlatten');
-
-/**
- * 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) : [];
-}
-
-module.exports = flatten;
diff --git a/node_modules/babel-core/node_modules/lodash/flattenDeep.js b/node_modules/babel-core/node_modules/lodash/flattenDeep.js
deleted file mode 100644
index 8ad585c..0000000
--- a/node_modules/babel-core/node_modules/lodash/flattenDeep.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var baseFlatten = require('./_baseFlatten');
-
-/** Used as references for various `Number` constants. */
-var INFINITY = 1 / 0;
-
-/**
- * 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) : [];
-}
-
-module.exports = flattenDeep;
diff --git a/node_modules/babel-core/node_modules/lodash/flattenDepth.js b/node_modules/babel-core/node_modules/lodash/flattenDepth.js
deleted file mode 100644
index 441fdcc..0000000
--- a/node_modules/babel-core/node_modules/lodash/flattenDepth.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var baseFlatten = require('./_baseFlatten'),
- toInteger = require('./toInteger');
-
-/**
- * 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);
-}
-
-module.exports = flattenDepth;
diff --git a/node_modules/babel-core/node_modules/lodash/flip.js b/node_modules/babel-core/node_modules/lodash/flip.js
deleted file mode 100644
index c28dd78..0000000
--- a/node_modules/babel-core/node_modules/lodash/flip.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var createWrap = require('./_createWrap');
-
-/** Used to compose bitmasks for function metadata. */
-var WRAP_FLIP_FLAG = 512;
-
-/**
- * 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);
-}
-
-module.exports = flip;
diff --git a/node_modules/babel-core/node_modules/lodash/floor.js b/node_modules/babel-core/node_modules/lodash/floor.js
deleted file mode 100644
index ab6dfa2..0000000
--- a/node_modules/babel-core/node_modules/lodash/floor.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var createRound = require('./_createRound');
-
-/**
- * Computes `number` rounded down to `precision`.
- *
- * @static
- * @memberOf _
- * @since 3.10.0
- * @category Math
- * @param {number} number The number to round down.
- * @param {number} [precision=0] The precision to round down to.
- * @returns {number} Returns the rounded down number.
- * @example
- *
- * _.floor(4.006);
- * // => 4
- *
- * _.floor(0.046, 2);
- * // => 0.04
- *
- * _.floor(4060, -2);
- * // => 4000
- */
-var floor = createRound('floor');
-
-module.exports = floor;
diff --git a/node_modules/babel-core/node_modules/lodash/flow.js b/node_modules/babel-core/node_modules/lodash/flow.js
deleted file mode 100644
index 74b6b62..0000000
--- a/node_modules/babel-core/node_modules/lodash/flow.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var createFlow = require('./_createFlow');
-
-/**
- * Creates a function that returns the result of invoking the given functions
- * with the `this` binding of the created function, where each successive
- * invocation is supplied the return value of the previous.
- *
- * @static
- * @memberOf _
- * @since 3.0.0
- * @category Util
- * @param {...(Function|Function[])} [funcs] The functions to invoke.
- * @returns {Function} Returns the new composite function.
- * @see _.flowRight
- * @example
- *
- * function square(n) {
- * return n * n;
- * }
- *
- * var addSquare = _.flow([_.add, square]);
- * addSquare(1, 2);
- * // => 9
- */
-var flow = createFlow();
-
-module.exports = flow;
diff --git a/node_modules/babel-core/node_modules/lodash/flowRight.js b/node_modules/babel-core/node_modules/lodash/flowRight.js
deleted file mode 100644
index 1146141..0000000
--- a/node_modules/babel-core/node_modules/lodash/flowRight.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var createFlow = require('./_createFlow');
-
-/**
- * This method is like `_.flow` except that it creates a function that
- * invokes the given functions from right to left.
- *
- * @static
- * @since 3.0.0
- * @memberOf _
- * @category Util
- * @param {...(Function|Function[])} [funcs] The functions to invoke.
- * @returns {Function} Returns the new composite function.
- * @see _.flow
- * @example
- *
- * function square(n) {
- * return n * n;
- * }
- *
- * var addSquare = _.flowRight([square, _.add]);
- * addSquare(1, 2);
- * // => 9
- */
-var flowRight = createFlow(true);
-
-module.exports = flowRight;
diff --git a/node_modules/babel-core/node_modules/lodash/forEach.js b/node_modules/babel-core/node_modules/lodash/forEach.js
deleted file mode 100644
index c64eaa7..0000000
--- a/node_modules/babel-core/node_modules/lodash/forEach.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var arrayEach = require('./_arrayEach'),
- baseEach = require('./_baseEach'),
- castFunction = require('./_castFunction'),
- isArray = require('./isArray');
-
-/**
- * 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, castFunction(iteratee));
-}
-
-module.exports = forEach;
diff --git a/node_modules/babel-core/node_modules/lodash/forEachRight.js b/node_modules/babel-core/node_modules/lodash/forEachRight.js
deleted file mode 100644
index 7390eba..0000000
--- a/node_modules/babel-core/node_modules/lodash/forEachRight.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var arrayEachRight = require('./_arrayEachRight'),
- baseEachRight = require('./_baseEachRight'),
- castFunction = require('./_castFunction'),
- isArray = require('./isArray');
-
-/**
- * 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, castFunction(iteratee));
-}
-
-module.exports = forEachRight;
diff --git a/node_modules/babel-core/node_modules/lodash/forIn.js b/node_modules/babel-core/node_modules/lodash/forIn.js
deleted file mode 100644
index 583a596..0000000
--- a/node_modules/babel-core/node_modules/lodash/forIn.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var baseFor = require('./_baseFor'),
- castFunction = require('./_castFunction'),
- keysIn = require('./keysIn');
-
-/**
- * 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, castFunction(iteratee), keysIn);
-}
-
-module.exports = forIn;
diff --git a/node_modules/babel-core/node_modules/lodash/forInRight.js b/node_modules/babel-core/node_modules/lodash/forInRight.js
deleted file mode 100644
index 4aedf58..0000000
--- a/node_modules/babel-core/node_modules/lodash/forInRight.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var baseForRight = require('./_baseForRight'),
- castFunction = require('./_castFunction'),
- keysIn = require('./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, castFunction(iteratee), keysIn);
-}
-
-module.exports = forInRight;
diff --git a/node_modules/babel-core/node_modules/lodash/forOwn.js b/node_modules/babel-core/node_modules/lodash/forOwn.js
deleted file mode 100644
index 94eed84..0000000
--- a/node_modules/babel-core/node_modules/lodash/forOwn.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var baseForOwn = require('./_baseForOwn'),
- castFunction = require('./_castFunction');
-
-/**
- * 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, castFunction(iteratee));
-}
-
-module.exports = forOwn;
diff --git a/node_modules/babel-core/node_modules/lodash/forOwnRight.js b/node_modules/babel-core/node_modules/lodash/forOwnRight.js
deleted file mode 100644
index 86f338f..0000000
--- a/node_modules/babel-core/node_modules/lodash/forOwnRight.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var baseForOwnRight = require('./_baseForOwnRight'),
- castFunction = require('./_castFunction');
-
-/**
- * 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, castFunction(iteratee));
-}
-
-module.exports = forOwnRight;
diff --git a/node_modules/babel-core/node_modules/lodash/fp.js b/node_modules/babel-core/node_modules/lodash/fp.js
deleted file mode 100644
index e372dbb..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var _ = require('./lodash.min').runInContext();
-module.exports = require('./fp/_baseConvert')(_, _);
diff --git a/node_modules/babel-core/node_modules/lodash/fp/F.js b/node_modules/babel-core/node_modules/lodash/fp/F.js
deleted file mode 100644
index a05a63a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/F.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./stubFalse');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/T.js b/node_modules/babel-core/node_modules/lodash/fp/T.js
deleted file mode 100644
index e2ba8ea..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/T.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./stubTrue');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/__.js b/node_modules/babel-core/node_modules/lodash/fp/__.js
deleted file mode 100644
index 4af98de..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/__.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./placeholder');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/_baseConvert.js b/node_modules/babel-core/node_modules/lodash/fp/_baseConvert.js
deleted file mode 100644
index 7af2765..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/_baseConvert.js
+++ /dev/null
@@ -1,568 +0,0 @@
-var mapping = require('./_mapping'),
- fallbackHolder = require('./placeholder');
-
-/** Built-in value reference. */
-var push = Array.prototype.push;
-
-/**
- * Creates a function, with an arity of `n`, that invokes `func` with the
- * arguments it receives.
- *
- * @private
- * @param {Function} func The function to wrap.
- * @param {number} n The arity of the new function.
- * @returns {Function} Returns the new function.
- */
-function baseArity(func, n) {
- return n == 2
- ? function(a, b) { return func.apply(undefined, arguments); }
- : function(a) { return func.apply(undefined, arguments); };
-}
-
-/**
- * Creates a function that invokes `func`, with up to `n` arguments, ignoring
- * any additional arguments.
- *
- * @private
- * @param {Function} func The function to cap arguments for.
- * @param {number} n The arity cap.
- * @returns {Function} Returns the new function.
- */
-function baseAry(func, n) {
- return n == 2
- ? function(a, b) { return func(a, b); }
- : function(a) { return func(a); };
-}
-
-/**
- * Creates a clone of `array`.
- *
- * @private
- * @param {Array} array The array to clone.
- * @returns {Array} Returns the cloned array.
- */
-function cloneArray(array) {
- var length = array ? array.length : 0,
- result = Array(length);
-
- while (length--) {
- result[length] = array[length];
- }
- return result;
-}
-
-/**
- * Creates a function that clones a given object using the assignment `func`.
- *
- * @private
- * @param {Function} func The assignment function.
- * @returns {Function} Returns the new cloner function.
- */
-function createCloner(func) {
- return function(object) {
- return func({}, object);
- };
-}
-
-/**
- * A specialized version of `_.spread` which flattens the spread array into
- * the arguments of the invoked `func`.
- *
- * @private
- * @param {Function} func The function to spread arguments over.
- * @param {number} start The start position of the spread.
- * @returns {Function} Returns the new function.
- */
-function flatSpread(func, start) {
- return function() {
- var length = arguments.length,
- lastIndex = length - 1,
- args = Array(length);
-
- while (length--) {
- args[length] = arguments[length];
- }
- var array = args[start],
- otherArgs = args.slice(0, start);
-
- if (array) {
- push.apply(otherArgs, array);
- }
- if (start != lastIndex) {
- push.apply(otherArgs, args.slice(start + 1));
- }
- return func.apply(this, otherArgs);
- };
-}
-
-/**
- * Creates a function that wraps `func` and uses `cloner` to clone the first
- * argument it receives.
- *
- * @private
- * @param {Function} func The function to wrap.
- * @param {Function} cloner The function to clone arguments.
- * @returns {Function} Returns the new immutable function.
- */
-function wrapImmutable(func, cloner) {
- return function() {
- var length = arguments.length;
- if (!length) {
- return;
- }
- var args = Array(length);
- while (length--) {
- args[length] = arguments[length];
- }
- var result = args[0] = cloner.apply(undefined, args);
- func.apply(undefined, args);
- return result;
- };
-}
-
-/**
- * The base implementation of `convert` which accepts a `util` object of methods
- * required to perform conversions.
- *
- * @param {Object} util The util object.
- * @param {string} name The name of the function to convert.
- * @param {Function} func The function to convert.
- * @param {Object} [options] The options object.
- * @param {boolean} [options.cap=true] Specify capping iteratee arguments.
- * @param {boolean} [options.curry=true] Specify currying.
- * @param {boolean} [options.fixed=true] Specify fixed arity.
- * @param {boolean} [options.immutable=true] Specify immutable operations.
- * @param {boolean} [options.rearg=true] Specify rearranging arguments.
- * @returns {Function|Object} Returns the converted function or object.
- */
-function baseConvert(util, name, func, options) {
- var setPlaceholder,
- isLib = typeof name == 'function',
- isObj = name === Object(name);
-
- if (isObj) {
- options = func;
- func = name;
- name = undefined;
- }
- if (func == null) {
- throw new TypeError;
- }
- options || (options = {});
-
- var config = {
- 'cap': 'cap' in options ? options.cap : true,
- 'curry': 'curry' in options ? options.curry : true,
- 'fixed': 'fixed' in options ? options.fixed : true,
- 'immutable': 'immutable' in options ? options.immutable : true,
- 'rearg': 'rearg' in options ? options.rearg : true
- };
-
- var forceCurry = ('curry' in options) && options.curry,
- forceFixed = ('fixed' in options) && options.fixed,
- forceRearg = ('rearg' in options) && options.rearg,
- placeholder = isLib ? func : fallbackHolder,
- pristine = isLib ? func.runInContext() : undefined;
-
- var helpers = isLib ? func : {
- 'ary': util.ary,
- 'assign': util.assign,
- 'clone': util.clone,
- 'curry': util.curry,
- 'forEach': util.forEach,
- 'isArray': util.isArray,
- 'isFunction': util.isFunction,
- 'iteratee': util.iteratee,
- 'keys': util.keys,
- 'rearg': util.rearg,
- 'toInteger': util.toInteger,
- 'toPath': util.toPath
- };
-
- var ary = helpers.ary,
- assign = helpers.assign,
- clone = helpers.clone,
- curry = helpers.curry,
- each = helpers.forEach,
- isArray = helpers.isArray,
- isFunction = helpers.isFunction,
- keys = helpers.keys,
- rearg = helpers.rearg,
- toInteger = helpers.toInteger,
- toPath = helpers.toPath;
-
- var aryMethodKeys = keys(mapping.aryMethod);
-
- var wrappers = {
- 'castArray': function(castArray) {
- return function() {
- var value = arguments[0];
- return isArray(value)
- ? castArray(cloneArray(value))
- : castArray.apply(undefined, arguments);
- };
- },
- 'iteratee': function(iteratee) {
- return function() {
- var func = arguments[0],
- arity = arguments[1],
- result = iteratee(func, arity),
- length = result.length;
-
- if (config.cap && typeof arity == 'number') {
- arity = arity > 2 ? (arity - 2) : 1;
- return (length && length <= arity) ? result : baseAry(result, arity);
- }
- return result;
- };
- },
- 'mixin': function(mixin) {
- return function(source) {
- var func = this;
- if (!isFunction(func)) {
- return mixin(func, Object(source));
- }
- var pairs = [];
- each(keys(source), function(key) {
- if (isFunction(source[key])) {
- pairs.push([key, func.prototype[key]]);
- }
- });
-
- mixin(func, Object(source));
-
- each(pairs, function(pair) {
- var value = pair[1];
- if (isFunction(value)) {
- func.prototype[pair[0]] = value;
- } else {
- delete func.prototype[pair[0]];
- }
- });
- return func;
- };
- },
- 'nthArg': function(nthArg) {
- return function(n) {
- var arity = n < 0 ? 1 : (toInteger(n) + 1);
- return curry(nthArg(n), arity);
- };
- },
- 'rearg': function(rearg) {
- return function(func, indexes) {
- var arity = indexes ? indexes.length : 0;
- return curry(rearg(func, indexes), arity);
- };
- },
- 'runInContext': function(runInContext) {
- return function(context) {
- return baseConvert(util, runInContext(context), options);
- };
- }
- };
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Casts `func` to a function with an arity capped iteratee if needed.
- *
- * @private
- * @param {string} name The name of the function to inspect.
- * @param {Function} func The function to inspect.
- * @returns {Function} Returns the cast function.
- */
- function castCap(name, func) {
- if (config.cap) {
- var indexes = mapping.iterateeRearg[name];
- if (indexes) {
- return iterateeRearg(func, indexes);
- }
- var n = !isLib && mapping.iterateeAry[name];
- if (n) {
- return iterateeAry(func, n);
- }
- }
- return func;
- }
-
- /**
- * Casts `func` to a curried function if needed.
- *
- * @private
- * @param {string} name The name of the function to inspect.
- * @param {Function} func The function to inspect.
- * @param {number} n The arity of `func`.
- * @returns {Function} Returns the cast function.
- */
- function castCurry(name, func, n) {
- return (forceCurry || (config.curry && n > 1))
- ? curry(func, n)
- : func;
- }
-
- /**
- * Casts `func` to a fixed arity function if needed.
- *
- * @private
- * @param {string} name The name of the function to inspect.
- * @param {Function} func The function to inspect.
- * @param {number} n The arity cap.
- * @returns {Function} Returns the cast function.
- */
- function castFixed(name, func, n) {
- if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {
- var data = mapping.methodSpread[name],
- start = data && data.start;
-
- return start === undefined ? ary(func, n) : flatSpread(func, start);
- }
- return func;
- }
-
- /**
- * Casts `func` to an rearged function if needed.
- *
- * @private
- * @param {string} name The name of the function to inspect.
- * @param {Function} func The function to inspect.
- * @param {number} n The arity of `func`.
- * @returns {Function} Returns the cast function.
- */
- function castRearg(name, func, n) {
- return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name]))
- ? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n])
- : func;
- }
-
- /**
- * Creates a clone of `object` by `path`.
- *
- * @private
- * @param {Object} object The object to clone.
- * @param {Array|string} path The path to clone by.
- * @returns {Object} Returns the cloned object.
- */
- function cloneByPath(object, path) {
- path = toPath(path);
-
- var index = -1,
- length = path.length,
- lastIndex = length - 1,
- result = clone(Object(object)),
- nested = result;
-
- while (nested != null && ++index < length) {
- var key = path[index],
- value = nested[key];
-
- if (value != null) {
- nested[path[index]] = clone(index == lastIndex ? value : Object(value));
- }
- nested = nested[key];
- }
- return result;
- }
-
- /**
- * Converts `lodash` to an immutable auto-curried iteratee-first data-last
- * version with conversion `options` applied.
- *
- * @param {Object} [options] The options object. See `baseConvert` for more details.
- * @returns {Function} Returns the converted `lodash`.
- */
- function convertLib(options) {
- return _.runInContext.convert(options)(undefined);
- }
-
- /**
- * Create a converter function for `func` of `name`.
- *
- * @param {string} name The name of the function to convert.
- * @param {Function} func The function to convert.
- * @returns {Function} Returns the new converter function.
- */
- function createConverter(name, func) {
- var realName = mapping.aliasToReal[name] || name,
- methodName = mapping.remap[realName] || realName,
- oldOptions = options;
-
- return function(options) {
- var newUtil = isLib ? pristine : helpers,
- newFunc = isLib ? pristine[methodName] : func,
- newOptions = assign(assign({}, oldOptions), options);
-
- return baseConvert(newUtil, realName, newFunc, newOptions);
- };
- }
-
- /**
- * Creates a function that wraps `func` to invoke its iteratee, with up to `n`
- * arguments, ignoring any additional arguments.
- *
- * @private
- * @param {Function} func The function to cap iteratee arguments for.
- * @param {number} n The arity cap.
- * @returns {Function} Returns the new function.
- */
- function iterateeAry(func, n) {
- return overArg(func, function(func) {
- return typeof func == 'function' ? baseAry(func, n) : func;
- });
- }
-
- /**
- * Creates a function that wraps `func` to invoke its iteratee 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.
- *
- * @private
- * @param {Function} func The function to rearrange iteratee arguments for.
- * @param {number[]} indexes The arranged argument indexes.
- * @returns {Function} Returns the new function.
- */
- function iterateeRearg(func, indexes) {
- return overArg(func, function(func) {
- var n = indexes.length;
- return baseArity(rearg(baseAry(func, n), indexes), n);
- });
- }
-
- /**
- * Creates a function that invokes `func` with its first 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() {
- var length = arguments.length;
- if (!length) {
- return func();
- }
- var args = Array(length);
- while (length--) {
- args[length] = arguments[length];
- }
- var index = config.rearg ? 0 : (length - 1);
- args[index] = transform(args[index]);
- return func.apply(undefined, args);
- };
- }
-
- /**
- * Creates a function that wraps `func` and applys the conversions
- * rules by `name`.
- *
- * @private
- * @param {string} name The name of the function to wrap.
- * @param {Function} func The function to wrap.
- * @returns {Function} Returns the converted function.
- */
- function wrap(name, func) {
- var result,
- realName = mapping.aliasToReal[name] || name,
- wrapped = func,
- wrapper = wrappers[realName];
-
- if (wrapper) {
- wrapped = wrapper(func);
- }
- else if (config.immutable) {
- if (mapping.mutate.array[realName]) {
- wrapped = wrapImmutable(func, cloneArray);
- }
- else if (mapping.mutate.object[realName]) {
- wrapped = wrapImmutable(func, createCloner(func));
- }
- else if (mapping.mutate.set[realName]) {
- wrapped = wrapImmutable(func, cloneByPath);
- }
- }
- each(aryMethodKeys, function(aryKey) {
- each(mapping.aryMethod[aryKey], function(otherName) {
- if (realName == otherName) {
- var data = mapping.methodSpread[realName],
- afterRearg = data && data.afterRearg;
-
- result = afterRearg
- ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey)
- : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey);
-
- result = castCap(realName, result);
- result = castCurry(realName, result, aryKey);
- return false;
- }
- });
- return !result;
- });
-
- result || (result = wrapped);
- if (result == func) {
- result = forceCurry ? curry(result, 1) : function() {
- return func.apply(this, arguments);
- };
- }
- result.convert = createConverter(realName, func);
- if (mapping.placeholder[realName]) {
- setPlaceholder = true;
- result.placeholder = func.placeholder = placeholder;
- }
- return result;
- }
-
- /*--------------------------------------------------------------------------*/
-
- if (!isObj) {
- return wrap(name, func);
- }
- var _ = func;
-
- // Convert methods by ary cap.
- var pairs = [];
- each(aryMethodKeys, function(aryKey) {
- each(mapping.aryMethod[aryKey], function(key) {
- var func = _[mapping.remap[key] || key];
- if (func) {
- pairs.push([key, wrap(key, func)]);
- }
- });
- });
-
- // Convert remaining methods.
- each(keys(_), function(key) {
- var func = _[key];
- if (typeof func == 'function') {
- var length = pairs.length;
- while (length--) {
- if (pairs[length][0] == key) {
- return;
- }
- }
- func.convert = createConverter(key, func);
- pairs.push([key, func]);
- }
- });
-
- // Assign to `_` leaving `_.prototype` unchanged to allow chaining.
- each(pairs, function(pair) {
- _[pair[0]] = pair[1];
- });
-
- _.convert = convertLib;
- if (setPlaceholder) {
- _.placeholder = placeholder;
- }
- // Assign aliases.
- each(keys(_), function(key) {
- each(mapping.realToAlias[key] || [], function(alias) {
- _[alias] = _[key];
- });
- });
-
- return _;
-}
-
-module.exports = baseConvert;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/_convertBrowser.js b/node_modules/babel-core/node_modules/lodash/fp/_convertBrowser.js
deleted file mode 100644
index bde030d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/_convertBrowser.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var baseConvert = require('./_baseConvert');
-
-/**
- * Converts `lodash` to an immutable auto-curried iteratee-first data-last
- * version with conversion `options` applied.
- *
- * @param {Function} lodash The lodash function to convert.
- * @param {Object} [options] The options object. See `baseConvert` for more details.
- * @returns {Function} Returns the converted `lodash`.
- */
-function browserConvert(lodash, options) {
- return baseConvert(lodash, lodash, options);
-}
-
-if (typeof _ == 'function' && typeof _.runInContext == 'function') {
- _ = browserConvert(_.runInContext());
-}
-module.exports = browserConvert;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/_falseOptions.js b/node_modules/babel-core/node_modules/lodash/fp/_falseOptions.js
deleted file mode 100644
index 773235e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/_falseOptions.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = {
- 'cap': false,
- 'curry': false,
- 'fixed': false,
- 'immutable': false,
- 'rearg': false
-};
diff --git a/node_modules/babel-core/node_modules/lodash/fp/_mapping.js b/node_modules/babel-core/node_modules/lodash/fp/_mapping.js
deleted file mode 100644
index 8f5ddf2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/_mapping.js
+++ /dev/null
@@ -1,368 +0,0 @@
-/** Used to map aliases to their real names. */
-exports.aliasToReal = {
-
- // Lodash aliases.
- 'each': 'forEach',
- 'eachRight': 'forEachRight',
- 'entries': 'toPairs',
- 'entriesIn': 'toPairsIn',
- 'extend': 'assignIn',
- 'extendAll': 'assignInAll',
- 'extendAllWith': 'assignInAllWith',
- 'extendWith': 'assignInWith',
- 'first': 'head',
-
- // Methods that are curried variants of others.
- 'conforms': 'conformsTo',
- 'matches': 'isMatch',
- 'property': 'get',
-
- // Ramda aliases.
- '__': 'placeholder',
- 'F': 'stubFalse',
- 'T': 'stubTrue',
- 'all': 'every',
- 'allPass': 'overEvery',
- 'always': 'constant',
- 'any': 'some',
- 'anyPass': 'overSome',
- 'apply': 'spread',
- 'assoc': 'set',
- 'assocPath': 'set',
- 'complement': 'negate',
- 'compose': 'flowRight',
- 'contains': 'includes',
- 'dissoc': 'unset',
- 'dissocPath': 'unset',
- 'dropLast': 'dropRight',
- 'dropLastWhile': 'dropRightWhile',
- 'equals': 'isEqual',
- 'identical': 'eq',
- 'indexBy': 'keyBy',
- 'init': 'initial',
- 'invertObj': 'invert',
- 'juxt': 'over',
- 'omitAll': 'omit',
- 'nAry': 'ary',
- 'path': 'get',
- 'pathEq': 'matchesProperty',
- 'pathOr': 'getOr',
- 'paths': 'at',
- 'pickAll': 'pick',
- 'pipe': 'flow',
- 'pluck': 'map',
- 'prop': 'get',
- 'propEq': 'matchesProperty',
- 'propOr': 'getOr',
- 'props': 'at',
- 'symmetricDifference': 'xor',
- 'symmetricDifferenceBy': 'xorBy',
- 'symmetricDifferenceWith': 'xorWith',
- 'takeLast': 'takeRight',
- 'takeLastWhile': 'takeRightWhile',
- 'unapply': 'rest',
- 'unnest': 'flatten',
- 'useWith': 'overArgs',
- 'where': 'conformsTo',
- 'whereEq': 'isMatch',
- 'zipObj': 'zipObject'
-};
-
-/** Used to map ary to method names. */
-exports.aryMethod = {
- '1': [
- 'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',
- 'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',
- 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',
- 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',
- 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',
- 'uniqueId', 'words', 'zipAll'
- ],
- '2': [
- 'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',
- 'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith',
- 'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN',
- 'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference',
- 'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',
- 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',
- 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach',
- 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',
- 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',
- 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy',
- 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty',
- 'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit',
- 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',
- 'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll',
- 'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
- 'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
- 'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
- 'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight',
- 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars',
- 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith',
- 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject',
- 'zipObjectDeep'
- ],
- '3': [
- 'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
- 'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr',
- 'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith',
- 'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth',
- 'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd',
- 'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight',
- 'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy',
- 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy',
- 'xorWith', 'zipWith'
- ],
- '4': [
- 'fill', 'setWith', 'updateWith'
- ]
-};
-
-/** Used to map ary to rearg configs. */
-exports.aryRearg = {
- '2': [1, 0],
- '3': [2, 0, 1],
- '4': [3, 2, 0, 1]
-};
-
-/** Used to map method names to their iteratee ary. */
-exports.iterateeAry = {
- 'dropRightWhile': 1,
- 'dropWhile': 1,
- 'every': 1,
- 'filter': 1,
- 'find': 1,
- 'findFrom': 1,
- 'findIndex': 1,
- 'findIndexFrom': 1,
- 'findKey': 1,
- 'findLast': 1,
- 'findLastFrom': 1,
- 'findLastIndex': 1,
- 'findLastIndexFrom': 1,
- 'findLastKey': 1,
- 'flatMap': 1,
- 'flatMapDeep': 1,
- 'flatMapDepth': 1,
- 'forEach': 1,
- 'forEachRight': 1,
- 'forIn': 1,
- 'forInRight': 1,
- 'forOwn': 1,
- 'forOwnRight': 1,
- 'map': 1,
- 'mapKeys': 1,
- 'mapValues': 1,
- 'partition': 1,
- 'reduce': 2,
- 'reduceRight': 2,
- 'reject': 1,
- 'remove': 1,
- 'some': 1,
- 'takeRightWhile': 1,
- 'takeWhile': 1,
- 'times': 1,
- 'transform': 2
-};
-
-/** Used to map method names to iteratee rearg configs. */
-exports.iterateeRearg = {
- 'mapKeys': [1],
- 'reduceRight': [1, 0]
-};
-
-/** Used to map method names to rearg configs. */
-exports.methodRearg = {
- 'assignInAllWith': [1, 0],
- 'assignInWith': [1, 2, 0],
- 'assignAllWith': [1, 0],
- 'assignWith': [1, 2, 0],
- 'differenceBy': [1, 2, 0],
- 'differenceWith': [1, 2, 0],
- 'getOr': [2, 1, 0],
- 'intersectionBy': [1, 2, 0],
- 'intersectionWith': [1, 2, 0],
- 'isEqualWith': [1, 2, 0],
- 'isMatchWith': [2, 1, 0],
- 'mergeAllWith': [1, 0],
- 'mergeWith': [1, 2, 0],
- 'padChars': [2, 1, 0],
- 'padCharsEnd': [2, 1, 0],
- 'padCharsStart': [2, 1, 0],
- 'pullAllBy': [2, 1, 0],
- 'pullAllWith': [2, 1, 0],
- 'rangeStep': [1, 2, 0],
- 'rangeStepRight': [1, 2, 0],
- 'setWith': [3, 1, 2, 0],
- 'sortedIndexBy': [2, 1, 0],
- 'sortedLastIndexBy': [2, 1, 0],
- 'unionBy': [1, 2, 0],
- 'unionWith': [1, 2, 0],
- 'updateWith': [3, 1, 2, 0],
- 'xorBy': [1, 2, 0],
- 'xorWith': [1, 2, 0],
- 'zipWith': [1, 2, 0]
-};
-
-/** Used to map method names to spread configs. */
-exports.methodSpread = {
- 'assignAll': { 'start': 0 },
- 'assignAllWith': { 'start': 0 },
- 'assignInAll': { 'start': 0 },
- 'assignInAllWith': { 'start': 0 },
- 'defaultsAll': { 'start': 0 },
- 'defaultsDeepAll': { 'start': 0 },
- 'invokeArgs': { 'start': 2 },
- 'invokeArgsMap': { 'start': 2 },
- 'mergeAll': { 'start': 0 },
- 'mergeAllWith': { 'start': 0 },
- 'partial': { 'start': 1 },
- 'partialRight': { 'start': 1 },
- 'without': { 'start': 1 },
- 'zipAll': { 'start': 0 }
-};
-
-/** Used to identify methods which mutate arrays or objects. */
-exports.mutate = {
- 'array': {
- 'fill': true,
- 'pull': true,
- 'pullAll': true,
- 'pullAllBy': true,
- 'pullAllWith': true,
- 'pullAt': true,
- 'remove': true,
- 'reverse': true
- },
- 'object': {
- 'assign': true,
- 'assignAll': true,
- 'assignAllWith': true,
- 'assignIn': true,
- 'assignInAll': true,
- 'assignInAllWith': true,
- 'assignInWith': true,
- 'assignWith': true,
- 'defaults': true,
- 'defaultsAll': true,
- 'defaultsDeep': true,
- 'defaultsDeepAll': true,
- 'merge': true,
- 'mergeAll': true,
- 'mergeAllWith': true,
- 'mergeWith': true,
- },
- 'set': {
- 'set': true,
- 'setWith': true,
- 'unset': true,
- 'update': true,
- 'updateWith': true
- }
-};
-
-/** Used to track methods with placeholder support */
-exports.placeholder = {
- 'bind': true,
- 'bindKey': true,
- 'curry': true,
- 'curryRight': true,
- 'partial': true,
- 'partialRight': true
-};
-
-/** Used to map real names to their aliases. */
-exports.realToAlias = (function() {
- var hasOwnProperty = Object.prototype.hasOwnProperty,
- object = exports.aliasToReal,
- result = {};
-
- for (var key in object) {
- var value = object[key];
- if (hasOwnProperty.call(result, value)) {
- result[value].push(key);
- } else {
- result[value] = [key];
- }
- }
- return result;
-}());
-
-/** Used to map method names to other names. */
-exports.remap = {
- 'assignAll': 'assign',
- 'assignAllWith': 'assignWith',
- 'assignInAll': 'assignIn',
- 'assignInAllWith': 'assignInWith',
- 'curryN': 'curry',
- 'curryRightN': 'curryRight',
- 'defaultsAll': 'defaults',
- 'defaultsDeepAll': 'defaultsDeep',
- 'findFrom': 'find',
- 'findIndexFrom': 'findIndex',
- 'findLastFrom': 'findLast',
- 'findLastIndexFrom': 'findLastIndex',
- 'getOr': 'get',
- 'includesFrom': 'includes',
- 'indexOfFrom': 'indexOf',
- 'invokeArgs': 'invoke',
- 'invokeArgsMap': 'invokeMap',
- 'lastIndexOfFrom': 'lastIndexOf',
- 'mergeAll': 'merge',
- 'mergeAllWith': 'mergeWith',
- 'padChars': 'pad',
- 'padCharsEnd': 'padEnd',
- 'padCharsStart': 'padStart',
- 'propertyOf': 'get',
- 'rangeStep': 'range',
- 'rangeStepRight': 'rangeRight',
- 'restFrom': 'rest',
- 'spreadFrom': 'spread',
- 'trimChars': 'trim',
- 'trimCharsEnd': 'trimEnd',
- 'trimCharsStart': 'trimStart',
- 'zipAll': 'zip'
-};
-
-/** Used to track methods that skip fixing their arity. */
-exports.skipFixed = {
- 'castArray': true,
- 'flow': true,
- 'flowRight': true,
- 'iteratee': true,
- 'mixin': true,
- 'rearg': true,
- 'runInContext': true
-};
-
-/** Used to track methods that skip rearranging arguments. */
-exports.skipRearg = {
- 'add': true,
- 'assign': true,
- 'assignIn': true,
- 'bind': true,
- 'bindKey': true,
- 'concat': true,
- 'difference': true,
- 'divide': true,
- 'eq': true,
- 'gt': true,
- 'gte': true,
- 'isEqual': true,
- 'lt': true,
- 'lte': true,
- 'matchesProperty': true,
- 'merge': true,
- 'multiply': true,
- 'overArgs': true,
- 'partial': true,
- 'partialRight': true,
- 'propertyOf': true,
- 'random': true,
- 'range': true,
- 'rangeRight': true,
- 'subtract': true,
- 'zip': true,
- 'zipObject': true,
- 'zipObjectDeep': true
-};
diff --git a/node_modules/babel-core/node_modules/lodash/fp/_util.js b/node_modules/babel-core/node_modules/lodash/fp/_util.js
deleted file mode 100644
index 7084463..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/_util.js
+++ /dev/null
@@ -1,14 +0,0 @@
-module.exports = {
- 'ary': require('../ary'),
- 'assign': require('../_baseAssign'),
- 'clone': require('../clone'),
- 'curry': require('../curry'),
- 'forEach': require('../_arrayEach'),
- 'isArray': require('../isArray'),
- 'isFunction': require('../isFunction'),
- 'iteratee': require('../iteratee'),
- 'keys': require('../_baseKeys'),
- 'rearg': require('../rearg'),
- 'toInteger': require('../toInteger'),
- 'toPath': require('../toPath')
-};
diff --git a/node_modules/babel-core/node_modules/lodash/fp/add.js b/node_modules/babel-core/node_modules/lodash/fp/add.js
deleted file mode 100644
index 816eeec..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/add.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('add', require('../add'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/after.js b/node_modules/babel-core/node_modules/lodash/fp/after.js
deleted file mode 100644
index 21a0167..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/after.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('after', require('../after'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/all.js b/node_modules/babel-core/node_modules/lodash/fp/all.js
deleted file mode 100644
index d0839f7..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/all.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./every');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/allPass.js b/node_modules/babel-core/node_modules/lodash/fp/allPass.js
deleted file mode 100644
index 79b73ef..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/allPass.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./overEvery');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/always.js b/node_modules/babel-core/node_modules/lodash/fp/always.js
deleted file mode 100644
index 9887703..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/always.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./constant');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/any.js b/node_modules/babel-core/node_modules/lodash/fp/any.js
deleted file mode 100644
index 900ac25..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/any.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./some');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/anyPass.js b/node_modules/babel-core/node_modules/lodash/fp/anyPass.js
deleted file mode 100644
index 2774ab3..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/anyPass.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./overSome');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/apply.js b/node_modules/babel-core/node_modules/lodash/fp/apply.js
deleted file mode 100644
index 2b75712..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/apply.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./spread');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/array.js b/node_modules/babel-core/node_modules/lodash/fp/array.js
deleted file mode 100644
index fe939c2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/array.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var convert = require('./convert');
-module.exports = convert(require('../array'));
diff --git a/node_modules/babel-core/node_modules/lodash/fp/ary.js b/node_modules/babel-core/node_modules/lodash/fp/ary.js
deleted file mode 100644
index 8edf187..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/ary.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('ary', require('../ary'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/assign.js b/node_modules/babel-core/node_modules/lodash/fp/assign.js
deleted file mode 100644
index 23f47af..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/assign.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('assign', require('../assign'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/assignAll.js b/node_modules/babel-core/node_modules/lodash/fp/assignAll.js
deleted file mode 100644
index b1d36c7..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/assignAll.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('assignAll', require('../assign'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/assignAllWith.js b/node_modules/babel-core/node_modules/lodash/fp/assignAllWith.js
deleted file mode 100644
index 21e836e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/assignAllWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('assignAllWith', require('../assignWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/assignIn.js b/node_modules/babel-core/node_modules/lodash/fp/assignIn.js
deleted file mode 100644
index 6e7c65f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/assignIn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('assignIn', require('../assignIn'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/assignInAll.js b/node_modules/babel-core/node_modules/lodash/fp/assignInAll.js
deleted file mode 100644
index 7ba75db..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/assignInAll.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('assignInAll', require('../assignIn'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/assignInAllWith.js b/node_modules/babel-core/node_modules/lodash/fp/assignInAllWith.js
deleted file mode 100644
index e766903..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/assignInAllWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('assignInAllWith', require('../assignInWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/assignInWith.js b/node_modules/babel-core/node_modules/lodash/fp/assignInWith.js
deleted file mode 100644
index acb5923..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/assignInWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('assignInWith', require('../assignInWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/assignWith.js b/node_modules/babel-core/node_modules/lodash/fp/assignWith.js
deleted file mode 100644
index eb92521..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/assignWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('assignWith', require('../assignWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/assoc.js b/node_modules/babel-core/node_modules/lodash/fp/assoc.js
deleted file mode 100644
index 7648820..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/assoc.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./set');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/assocPath.js b/node_modules/babel-core/node_modules/lodash/fp/assocPath.js
deleted file mode 100644
index 7648820..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/assocPath.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./set');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/at.js b/node_modules/babel-core/node_modules/lodash/fp/at.js
deleted file mode 100644
index cc39d25..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/at.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('at', require('../at'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/attempt.js b/node_modules/babel-core/node_modules/lodash/fp/attempt.js
deleted file mode 100644
index 26ca42e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/attempt.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('attempt', require('../attempt'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/before.js b/node_modules/babel-core/node_modules/lodash/fp/before.js
deleted file mode 100644
index 7a2de65..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/before.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('before', require('../before'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/bind.js b/node_modules/babel-core/node_modules/lodash/fp/bind.js
deleted file mode 100644
index 5cbe4f3..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/bind.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('bind', require('../bind'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/bindAll.js b/node_modules/babel-core/node_modules/lodash/fp/bindAll.js
deleted file mode 100644
index 6b4a4a0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/bindAll.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('bindAll', require('../bindAll'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/bindKey.js b/node_modules/babel-core/node_modules/lodash/fp/bindKey.js
deleted file mode 100644
index 6a46c6b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/bindKey.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('bindKey', require('../bindKey'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/camelCase.js b/node_modules/babel-core/node_modules/lodash/fp/camelCase.js
deleted file mode 100644
index 87b77b4..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/camelCase.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('camelCase', require('../camelCase'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/capitalize.js b/node_modules/babel-core/node_modules/lodash/fp/capitalize.js
deleted file mode 100644
index cac74e1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/capitalize.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('capitalize', require('../capitalize'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/castArray.js b/node_modules/babel-core/node_modules/lodash/fp/castArray.js
deleted file mode 100644
index 8681c09..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/castArray.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('castArray', require('../castArray'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/ceil.js b/node_modules/babel-core/node_modules/lodash/fp/ceil.js
deleted file mode 100644
index f416b72..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/ceil.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('ceil', require('../ceil'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/chain.js b/node_modules/babel-core/node_modules/lodash/fp/chain.js
deleted file mode 100644
index 604fe39..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/chain.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('chain', require('../chain'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/chunk.js b/node_modules/babel-core/node_modules/lodash/fp/chunk.js
deleted file mode 100644
index 871ab08..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/chunk.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('chunk', require('../chunk'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/clamp.js b/node_modules/babel-core/node_modules/lodash/fp/clamp.js
deleted file mode 100644
index 3b06c01..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/clamp.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('clamp', require('../clamp'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/clone.js b/node_modules/babel-core/node_modules/lodash/fp/clone.js
deleted file mode 100644
index cadb59c..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/clone.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('clone', require('../clone'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/cloneDeep.js b/node_modules/babel-core/node_modules/lodash/fp/cloneDeep.js
deleted file mode 100644
index a6107aa..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/cloneDeep.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('cloneDeep', require('../cloneDeep'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/cloneDeepWith.js b/node_modules/babel-core/node_modules/lodash/fp/cloneDeepWith.js
deleted file mode 100644
index 6f01e44..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/cloneDeepWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('cloneDeepWith', require('../cloneDeepWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/cloneWith.js b/node_modules/babel-core/node_modules/lodash/fp/cloneWith.js
deleted file mode 100644
index aa88578..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/cloneWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('cloneWith', require('../cloneWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/collection.js b/node_modules/babel-core/node_modules/lodash/fp/collection.js
deleted file mode 100644
index fc8b328..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/collection.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var convert = require('./convert');
-module.exports = convert(require('../collection'));
diff --git a/node_modules/babel-core/node_modules/lodash/fp/commit.js b/node_modules/babel-core/node_modules/lodash/fp/commit.js
deleted file mode 100644
index 130a894..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/commit.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('commit', require('../commit'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/compact.js b/node_modules/babel-core/node_modules/lodash/fp/compact.js
deleted file mode 100644
index ce8f7a1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/compact.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('compact', require('../compact'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/complement.js b/node_modules/babel-core/node_modules/lodash/fp/complement.js
deleted file mode 100644
index 93eb462..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/complement.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./negate');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/compose.js b/node_modules/babel-core/node_modules/lodash/fp/compose.js
deleted file mode 100644
index 1954e94..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/compose.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./flowRight');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/concat.js b/node_modules/babel-core/node_modules/lodash/fp/concat.js
deleted file mode 100644
index e59346a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/concat.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('concat', require('../concat'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/cond.js b/node_modules/babel-core/node_modules/lodash/fp/cond.js
deleted file mode 100644
index 6a0120e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/cond.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('cond', require('../cond'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/conforms.js b/node_modules/babel-core/node_modules/lodash/fp/conforms.js
deleted file mode 100644
index 3247f64..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/conforms.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./conformsTo');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/conformsTo.js b/node_modules/babel-core/node_modules/lodash/fp/conformsTo.js
deleted file mode 100644
index aa7f41e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/conformsTo.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('conformsTo', require('../conformsTo'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/constant.js b/node_modules/babel-core/node_modules/lodash/fp/constant.js
deleted file mode 100644
index 9e406fc..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/constant.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('constant', require('../constant'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/contains.js b/node_modules/babel-core/node_modules/lodash/fp/contains.js
deleted file mode 100644
index 594722a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/contains.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./includes');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/convert.js b/node_modules/babel-core/node_modules/lodash/fp/convert.js
deleted file mode 100644
index 4795dc4..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/convert.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var baseConvert = require('./_baseConvert'),
- util = require('./_util');
-
-/**
- * Converts `func` of `name` to an immutable auto-curried iteratee-first data-last
- * version with conversion `options` applied. If `name` is an object its methods
- * will be converted.
- *
- * @param {string} name The name of the function to wrap.
- * @param {Function} [func] The function to wrap.
- * @param {Object} [options] The options object. See `baseConvert` for more details.
- * @returns {Function|Object} Returns the converted function or object.
- */
-function convert(name, func, options) {
- return baseConvert(util, name, func, options);
-}
-
-module.exports = convert;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/countBy.js b/node_modules/babel-core/node_modules/lodash/fp/countBy.js
deleted file mode 100644
index dfa4643..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/countBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('countBy', require('../countBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/create.js b/node_modules/babel-core/node_modules/lodash/fp/create.js
deleted file mode 100644
index 752025f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/create.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('create', require('../create'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/curry.js b/node_modules/babel-core/node_modules/lodash/fp/curry.js
deleted file mode 100644
index b0b4168..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/curry.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('curry', require('../curry'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/curryN.js b/node_modules/babel-core/node_modules/lodash/fp/curryN.js
deleted file mode 100644
index 2ae7d00..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/curryN.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('curryN', require('../curry'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/curryRight.js b/node_modules/babel-core/node_modules/lodash/fp/curryRight.js
deleted file mode 100644
index cb619eb..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/curryRight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('curryRight', require('../curryRight'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/curryRightN.js b/node_modules/babel-core/node_modules/lodash/fp/curryRightN.js
deleted file mode 100644
index 2495afc..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/curryRightN.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('curryRightN', require('../curryRight'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/date.js b/node_modules/babel-core/node_modules/lodash/fp/date.js
deleted file mode 100644
index 82cb952..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/date.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var convert = require('./convert');
-module.exports = convert(require('../date'));
diff --git a/node_modules/babel-core/node_modules/lodash/fp/debounce.js b/node_modules/babel-core/node_modules/lodash/fp/debounce.js
deleted file mode 100644
index 2612229..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/debounce.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('debounce', require('../debounce'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/deburr.js b/node_modules/babel-core/node_modules/lodash/fp/deburr.js
deleted file mode 100644
index 96463ab..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/deburr.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('deburr', require('../deburr'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/defaultTo.js b/node_modules/babel-core/node_modules/lodash/fp/defaultTo.js
deleted file mode 100644
index d6b52a4..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/defaultTo.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('defaultTo', require('../defaultTo'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/defaults.js b/node_modules/babel-core/node_modules/lodash/fp/defaults.js
deleted file mode 100644
index e1a8e6e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/defaults.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('defaults', require('../defaults'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/defaultsAll.js b/node_modules/babel-core/node_modules/lodash/fp/defaultsAll.js
deleted file mode 100644
index 238fcc3..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/defaultsAll.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('defaultsAll', require('../defaults'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/defaultsDeep.js b/node_modules/babel-core/node_modules/lodash/fp/defaultsDeep.js
deleted file mode 100644
index 1f172ff..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/defaultsDeep.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('defaultsDeep', require('../defaultsDeep'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/defaultsDeepAll.js b/node_modules/babel-core/node_modules/lodash/fp/defaultsDeepAll.js
deleted file mode 100644
index 6835f2f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/defaultsDeepAll.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('defaultsDeepAll', require('../defaultsDeep'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/defer.js b/node_modules/babel-core/node_modules/lodash/fp/defer.js
deleted file mode 100644
index ec7990f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/defer.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('defer', require('../defer'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/delay.js b/node_modules/babel-core/node_modules/lodash/fp/delay.js
deleted file mode 100644
index 556dbd5..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/delay.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('delay', require('../delay'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/difference.js b/node_modules/babel-core/node_modules/lodash/fp/difference.js
deleted file mode 100644
index 2d03765..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/difference.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('difference', require('../difference'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/differenceBy.js b/node_modules/babel-core/node_modules/lodash/fp/differenceBy.js
deleted file mode 100644
index 2f91491..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/differenceBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('differenceBy', require('../differenceBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/differenceWith.js b/node_modules/babel-core/node_modules/lodash/fp/differenceWith.js
deleted file mode 100644
index bcf5ad2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/differenceWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('differenceWith', require('../differenceWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/dissoc.js b/node_modules/babel-core/node_modules/lodash/fp/dissoc.js
deleted file mode 100644
index 7ec7be1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/dissoc.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./unset');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/dissocPath.js b/node_modules/babel-core/node_modules/lodash/fp/dissocPath.js
deleted file mode 100644
index 7ec7be1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/dissocPath.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./unset');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/divide.js b/node_modules/babel-core/node_modules/lodash/fp/divide.js
deleted file mode 100644
index 82048c5..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/divide.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('divide', require('../divide'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/drop.js b/node_modules/babel-core/node_modules/lodash/fp/drop.js
deleted file mode 100644
index 2fa9b4f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/drop.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('drop', require('../drop'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/dropLast.js b/node_modules/babel-core/node_modules/lodash/fp/dropLast.js
deleted file mode 100644
index 174e525..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/dropLast.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./dropRight');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/dropLastWhile.js b/node_modules/babel-core/node_modules/lodash/fp/dropLastWhile.js
deleted file mode 100644
index be2a9d2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/dropLastWhile.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./dropRightWhile');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/dropRight.js b/node_modules/babel-core/node_modules/lodash/fp/dropRight.js
deleted file mode 100644
index e98881f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/dropRight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('dropRight', require('../dropRight'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/dropRightWhile.js b/node_modules/babel-core/node_modules/lodash/fp/dropRightWhile.js
deleted file mode 100644
index cacaa70..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/dropRightWhile.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('dropRightWhile', require('../dropRightWhile'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/dropWhile.js b/node_modules/babel-core/node_modules/lodash/fp/dropWhile.js
deleted file mode 100644
index 285f864..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/dropWhile.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('dropWhile', require('../dropWhile'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/each.js b/node_modules/babel-core/node_modules/lodash/fp/each.js
deleted file mode 100644
index 8800f42..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/each.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./forEach');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/eachRight.js b/node_modules/babel-core/node_modules/lodash/fp/eachRight.js
deleted file mode 100644
index 3252b2a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/eachRight.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./forEachRight');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/endsWith.js b/node_modules/babel-core/node_modules/lodash/fp/endsWith.js
deleted file mode 100644
index 17dc2a4..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/endsWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('endsWith', require('../endsWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/entries.js b/node_modules/babel-core/node_modules/lodash/fp/entries.js
deleted file mode 100644
index 7a88df2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/entries.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./toPairs');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/entriesIn.js b/node_modules/babel-core/node_modules/lodash/fp/entriesIn.js
deleted file mode 100644
index f6c6331..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/entriesIn.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./toPairsIn');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/eq.js b/node_modules/babel-core/node_modules/lodash/fp/eq.js
deleted file mode 100644
index 9a3d21b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/eq.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('eq', require('../eq'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/equals.js b/node_modules/babel-core/node_modules/lodash/fp/equals.js
deleted file mode 100644
index e6a5ce0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/equals.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./isEqual');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/escape.js b/node_modules/babel-core/node_modules/lodash/fp/escape.js
deleted file mode 100644
index 52c1fbb..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/escape.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('escape', require('../escape'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/escapeRegExp.js b/node_modules/babel-core/node_modules/lodash/fp/escapeRegExp.js
deleted file mode 100644
index 369b2ef..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/escapeRegExp.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('escapeRegExp', require('../escapeRegExp'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/every.js b/node_modules/babel-core/node_modules/lodash/fp/every.js
deleted file mode 100644
index 95c2776..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/every.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('every', require('../every'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/extend.js b/node_modules/babel-core/node_modules/lodash/fp/extend.js
deleted file mode 100644
index e00166c..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/extend.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./assignIn');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/extendAll.js b/node_modules/babel-core/node_modules/lodash/fp/extendAll.js
deleted file mode 100644
index cc55b64..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/extendAll.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./assignInAll');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/extendAllWith.js b/node_modules/babel-core/node_modules/lodash/fp/extendAllWith.js
deleted file mode 100644
index 6679d20..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/extendAllWith.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./assignInAllWith');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/extendWith.js b/node_modules/babel-core/node_modules/lodash/fp/extendWith.js
deleted file mode 100644
index dbdcb3b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/extendWith.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./assignInWith');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/fill.js b/node_modules/babel-core/node_modules/lodash/fp/fill.js
deleted file mode 100644
index b2d47e8..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/fill.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('fill', require('../fill'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/filter.js b/node_modules/babel-core/node_modules/lodash/fp/filter.js
deleted file mode 100644
index 796d501..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/filter.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('filter', require('../filter'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/find.js b/node_modules/babel-core/node_modules/lodash/fp/find.js
deleted file mode 100644
index f805d33..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/find.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('find', require('../find'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/findFrom.js b/node_modules/babel-core/node_modules/lodash/fp/findFrom.js
deleted file mode 100644
index da8275e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/findFrom.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('findFrom', require('../find'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/findIndex.js b/node_modules/babel-core/node_modules/lodash/fp/findIndex.js
deleted file mode 100644
index 8c15fd1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/findIndex.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('findIndex', require('../findIndex'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/findIndexFrom.js b/node_modules/babel-core/node_modules/lodash/fp/findIndexFrom.js
deleted file mode 100644
index 32e98cb..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/findIndexFrom.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('findIndexFrom', require('../findIndex'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/findKey.js b/node_modules/babel-core/node_modules/lodash/fp/findKey.js
deleted file mode 100644
index 475bcfa..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/findKey.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('findKey', require('../findKey'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/findLast.js b/node_modules/babel-core/node_modules/lodash/fp/findLast.js
deleted file mode 100644
index 093fe94..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/findLast.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('findLast', require('../findLast'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/findLastFrom.js b/node_modules/babel-core/node_modules/lodash/fp/findLastFrom.js
deleted file mode 100644
index 76c38fb..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/findLastFrom.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('findLastFrom', require('../findLast'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/findLastIndex.js b/node_modules/babel-core/node_modules/lodash/fp/findLastIndex.js
deleted file mode 100644
index 36986df..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/findLastIndex.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('findLastIndex', require('../findLastIndex'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/findLastIndexFrom.js b/node_modules/babel-core/node_modules/lodash/fp/findLastIndexFrom.js
deleted file mode 100644
index 34c8176..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/findLastIndexFrom.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('findLastIndexFrom', require('../findLastIndex'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/findLastKey.js b/node_modules/babel-core/node_modules/lodash/fp/findLastKey.js
deleted file mode 100644
index 5f81b60..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/findLastKey.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('findLastKey', require('../findLastKey'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/first.js b/node_modules/babel-core/node_modules/lodash/fp/first.js
deleted file mode 100644
index 53f4ad1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/first.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./head');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/flatMap.js b/node_modules/babel-core/node_modules/lodash/fp/flatMap.js
deleted file mode 100644
index d01dc4d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/flatMap.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('flatMap', require('../flatMap'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/flatMapDeep.js b/node_modules/babel-core/node_modules/lodash/fp/flatMapDeep.js
deleted file mode 100644
index 569c42e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/flatMapDeep.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('flatMapDeep', require('../flatMapDeep'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/flatMapDepth.js b/node_modules/babel-core/node_modules/lodash/fp/flatMapDepth.js
deleted file mode 100644
index 6eb68fd..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/flatMapDepth.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('flatMapDepth', require('../flatMapDepth'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/flatten.js b/node_modules/babel-core/node_modules/lodash/fp/flatten.js
deleted file mode 100644
index 30425d8..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/flatten.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('flatten', require('../flatten'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/flattenDeep.js b/node_modules/babel-core/node_modules/lodash/fp/flattenDeep.js
deleted file mode 100644
index aed5db2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/flattenDeep.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('flattenDeep', require('../flattenDeep'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/flattenDepth.js b/node_modules/babel-core/node_modules/lodash/fp/flattenDepth.js
deleted file mode 100644
index ad65e37..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/flattenDepth.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('flattenDepth', require('../flattenDepth'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/flip.js b/node_modules/babel-core/node_modules/lodash/fp/flip.js
deleted file mode 100644
index 0547e7b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/flip.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('flip', require('../flip'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/floor.js b/node_modules/babel-core/node_modules/lodash/fp/floor.js
deleted file mode 100644
index a6cf335..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/floor.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('floor', require('../floor'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/flow.js b/node_modules/babel-core/node_modules/lodash/fp/flow.js
deleted file mode 100644
index cd83677..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/flow.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('flow', require('../flow'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/flowRight.js b/node_modules/babel-core/node_modules/lodash/fp/flowRight.js
deleted file mode 100644
index 972a5b9..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/flowRight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('flowRight', require('../flowRight'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/forEach.js b/node_modules/babel-core/node_modules/lodash/fp/forEach.js
deleted file mode 100644
index 2f49452..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/forEach.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('forEach', require('../forEach'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/forEachRight.js b/node_modules/babel-core/node_modules/lodash/fp/forEachRight.js
deleted file mode 100644
index 3ff9733..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/forEachRight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('forEachRight', require('../forEachRight'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/forIn.js b/node_modules/babel-core/node_modules/lodash/fp/forIn.js
deleted file mode 100644
index 9341749..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/forIn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('forIn', require('../forIn'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/forInRight.js b/node_modules/babel-core/node_modules/lodash/fp/forInRight.js
deleted file mode 100644
index cecf8bb..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/forInRight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('forInRight', require('../forInRight'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/forOwn.js b/node_modules/babel-core/node_modules/lodash/fp/forOwn.js
deleted file mode 100644
index 246449e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/forOwn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('forOwn', require('../forOwn'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/forOwnRight.js b/node_modules/babel-core/node_modules/lodash/fp/forOwnRight.js
deleted file mode 100644
index c5e826e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/forOwnRight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('forOwnRight', require('../forOwnRight'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/fromPairs.js b/node_modules/babel-core/node_modules/lodash/fp/fromPairs.js
deleted file mode 100644
index f8cc596..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/fromPairs.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('fromPairs', require('../fromPairs'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/function.js b/node_modules/babel-core/node_modules/lodash/fp/function.js
deleted file mode 100644
index dfe69b1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/function.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var convert = require('./convert');
-module.exports = convert(require('../function'));
diff --git a/node_modules/babel-core/node_modules/lodash/fp/functions.js b/node_modules/babel-core/node_modules/lodash/fp/functions.js
deleted file mode 100644
index 09d1bb1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/functions.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('functions', require('../functions'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/functionsIn.js b/node_modules/babel-core/node_modules/lodash/fp/functionsIn.js
deleted file mode 100644
index 2cfeb83..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/functionsIn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('functionsIn', require('../functionsIn'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/get.js b/node_modules/babel-core/node_modules/lodash/fp/get.js
deleted file mode 100644
index 6d3a328..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/get.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('get', require('../get'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/getOr.js b/node_modules/babel-core/node_modules/lodash/fp/getOr.js
deleted file mode 100644
index 7dbf771..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/getOr.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('getOr', require('../get'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/groupBy.js b/node_modules/babel-core/node_modules/lodash/fp/groupBy.js
deleted file mode 100644
index fc0bc78..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/groupBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('groupBy', require('../groupBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/gt.js b/node_modules/babel-core/node_modules/lodash/fp/gt.js
deleted file mode 100644
index 9e57c80..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/gt.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('gt', require('../gt'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/gte.js b/node_modules/babel-core/node_modules/lodash/fp/gte.js
deleted file mode 100644
index 4584786..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/gte.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('gte', require('../gte'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/has.js b/node_modules/babel-core/node_modules/lodash/fp/has.js
deleted file mode 100644
index b901298..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/has.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('has', require('../has'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/hasIn.js b/node_modules/babel-core/node_modules/lodash/fp/hasIn.js
deleted file mode 100644
index b3c3d1a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/hasIn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('hasIn', require('../hasIn'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/head.js b/node_modules/babel-core/node_modules/lodash/fp/head.js
deleted file mode 100644
index 2694f0a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/head.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('head', require('../head'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/identical.js b/node_modules/babel-core/node_modules/lodash/fp/identical.js
deleted file mode 100644
index 85563f4..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/identical.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./eq');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/identity.js b/node_modules/babel-core/node_modules/lodash/fp/identity.js
deleted file mode 100644
index 096415a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/identity.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('identity', require('../identity'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/inRange.js b/node_modules/babel-core/node_modules/lodash/fp/inRange.js
deleted file mode 100644
index 202d940..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/inRange.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('inRange', require('../inRange'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/includes.js b/node_modules/babel-core/node_modules/lodash/fp/includes.js
deleted file mode 100644
index 1146780..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/includes.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('includes', require('../includes'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/includesFrom.js b/node_modules/babel-core/node_modules/lodash/fp/includesFrom.js
deleted file mode 100644
index 683afdb..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/includesFrom.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('includesFrom', require('../includes'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/indexBy.js b/node_modules/babel-core/node_modules/lodash/fp/indexBy.js
deleted file mode 100644
index 7e64bc0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/indexBy.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./keyBy');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/indexOf.js b/node_modules/babel-core/node_modules/lodash/fp/indexOf.js
deleted file mode 100644
index 524658e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/indexOf.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('indexOf', require('../indexOf'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/indexOfFrom.js b/node_modules/babel-core/node_modules/lodash/fp/indexOfFrom.js
deleted file mode 100644
index d99c822..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/indexOfFrom.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('indexOfFrom', require('../indexOf'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/init.js b/node_modules/babel-core/node_modules/lodash/fp/init.js
deleted file mode 100644
index 2f88d8b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/init.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./initial');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/initial.js b/node_modules/babel-core/node_modules/lodash/fp/initial.js
deleted file mode 100644
index b732ba0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/initial.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('initial', require('../initial'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/intersection.js b/node_modules/babel-core/node_modules/lodash/fp/intersection.js
deleted file mode 100644
index 52936d5..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/intersection.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('intersection', require('../intersection'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/intersectionBy.js b/node_modules/babel-core/node_modules/lodash/fp/intersectionBy.js
deleted file mode 100644
index 72629f2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/intersectionBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('intersectionBy', require('../intersectionBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/intersectionWith.js b/node_modules/babel-core/node_modules/lodash/fp/intersectionWith.js
deleted file mode 100644
index e064f40..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/intersectionWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('intersectionWith', require('../intersectionWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/invert.js b/node_modules/babel-core/node_modules/lodash/fp/invert.js
deleted file mode 100644
index 2d5d1f0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/invert.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('invert', require('../invert'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/invertBy.js b/node_modules/babel-core/node_modules/lodash/fp/invertBy.js
deleted file mode 100644
index 63ca97e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/invertBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('invertBy', require('../invertBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/invertObj.js b/node_modules/babel-core/node_modules/lodash/fp/invertObj.js
deleted file mode 100644
index f1d842e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/invertObj.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./invert');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/invoke.js b/node_modules/babel-core/node_modules/lodash/fp/invoke.js
deleted file mode 100644
index fcf17f0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/invoke.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('invoke', require('../invoke'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/invokeArgs.js b/node_modules/babel-core/node_modules/lodash/fp/invokeArgs.js
deleted file mode 100644
index d3f2953..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/invokeArgs.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('invokeArgs', require('../invoke'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/invokeArgsMap.js b/node_modules/babel-core/node_modules/lodash/fp/invokeArgsMap.js
deleted file mode 100644
index eaa9f84..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/invokeArgsMap.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('invokeArgsMap', require('../invokeMap'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/invokeMap.js b/node_modules/babel-core/node_modules/lodash/fp/invokeMap.js
deleted file mode 100644
index 6515fd7..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/invokeMap.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('invokeMap', require('../invokeMap'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isArguments.js b/node_modules/babel-core/node_modules/lodash/fp/isArguments.js
deleted file mode 100644
index 1d93c9e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isArguments.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isArguments', require('../isArguments'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isArray.js b/node_modules/babel-core/node_modules/lodash/fp/isArray.js
deleted file mode 100644
index ba7ade8..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isArray.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isArray', require('../isArray'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isArrayBuffer.js b/node_modules/babel-core/node_modules/lodash/fp/isArrayBuffer.js
deleted file mode 100644
index 5088513..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isArrayBuffer.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isArrayBuffer', require('../isArrayBuffer'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isArrayLike.js b/node_modules/babel-core/node_modules/lodash/fp/isArrayLike.js
deleted file mode 100644
index 8f1856b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isArrayLike.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isArrayLike', require('../isArrayLike'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isArrayLikeObject.js b/node_modules/babel-core/node_modules/lodash/fp/isArrayLikeObject.js
deleted file mode 100644
index 2108498..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isArrayLikeObject.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isArrayLikeObject', require('../isArrayLikeObject'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isBoolean.js b/node_modules/babel-core/node_modules/lodash/fp/isBoolean.js
deleted file mode 100644
index 9339f75..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isBoolean.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isBoolean', require('../isBoolean'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isBuffer.js b/node_modules/babel-core/node_modules/lodash/fp/isBuffer.js
deleted file mode 100644
index e60b123..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isBuffer.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isBuffer', require('../isBuffer'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isDate.js b/node_modules/babel-core/node_modules/lodash/fp/isDate.js
deleted file mode 100644
index dc41d08..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isDate.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isDate', require('../isDate'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isElement.js b/node_modules/babel-core/node_modules/lodash/fp/isElement.js
deleted file mode 100644
index 18ee039..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isElement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isElement', require('../isElement'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isEmpty.js b/node_modules/babel-core/node_modules/lodash/fp/isEmpty.js
deleted file mode 100644
index 0f4ae84..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isEmpty.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isEmpty', require('../isEmpty'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isEqual.js b/node_modules/babel-core/node_modules/lodash/fp/isEqual.js
deleted file mode 100644
index 4138386..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isEqual.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isEqual', require('../isEqual'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isEqualWith.js b/node_modules/babel-core/node_modules/lodash/fp/isEqualWith.js
deleted file mode 100644
index 029ff5c..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isEqualWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isEqualWith', require('../isEqualWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isError.js b/node_modules/babel-core/node_modules/lodash/fp/isError.js
deleted file mode 100644
index 3dfd81c..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isError.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isError', require('../isError'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isFinite.js b/node_modules/babel-core/node_modules/lodash/fp/isFinite.js
deleted file mode 100644
index 0b647b8..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isFinite.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isFinite', require('../isFinite'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isFunction.js b/node_modules/babel-core/node_modules/lodash/fp/isFunction.js
deleted file mode 100644
index ff8e5c4..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isFunction.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isFunction', require('../isFunction'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isInteger.js b/node_modules/babel-core/node_modules/lodash/fp/isInteger.js
deleted file mode 100644
index 67af4ff..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isInteger.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isInteger', require('../isInteger'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isLength.js b/node_modules/babel-core/node_modules/lodash/fp/isLength.js
deleted file mode 100644
index fc101c5..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isLength.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isLength', require('../isLength'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isMap.js b/node_modules/babel-core/node_modules/lodash/fp/isMap.js
deleted file mode 100644
index a209aa6..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isMap.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isMap', require('../isMap'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isMatch.js b/node_modules/babel-core/node_modules/lodash/fp/isMatch.js
deleted file mode 100644
index 6264ca1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isMatch.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isMatch', require('../isMatch'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isMatchWith.js b/node_modules/babel-core/node_modules/lodash/fp/isMatchWith.js
deleted file mode 100644
index d95f319..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isMatchWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isMatchWith', require('../isMatchWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isNaN.js b/node_modules/babel-core/node_modules/lodash/fp/isNaN.js
deleted file mode 100644
index 66a978f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isNaN.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isNaN', require('../isNaN'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isNative.js b/node_modules/babel-core/node_modules/lodash/fp/isNative.js
deleted file mode 100644
index 3d775ba..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isNative.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isNative', require('../isNative'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isNil.js b/node_modules/babel-core/node_modules/lodash/fp/isNil.js
deleted file mode 100644
index 5952c02..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isNil.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isNil', require('../isNil'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isNull.js b/node_modules/babel-core/node_modules/lodash/fp/isNull.js
deleted file mode 100644
index f201a35..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isNull.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isNull', require('../isNull'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isNumber.js b/node_modules/babel-core/node_modules/lodash/fp/isNumber.js
deleted file mode 100644
index a2b5fa0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isNumber.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isNumber', require('../isNumber'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isObject.js b/node_modules/babel-core/node_modules/lodash/fp/isObject.js
deleted file mode 100644
index 231ace0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isObject.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isObject', require('../isObject'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isObjectLike.js b/node_modules/babel-core/node_modules/lodash/fp/isObjectLike.js
deleted file mode 100644
index f16082e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isObjectLike.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isObjectLike', require('../isObjectLike'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isPlainObject.js b/node_modules/babel-core/node_modules/lodash/fp/isPlainObject.js
deleted file mode 100644
index b5bea90..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isPlainObject.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isPlainObject', require('../isPlainObject'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isRegExp.js b/node_modules/babel-core/node_modules/lodash/fp/isRegExp.js
deleted file mode 100644
index 12a1a3d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isRegExp.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isRegExp', require('../isRegExp'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isSafeInteger.js b/node_modules/babel-core/node_modules/lodash/fp/isSafeInteger.js
deleted file mode 100644
index 7230f55..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isSafeInteger.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isSafeInteger', require('../isSafeInteger'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isSet.js b/node_modules/babel-core/node_modules/lodash/fp/isSet.js
deleted file mode 100644
index 35c01f6..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isSet.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isSet', require('../isSet'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isString.js b/node_modules/babel-core/node_modules/lodash/fp/isString.js
deleted file mode 100644
index 1fd0679..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isString.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isString', require('../isString'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isSymbol.js b/node_modules/babel-core/node_modules/lodash/fp/isSymbol.js
deleted file mode 100644
index 3867695..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isSymbol.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isSymbol', require('../isSymbol'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isTypedArray.js b/node_modules/babel-core/node_modules/lodash/fp/isTypedArray.js
deleted file mode 100644
index 8567953..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isTypedArray.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isTypedArray', require('../isTypedArray'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isUndefined.js b/node_modules/babel-core/node_modules/lodash/fp/isUndefined.js
deleted file mode 100644
index ddbca31..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isUndefined.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isUndefined', require('../isUndefined'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isWeakMap.js b/node_modules/babel-core/node_modules/lodash/fp/isWeakMap.js
deleted file mode 100644
index ef60c61..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isWeakMap.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isWeakMap', require('../isWeakMap'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/isWeakSet.js b/node_modules/babel-core/node_modules/lodash/fp/isWeakSet.js
deleted file mode 100644
index c99bfaa..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/isWeakSet.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('isWeakSet', require('../isWeakSet'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/iteratee.js b/node_modules/babel-core/node_modules/lodash/fp/iteratee.js
deleted file mode 100644
index 9f0f717..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/iteratee.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('iteratee', require('../iteratee'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/join.js b/node_modules/babel-core/node_modules/lodash/fp/join.js
deleted file mode 100644
index a220e00..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/join.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('join', require('../join'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/juxt.js b/node_modules/babel-core/node_modules/lodash/fp/juxt.js
deleted file mode 100644
index f71e04e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/juxt.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./over');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/kebabCase.js b/node_modules/babel-core/node_modules/lodash/fp/kebabCase.js
deleted file mode 100644
index 60737f1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/kebabCase.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('kebabCase', require('../kebabCase'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/keyBy.js b/node_modules/babel-core/node_modules/lodash/fp/keyBy.js
deleted file mode 100644
index 9a6a85d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/keyBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('keyBy', require('../keyBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/keys.js b/node_modules/babel-core/node_modules/lodash/fp/keys.js
deleted file mode 100644
index e12bb07..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/keys.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('keys', require('../keys'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/keysIn.js b/node_modules/babel-core/node_modules/lodash/fp/keysIn.js
deleted file mode 100644
index f3eb36a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/keysIn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('keysIn', require('../keysIn'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/lang.js b/node_modules/babel-core/node_modules/lodash/fp/lang.js
deleted file mode 100644
index 08cc9c1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/lang.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var convert = require('./convert');
-module.exports = convert(require('../lang'));
diff --git a/node_modules/babel-core/node_modules/lodash/fp/last.js b/node_modules/babel-core/node_modules/lodash/fp/last.js
deleted file mode 100644
index 0f71699..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/last.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('last', require('../last'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/lastIndexOf.js b/node_modules/babel-core/node_modules/lodash/fp/lastIndexOf.js
deleted file mode 100644
index ddf39c3..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/lastIndexOf.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('lastIndexOf', require('../lastIndexOf'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/lastIndexOfFrom.js b/node_modules/babel-core/node_modules/lodash/fp/lastIndexOfFrom.js
deleted file mode 100644
index 1ff6a0b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/lastIndexOfFrom.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('lastIndexOfFrom', require('../lastIndexOf'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/lowerCase.js b/node_modules/babel-core/node_modules/lodash/fp/lowerCase.js
deleted file mode 100644
index ea64bc1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/lowerCase.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('lowerCase', require('../lowerCase'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/lowerFirst.js b/node_modules/babel-core/node_modules/lodash/fp/lowerFirst.js
deleted file mode 100644
index 539720a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/lowerFirst.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('lowerFirst', require('../lowerFirst'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/lt.js b/node_modules/babel-core/node_modules/lodash/fp/lt.js
deleted file mode 100644
index a31d21e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/lt.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('lt', require('../lt'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/lte.js b/node_modules/babel-core/node_modules/lodash/fp/lte.js
deleted file mode 100644
index d795d10..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/lte.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('lte', require('../lte'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/map.js b/node_modules/babel-core/node_modules/lodash/fp/map.js
deleted file mode 100644
index cf98794..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/map.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('map', require('../map'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/mapKeys.js b/node_modules/babel-core/node_modules/lodash/fp/mapKeys.js
deleted file mode 100644
index 1684587..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/mapKeys.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('mapKeys', require('../mapKeys'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/mapValues.js b/node_modules/babel-core/node_modules/lodash/fp/mapValues.js
deleted file mode 100644
index 4004972..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/mapValues.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('mapValues', require('../mapValues'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/matches.js b/node_modules/babel-core/node_modules/lodash/fp/matches.js
deleted file mode 100644
index 29d1e1e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/matches.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./isMatch');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/matchesProperty.js b/node_modules/babel-core/node_modules/lodash/fp/matchesProperty.js
deleted file mode 100644
index 4575bd2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/matchesProperty.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('matchesProperty', require('../matchesProperty'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/math.js b/node_modules/babel-core/node_modules/lodash/fp/math.js
deleted file mode 100644
index e8f50f7..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/math.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var convert = require('./convert');
-module.exports = convert(require('../math'));
diff --git a/node_modules/babel-core/node_modules/lodash/fp/max.js b/node_modules/babel-core/node_modules/lodash/fp/max.js
deleted file mode 100644
index a66acac..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/max.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('max', require('../max'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/maxBy.js b/node_modules/babel-core/node_modules/lodash/fp/maxBy.js
deleted file mode 100644
index d083fd6..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/maxBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('maxBy', require('../maxBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/mean.js b/node_modules/babel-core/node_modules/lodash/fp/mean.js
deleted file mode 100644
index 3117246..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/mean.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('mean', require('../mean'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/meanBy.js b/node_modules/babel-core/node_modules/lodash/fp/meanBy.js
deleted file mode 100644
index 556f25e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/meanBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('meanBy', require('../meanBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/memoize.js b/node_modules/babel-core/node_modules/lodash/fp/memoize.js
deleted file mode 100644
index 638eec6..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/memoize.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('memoize', require('../memoize'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/merge.js b/node_modules/babel-core/node_modules/lodash/fp/merge.js
deleted file mode 100644
index ac66add..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/merge.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('merge', require('../merge'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/mergeAll.js b/node_modules/babel-core/node_modules/lodash/fp/mergeAll.js
deleted file mode 100644
index a3674d6..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/mergeAll.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('mergeAll', require('../merge'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/mergeAllWith.js b/node_modules/babel-core/node_modules/lodash/fp/mergeAllWith.js
deleted file mode 100644
index 4bd4206..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/mergeAllWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('mergeAllWith', require('../mergeWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/mergeWith.js b/node_modules/babel-core/node_modules/lodash/fp/mergeWith.js
deleted file mode 100644
index 00d44d5..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/mergeWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('mergeWith', require('../mergeWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/method.js b/node_modules/babel-core/node_modules/lodash/fp/method.js
deleted file mode 100644
index f4060c6..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/method.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('method', require('../method'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/methodOf.js b/node_modules/babel-core/node_modules/lodash/fp/methodOf.js
deleted file mode 100644
index 6139905..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/methodOf.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('methodOf', require('../methodOf'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/min.js b/node_modules/babel-core/node_modules/lodash/fp/min.js
deleted file mode 100644
index d12c6b4..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/min.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('min', require('../min'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/minBy.js b/node_modules/babel-core/node_modules/lodash/fp/minBy.js
deleted file mode 100644
index fdb9e24..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/minBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('minBy', require('../minBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/mixin.js b/node_modules/babel-core/node_modules/lodash/fp/mixin.js
deleted file mode 100644
index 332e6fb..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/mixin.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('mixin', require('../mixin'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/multiply.js b/node_modules/babel-core/node_modules/lodash/fp/multiply.js
deleted file mode 100644
index 4dcf0b0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/multiply.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('multiply', require('../multiply'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/nAry.js b/node_modules/babel-core/node_modules/lodash/fp/nAry.js
deleted file mode 100644
index f262a76..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/nAry.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./ary');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/negate.js b/node_modules/babel-core/node_modules/lodash/fp/negate.js
deleted file mode 100644
index 8b6dc7c..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/negate.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('negate', require('../negate'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/next.js b/node_modules/babel-core/node_modules/lodash/fp/next.js
deleted file mode 100644
index 140155e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/next.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('next', require('../next'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/noop.js b/node_modules/babel-core/node_modules/lodash/fp/noop.js
deleted file mode 100644
index b9e32cc..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/noop.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('noop', require('../noop'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/now.js b/node_modules/babel-core/node_modules/lodash/fp/now.js
deleted file mode 100644
index 6de2068..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/now.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('now', require('../now'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/nth.js b/node_modules/babel-core/node_modules/lodash/fp/nth.js
deleted file mode 100644
index da4fda7..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/nth.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('nth', require('../nth'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/nthArg.js b/node_modules/babel-core/node_modules/lodash/fp/nthArg.js
deleted file mode 100644
index fce3165..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/nthArg.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('nthArg', require('../nthArg'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/number.js b/node_modules/babel-core/node_modules/lodash/fp/number.js
deleted file mode 100644
index 5c10b88..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/number.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var convert = require('./convert');
-module.exports = convert(require('../number'));
diff --git a/node_modules/babel-core/node_modules/lodash/fp/object.js b/node_modules/babel-core/node_modules/lodash/fp/object.js
deleted file mode 100644
index ae39a13..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/object.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var convert = require('./convert');
-module.exports = convert(require('../object'));
diff --git a/node_modules/babel-core/node_modules/lodash/fp/omit.js b/node_modules/babel-core/node_modules/lodash/fp/omit.js
deleted file mode 100644
index fd68529..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/omit.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('omit', require('../omit'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/omitAll.js b/node_modules/babel-core/node_modules/lodash/fp/omitAll.js
deleted file mode 100644
index 144cf4b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/omitAll.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./omit');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/omitBy.js b/node_modules/babel-core/node_modules/lodash/fp/omitBy.js
deleted file mode 100644
index 90df738..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/omitBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('omitBy', require('../omitBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/once.js b/node_modules/babel-core/node_modules/lodash/fp/once.js
deleted file mode 100644
index f8f0a5c..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/once.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('once', require('../once'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/orderBy.js b/node_modules/babel-core/node_modules/lodash/fp/orderBy.js
deleted file mode 100644
index 848e210..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/orderBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('orderBy', require('../orderBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/over.js b/node_modules/babel-core/node_modules/lodash/fp/over.js
deleted file mode 100644
index 01eba7b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/over.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('over', require('../over'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/overArgs.js b/node_modules/babel-core/node_modules/lodash/fp/overArgs.js
deleted file mode 100644
index 738556f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/overArgs.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('overArgs', require('../overArgs'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/overEvery.js b/node_modules/babel-core/node_modules/lodash/fp/overEvery.js
deleted file mode 100644
index 9f5a032..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/overEvery.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('overEvery', require('../overEvery'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/overSome.js b/node_modules/babel-core/node_modules/lodash/fp/overSome.js
deleted file mode 100644
index 15939d5..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/overSome.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('overSome', require('../overSome'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pad.js b/node_modules/babel-core/node_modules/lodash/fp/pad.js
deleted file mode 100644
index f1dea4a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pad.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('pad', require('../pad'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/padChars.js b/node_modules/babel-core/node_modules/lodash/fp/padChars.js
deleted file mode 100644
index d6e0804..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/padChars.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('padChars', require('../pad'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/padCharsEnd.js b/node_modules/babel-core/node_modules/lodash/fp/padCharsEnd.js
deleted file mode 100644
index d4ab79a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/padCharsEnd.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('padCharsEnd', require('../padEnd'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/padCharsStart.js b/node_modules/babel-core/node_modules/lodash/fp/padCharsStart.js
deleted file mode 100644
index a08a300..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/padCharsStart.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('padCharsStart', require('../padStart'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/padEnd.js b/node_modules/babel-core/node_modules/lodash/fp/padEnd.js
deleted file mode 100644
index a8522ec..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/padEnd.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('padEnd', require('../padEnd'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/padStart.js b/node_modules/babel-core/node_modules/lodash/fp/padStart.js
deleted file mode 100644
index f4ca79d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/padStart.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('padStart', require('../padStart'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/parseInt.js b/node_modules/babel-core/node_modules/lodash/fp/parseInt.js
deleted file mode 100644
index 27314cc..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/parseInt.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('parseInt', require('../parseInt'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/partial.js b/node_modules/babel-core/node_modules/lodash/fp/partial.js
deleted file mode 100644
index 5d46015..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/partial.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('partial', require('../partial'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/partialRight.js b/node_modules/babel-core/node_modules/lodash/fp/partialRight.js
deleted file mode 100644
index 7f05fed..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/partialRight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('partialRight', require('../partialRight'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/partition.js b/node_modules/babel-core/node_modules/lodash/fp/partition.js
deleted file mode 100644
index 2ebcacc..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/partition.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('partition', require('../partition'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/path.js b/node_modules/babel-core/node_modules/lodash/fp/path.js
deleted file mode 100644
index b29cfb2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/path.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./get');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pathEq.js b/node_modules/babel-core/node_modules/lodash/fp/pathEq.js
deleted file mode 100644
index 36c027a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pathEq.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./matchesProperty');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pathOr.js b/node_modules/babel-core/node_modules/lodash/fp/pathOr.js
deleted file mode 100644
index 4ab5820..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pathOr.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./getOr');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/paths.js b/node_modules/babel-core/node_modules/lodash/fp/paths.js
deleted file mode 100644
index 1eb7950..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/paths.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./at');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pick.js b/node_modules/babel-core/node_modules/lodash/fp/pick.js
deleted file mode 100644
index 197393d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pick.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('pick', require('../pick'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pickAll.js b/node_modules/babel-core/node_modules/lodash/fp/pickAll.js
deleted file mode 100644
index a8ecd46..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pickAll.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./pick');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pickBy.js b/node_modules/babel-core/node_modules/lodash/fp/pickBy.js
deleted file mode 100644
index d832d16..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pickBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('pickBy', require('../pickBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pipe.js b/node_modules/babel-core/node_modules/lodash/fp/pipe.js
deleted file mode 100644
index b2e1e2c..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pipe.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./flow');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/placeholder.js b/node_modules/babel-core/node_modules/lodash/fp/placeholder.js
deleted file mode 100644
index 1ce1739..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/placeholder.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- * The default argument placeholder value for methods.
- *
- * @type {Object}
- */
-module.exports = {};
diff --git a/node_modules/babel-core/node_modules/lodash/fp/plant.js b/node_modules/babel-core/node_modules/lodash/fp/plant.js
deleted file mode 100644
index eca8f32..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/plant.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('plant', require('../plant'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pluck.js b/node_modules/babel-core/node_modules/lodash/fp/pluck.js
deleted file mode 100644
index 0d1e1ab..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pluck.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./map');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/prop.js b/node_modules/babel-core/node_modules/lodash/fp/prop.js
deleted file mode 100644
index b29cfb2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/prop.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./get');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/propEq.js b/node_modules/babel-core/node_modules/lodash/fp/propEq.js
deleted file mode 100644
index 36c027a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/propEq.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./matchesProperty');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/propOr.js b/node_modules/babel-core/node_modules/lodash/fp/propOr.js
deleted file mode 100644
index 4ab5820..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/propOr.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./getOr');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/property.js b/node_modules/babel-core/node_modules/lodash/fp/property.js
deleted file mode 100644
index b29cfb2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/property.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./get');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/propertyOf.js b/node_modules/babel-core/node_modules/lodash/fp/propertyOf.js
deleted file mode 100644
index f6273ee..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/propertyOf.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('propertyOf', require('../get'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/props.js b/node_modules/babel-core/node_modules/lodash/fp/props.js
deleted file mode 100644
index 1eb7950..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/props.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./at');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pull.js b/node_modules/babel-core/node_modules/lodash/fp/pull.js
deleted file mode 100644
index 8d7084f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pull.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('pull', require('../pull'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pullAll.js b/node_modules/babel-core/node_modules/lodash/fp/pullAll.js
deleted file mode 100644
index 98d5c9a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pullAll.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('pullAll', require('../pullAll'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pullAllBy.js b/node_modules/babel-core/node_modules/lodash/fp/pullAllBy.js
deleted file mode 100644
index 876bc3b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pullAllBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('pullAllBy', require('../pullAllBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pullAllWith.js b/node_modules/babel-core/node_modules/lodash/fp/pullAllWith.js
deleted file mode 100644
index f71ba4d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pullAllWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('pullAllWith', require('../pullAllWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/pullAt.js b/node_modules/babel-core/node_modules/lodash/fp/pullAt.js
deleted file mode 100644
index e8b3bb6..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/pullAt.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('pullAt', require('../pullAt'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/random.js b/node_modules/babel-core/node_modules/lodash/fp/random.js
deleted file mode 100644
index 99d852e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/random.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('random', require('../random'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/range.js b/node_modules/babel-core/node_modules/lodash/fp/range.js
deleted file mode 100644
index a6bb591..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/range.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('range', require('../range'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/rangeRight.js b/node_modules/babel-core/node_modules/lodash/fp/rangeRight.js
deleted file mode 100644
index fdb712f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/rangeRight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('rangeRight', require('../rangeRight'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/rangeStep.js b/node_modules/babel-core/node_modules/lodash/fp/rangeStep.js
deleted file mode 100644
index d72dfc2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/rangeStep.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('rangeStep', require('../range'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/rangeStepRight.js b/node_modules/babel-core/node_modules/lodash/fp/rangeStepRight.js
deleted file mode 100644
index 8b2a67b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/rangeStepRight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('rangeStepRight', require('../rangeRight'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/rearg.js b/node_modules/babel-core/node_modules/lodash/fp/rearg.js
deleted file mode 100644
index 678e02a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/rearg.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('rearg', require('../rearg'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/reduce.js b/node_modules/babel-core/node_modules/lodash/fp/reduce.js
deleted file mode 100644
index 4cef0a0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/reduce.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('reduce', require('../reduce'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/reduceRight.js b/node_modules/babel-core/node_modules/lodash/fp/reduceRight.js
deleted file mode 100644
index caf5bb5..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/reduceRight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('reduceRight', require('../reduceRight'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/reject.js b/node_modules/babel-core/node_modules/lodash/fp/reject.js
deleted file mode 100644
index c163273..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/reject.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('reject', require('../reject'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/remove.js b/node_modules/babel-core/node_modules/lodash/fp/remove.js
deleted file mode 100644
index e9d1327..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/remove.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('remove', require('../remove'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/repeat.js b/node_modules/babel-core/node_modules/lodash/fp/repeat.js
deleted file mode 100644
index 08470f2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/repeat.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('repeat', require('../repeat'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/replace.js b/node_modules/babel-core/node_modules/lodash/fp/replace.js
deleted file mode 100644
index 2227db6..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/replace.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('replace', require('../replace'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/rest.js b/node_modules/babel-core/node_modules/lodash/fp/rest.js
deleted file mode 100644
index c1f3d64..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/rest.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('rest', require('../rest'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/restFrom.js b/node_modules/babel-core/node_modules/lodash/fp/restFrom.js
deleted file mode 100644
index 714e42b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/restFrom.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('restFrom', require('../rest'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/result.js b/node_modules/babel-core/node_modules/lodash/fp/result.js
deleted file mode 100644
index f86ce07..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/result.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('result', require('../result'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/reverse.js b/node_modules/babel-core/node_modules/lodash/fp/reverse.js
deleted file mode 100644
index 07c9f5e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/reverse.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('reverse', require('../reverse'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/round.js b/node_modules/babel-core/node_modules/lodash/fp/round.js
deleted file mode 100644
index 4c0e5c8..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/round.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('round', require('../round'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sample.js b/node_modules/babel-core/node_modules/lodash/fp/sample.js
deleted file mode 100644
index 6bea125..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sample.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sample', require('../sample'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sampleSize.js b/node_modules/babel-core/node_modules/lodash/fp/sampleSize.js
deleted file mode 100644
index 359ed6f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sampleSize.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sampleSize', require('../sampleSize'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/seq.js b/node_modules/babel-core/node_modules/lodash/fp/seq.js
deleted file mode 100644
index d8f42b0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/seq.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var convert = require('./convert');
-module.exports = convert(require('../seq'));
diff --git a/node_modules/babel-core/node_modules/lodash/fp/set.js b/node_modules/babel-core/node_modules/lodash/fp/set.js
deleted file mode 100644
index 0b56a56..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/set.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('set', require('../set'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/setWith.js b/node_modules/babel-core/node_modules/lodash/fp/setWith.js
deleted file mode 100644
index 0b58495..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/setWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('setWith', require('../setWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/shuffle.js b/node_modules/babel-core/node_modules/lodash/fp/shuffle.js
deleted file mode 100644
index aa3a1ca..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/shuffle.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('shuffle', require('../shuffle'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/size.js b/node_modules/babel-core/node_modules/lodash/fp/size.js
deleted file mode 100644
index 7490136..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/size.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('size', require('../size'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/slice.js b/node_modules/babel-core/node_modules/lodash/fp/slice.js
deleted file mode 100644
index 15945d3..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/slice.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('slice', require('../slice'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/snakeCase.js b/node_modules/babel-core/node_modules/lodash/fp/snakeCase.js
deleted file mode 100644
index a0ff780..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/snakeCase.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('snakeCase', require('../snakeCase'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/some.js b/node_modules/babel-core/node_modules/lodash/fp/some.js
deleted file mode 100644
index a4fa2d0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/some.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('some', require('../some'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sortBy.js b/node_modules/babel-core/node_modules/lodash/fp/sortBy.js
deleted file mode 100644
index e0790ad..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sortBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sortBy', require('../sortBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sortedIndex.js b/node_modules/babel-core/node_modules/lodash/fp/sortedIndex.js
deleted file mode 100644
index 364a054..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sortedIndex.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sortedIndex', require('../sortedIndex'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sortedIndexBy.js b/node_modules/babel-core/node_modules/lodash/fp/sortedIndexBy.js
deleted file mode 100644
index 9593dbd..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sortedIndexBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sortedIndexBy', require('../sortedIndexBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sortedIndexOf.js b/node_modules/babel-core/node_modules/lodash/fp/sortedIndexOf.js
deleted file mode 100644
index c9084ca..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sortedIndexOf.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sortedIndexOf', require('../sortedIndexOf'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sortedLastIndex.js b/node_modules/babel-core/node_modules/lodash/fp/sortedLastIndex.js
deleted file mode 100644
index 47fe241..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sortedLastIndex.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sortedLastIndex', require('../sortedLastIndex'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sortedLastIndexBy.js b/node_modules/babel-core/node_modules/lodash/fp/sortedLastIndexBy.js
deleted file mode 100644
index 0f9a347..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sortedLastIndexBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sortedLastIndexBy', require('../sortedLastIndexBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sortedLastIndexOf.js b/node_modules/babel-core/node_modules/lodash/fp/sortedLastIndexOf.js
deleted file mode 100644
index 0d4d932..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sortedLastIndexOf.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sortedLastIndexOf', require('../sortedLastIndexOf'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sortedUniq.js b/node_modules/babel-core/node_modules/lodash/fp/sortedUniq.js
deleted file mode 100644
index 882d283..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sortedUniq.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sortedUniq', require('../sortedUniq'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sortedUniqBy.js b/node_modules/babel-core/node_modules/lodash/fp/sortedUniqBy.js
deleted file mode 100644
index 033db91..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sortedUniqBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sortedUniqBy', require('../sortedUniqBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/split.js b/node_modules/babel-core/node_modules/lodash/fp/split.js
deleted file mode 100644
index 14de1a7..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/split.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('split', require('../split'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/spread.js b/node_modules/babel-core/node_modules/lodash/fp/spread.js
deleted file mode 100644
index 2d11b70..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/spread.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('spread', require('../spread'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/spreadFrom.js b/node_modules/babel-core/node_modules/lodash/fp/spreadFrom.js
deleted file mode 100644
index 0b630df..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/spreadFrom.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('spreadFrom', require('../spread'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/startCase.js b/node_modules/babel-core/node_modules/lodash/fp/startCase.js
deleted file mode 100644
index ada98c9..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/startCase.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('startCase', require('../startCase'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/startsWith.js b/node_modules/babel-core/node_modules/lodash/fp/startsWith.js
deleted file mode 100644
index 985e2f2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/startsWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('startsWith', require('../startsWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/string.js b/node_modules/babel-core/node_modules/lodash/fp/string.js
deleted file mode 100644
index 773b037..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/string.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var convert = require('./convert');
-module.exports = convert(require('../string'));
diff --git a/node_modules/babel-core/node_modules/lodash/fp/stubArray.js b/node_modules/babel-core/node_modules/lodash/fp/stubArray.js
deleted file mode 100644
index cd604cb..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/stubArray.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('stubArray', require('../stubArray'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/stubFalse.js b/node_modules/babel-core/node_modules/lodash/fp/stubFalse.js
deleted file mode 100644
index 3296664..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/stubFalse.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('stubFalse', require('../stubFalse'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/stubObject.js b/node_modules/babel-core/node_modules/lodash/fp/stubObject.js
deleted file mode 100644
index c6c8ec4..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/stubObject.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('stubObject', require('../stubObject'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/stubString.js b/node_modules/babel-core/node_modules/lodash/fp/stubString.js
deleted file mode 100644
index 701051e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/stubString.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('stubString', require('../stubString'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/stubTrue.js b/node_modules/babel-core/node_modules/lodash/fp/stubTrue.js
deleted file mode 100644
index 9249082..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/stubTrue.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('stubTrue', require('../stubTrue'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/subtract.js b/node_modules/babel-core/node_modules/lodash/fp/subtract.js
deleted file mode 100644
index d32b16d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/subtract.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('subtract', require('../subtract'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sum.js b/node_modules/babel-core/node_modules/lodash/fp/sum.js
deleted file mode 100644
index 5cce12b..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sum.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sum', require('../sum'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/sumBy.js b/node_modules/babel-core/node_modules/lodash/fp/sumBy.js
deleted file mode 100644
index c882656..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/sumBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('sumBy', require('../sumBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/symmetricDifference.js b/node_modules/babel-core/node_modules/lodash/fp/symmetricDifference.js
deleted file mode 100644
index 78c16ad..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/symmetricDifference.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./xor');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/symmetricDifferenceBy.js b/node_modules/babel-core/node_modules/lodash/fp/symmetricDifferenceBy.js
deleted file mode 100644
index 298fc7f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/symmetricDifferenceBy.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./xorBy');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/symmetricDifferenceWith.js b/node_modules/babel-core/node_modules/lodash/fp/symmetricDifferenceWith.js
deleted file mode 100644
index 70bc6fa..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/symmetricDifferenceWith.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./xorWith');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/tail.js b/node_modules/babel-core/node_modules/lodash/fp/tail.js
deleted file mode 100644
index f122f0a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/tail.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('tail', require('../tail'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/take.js b/node_modules/babel-core/node_modules/lodash/fp/take.js
deleted file mode 100644
index 9af98a7..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/take.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('take', require('../take'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/takeLast.js b/node_modules/babel-core/node_modules/lodash/fp/takeLast.js
deleted file mode 100644
index e98c84a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/takeLast.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./takeRight');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/takeLastWhile.js b/node_modules/babel-core/node_modules/lodash/fp/takeLastWhile.js
deleted file mode 100644
index 5367968..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/takeLastWhile.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./takeRightWhile');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/takeRight.js b/node_modules/babel-core/node_modules/lodash/fp/takeRight.js
deleted file mode 100644
index b82950a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/takeRight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('takeRight', require('../takeRight'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/takeRightWhile.js b/node_modules/babel-core/node_modules/lodash/fp/takeRightWhile.js
deleted file mode 100644
index 8ffb0a2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/takeRightWhile.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('takeRightWhile', require('../takeRightWhile'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/takeWhile.js b/node_modules/babel-core/node_modules/lodash/fp/takeWhile.js
deleted file mode 100644
index 2813664..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/takeWhile.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('takeWhile', require('../takeWhile'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/tap.js b/node_modules/babel-core/node_modules/lodash/fp/tap.js
deleted file mode 100644
index d33ad6e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/tap.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('tap', require('../tap'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/template.js b/node_modules/babel-core/node_modules/lodash/fp/template.js
deleted file mode 100644
index 74857e1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/template.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('template', require('../template'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/templateSettings.js b/node_modules/babel-core/node_modules/lodash/fp/templateSettings.js
deleted file mode 100644
index 7bcc0a8..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/templateSettings.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('templateSettings', require('../templateSettings'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/throttle.js b/node_modules/babel-core/node_modules/lodash/fp/throttle.js
deleted file mode 100644
index 77fff14..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/throttle.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('throttle', require('../throttle'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/thru.js b/node_modules/babel-core/node_modules/lodash/fp/thru.js
deleted file mode 100644
index d42b3b1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/thru.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('thru', require('../thru'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/times.js b/node_modules/babel-core/node_modules/lodash/fp/times.js
deleted file mode 100644
index 0dab06d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/times.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('times', require('../times'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toArray.js b/node_modules/babel-core/node_modules/lodash/fp/toArray.js
deleted file mode 100644
index f0c360a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toArray.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toArray', require('../toArray'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toFinite.js b/node_modules/babel-core/node_modules/lodash/fp/toFinite.js
deleted file mode 100644
index 3a47687..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toFinite.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toFinite', require('../toFinite'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toInteger.js b/node_modules/babel-core/node_modules/lodash/fp/toInteger.js
deleted file mode 100644
index e0af6a7..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toInteger.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toInteger', require('../toInteger'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toIterator.js b/node_modules/babel-core/node_modules/lodash/fp/toIterator.js
deleted file mode 100644
index 65e6baa..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toIterator.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toIterator', require('../toIterator'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toJSON.js b/node_modules/babel-core/node_modules/lodash/fp/toJSON.js
deleted file mode 100644
index 2d718d0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toJSON.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toJSON', require('../toJSON'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toLength.js b/node_modules/babel-core/node_modules/lodash/fp/toLength.js
deleted file mode 100644
index b97cdd9..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toLength.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toLength', require('../toLength'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toLower.js b/node_modules/babel-core/node_modules/lodash/fp/toLower.js
deleted file mode 100644
index 616ef36..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toLower.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toLower', require('../toLower'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toNumber.js b/node_modules/babel-core/node_modules/lodash/fp/toNumber.js
deleted file mode 100644
index d0c6f4d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toNumber.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toNumber', require('../toNumber'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toPairs.js b/node_modules/babel-core/node_modules/lodash/fp/toPairs.js
deleted file mode 100644
index af78378..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toPairs.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toPairs', require('../toPairs'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toPairsIn.js b/node_modules/babel-core/node_modules/lodash/fp/toPairsIn.js
deleted file mode 100644
index 66504ab..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toPairsIn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toPairsIn', require('../toPairsIn'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toPath.js b/node_modules/babel-core/node_modules/lodash/fp/toPath.js
deleted file mode 100644
index b4d5e50..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toPath.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toPath', require('../toPath'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toPlainObject.js b/node_modules/babel-core/node_modules/lodash/fp/toPlainObject.js
deleted file mode 100644
index 278bb86..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toPlainObject.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toPlainObject', require('../toPlainObject'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toSafeInteger.js b/node_modules/babel-core/node_modules/lodash/fp/toSafeInteger.js
deleted file mode 100644
index 367a26f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toSafeInteger.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toSafeInteger', require('../toSafeInteger'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toString.js b/node_modules/babel-core/node_modules/lodash/fp/toString.js
deleted file mode 100644
index cec4f8e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toString.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toString', require('../toString'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/toUpper.js b/node_modules/babel-core/node_modules/lodash/fp/toUpper.js
deleted file mode 100644
index 54f9a56..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/toUpper.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('toUpper', require('../toUpper'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/transform.js b/node_modules/babel-core/node_modules/lodash/fp/transform.js
deleted file mode 100644
index 759d088..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/transform.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('transform', require('../transform'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/trim.js b/node_modules/babel-core/node_modules/lodash/fp/trim.js
deleted file mode 100644
index e6319a7..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/trim.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('trim', require('../trim'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/trimChars.js b/node_modules/babel-core/node_modules/lodash/fp/trimChars.js
deleted file mode 100644
index c9294de..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/trimChars.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('trimChars', require('../trim'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/trimCharsEnd.js b/node_modules/babel-core/node_modules/lodash/fp/trimCharsEnd.js
deleted file mode 100644
index 284bc2f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/trimCharsEnd.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('trimCharsEnd', require('../trimEnd'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/trimCharsStart.js b/node_modules/babel-core/node_modules/lodash/fp/trimCharsStart.js
deleted file mode 100644
index ff0ee65..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/trimCharsStart.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('trimCharsStart', require('../trimStart'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/trimEnd.js b/node_modules/babel-core/node_modules/lodash/fp/trimEnd.js
deleted file mode 100644
index 7190880..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/trimEnd.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('trimEnd', require('../trimEnd'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/trimStart.js b/node_modules/babel-core/node_modules/lodash/fp/trimStart.js
deleted file mode 100644
index fda902c..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/trimStart.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('trimStart', require('../trimStart'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/truncate.js b/node_modules/babel-core/node_modules/lodash/fp/truncate.js
deleted file mode 100644
index d265c1d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/truncate.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('truncate', require('../truncate'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/unapply.js b/node_modules/babel-core/node_modules/lodash/fp/unapply.js
deleted file mode 100644
index c5dfe77..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/unapply.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./rest');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/unary.js b/node_modules/babel-core/node_modules/lodash/fp/unary.js
deleted file mode 100644
index 286c945..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/unary.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('unary', require('../unary'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/unescape.js b/node_modules/babel-core/node_modules/lodash/fp/unescape.js
deleted file mode 100644
index fddcb46..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/unescape.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('unescape', require('../unescape'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/union.js b/node_modules/babel-core/node_modules/lodash/fp/union.js
deleted file mode 100644
index ef8228d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/union.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('union', require('../union'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/unionBy.js b/node_modules/babel-core/node_modules/lodash/fp/unionBy.js
deleted file mode 100644
index 603687a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/unionBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('unionBy', require('../unionBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/unionWith.js b/node_modules/babel-core/node_modules/lodash/fp/unionWith.js
deleted file mode 100644
index 65bb3a7..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/unionWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('unionWith', require('../unionWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/uniq.js b/node_modules/babel-core/node_modules/lodash/fp/uniq.js
deleted file mode 100644
index bc18524..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/uniq.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('uniq', require('../uniq'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/uniqBy.js b/node_modules/babel-core/node_modules/lodash/fp/uniqBy.js
deleted file mode 100644
index 634c6a8..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/uniqBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('uniqBy', require('../uniqBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/uniqWith.js b/node_modules/babel-core/node_modules/lodash/fp/uniqWith.js
deleted file mode 100644
index 0ec601a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/uniqWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('uniqWith', require('../uniqWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/uniqueId.js b/node_modules/babel-core/node_modules/lodash/fp/uniqueId.js
deleted file mode 100644
index aa8fc2f..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/uniqueId.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('uniqueId', require('../uniqueId'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/unnest.js b/node_modules/babel-core/node_modules/lodash/fp/unnest.js
deleted file mode 100644
index 5d34060..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/unnest.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./flatten');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/unset.js b/node_modules/babel-core/node_modules/lodash/fp/unset.js
deleted file mode 100644
index ea203a0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/unset.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('unset', require('../unset'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/unzip.js b/node_modules/babel-core/node_modules/lodash/fp/unzip.js
deleted file mode 100644
index cc364b3..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/unzip.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('unzip', require('../unzip'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/unzipWith.js b/node_modules/babel-core/node_modules/lodash/fp/unzipWith.js
deleted file mode 100644
index 182eaa1..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/unzipWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('unzipWith', require('../unzipWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/update.js b/node_modules/babel-core/node_modules/lodash/fp/update.js
deleted file mode 100644
index b8ce2cc..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/update.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('update', require('../update'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/updateWith.js b/node_modules/babel-core/node_modules/lodash/fp/updateWith.js
deleted file mode 100644
index d5e8282..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/updateWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('updateWith', require('../updateWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/upperCase.js b/node_modules/babel-core/node_modules/lodash/fp/upperCase.js
deleted file mode 100644
index c886f20..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/upperCase.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('upperCase', require('../upperCase'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/upperFirst.js b/node_modules/babel-core/node_modules/lodash/fp/upperFirst.js
deleted file mode 100644
index d8c04df..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/upperFirst.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('upperFirst', require('../upperFirst'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/useWith.js b/node_modules/babel-core/node_modules/lodash/fp/useWith.js
deleted file mode 100644
index d8b3df5..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/useWith.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./overArgs');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/util.js b/node_modules/babel-core/node_modules/lodash/fp/util.js
deleted file mode 100644
index 18c00ba..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/util.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var convert = require('./convert');
-module.exports = convert(require('../util'));
diff --git a/node_modules/babel-core/node_modules/lodash/fp/value.js b/node_modules/babel-core/node_modules/lodash/fp/value.js
deleted file mode 100644
index 555eec7..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/value.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('value', require('../value'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/valueOf.js b/node_modules/babel-core/node_modules/lodash/fp/valueOf.js
deleted file mode 100644
index f968807..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/valueOf.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('valueOf', require('../valueOf'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/values.js b/node_modules/babel-core/node_modules/lodash/fp/values.js
deleted file mode 100644
index 2dfc561..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/values.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('values', require('../values'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/valuesIn.js b/node_modules/babel-core/node_modules/lodash/fp/valuesIn.js
deleted file mode 100644
index a1b2bb8..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/valuesIn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('valuesIn', require('../valuesIn'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/where.js b/node_modules/babel-core/node_modules/lodash/fp/where.js
deleted file mode 100644
index 3247f64..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/where.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./conformsTo');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/whereEq.js b/node_modules/babel-core/node_modules/lodash/fp/whereEq.js
deleted file mode 100644
index 29d1e1e..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/whereEq.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./isMatch');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/without.js b/node_modules/babel-core/node_modules/lodash/fp/without.js
deleted file mode 100644
index bad9e12..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/without.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('without', require('../without'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/words.js b/node_modules/babel-core/node_modules/lodash/fp/words.js
deleted file mode 100644
index 4a90141..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/words.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('words', require('../words'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/wrap.js b/node_modules/babel-core/node_modules/lodash/fp/wrap.js
deleted file mode 100644
index e93bd8a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/wrap.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('wrap', require('../wrap'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/wrapperAt.js b/node_modules/babel-core/node_modules/lodash/fp/wrapperAt.js
deleted file mode 100644
index 8f0a310..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/wrapperAt.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('wrapperAt', require('../wrapperAt'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/wrapperChain.js b/node_modules/babel-core/node_modules/lodash/fp/wrapperChain.js
deleted file mode 100644
index 2a48ea2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/wrapperChain.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('wrapperChain', require('../wrapperChain'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/wrapperLodash.js b/node_modules/babel-core/node_modules/lodash/fp/wrapperLodash.js
deleted file mode 100644
index a7162d0..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/wrapperLodash.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('wrapperLodash', require('../wrapperLodash'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/wrapperReverse.js b/node_modules/babel-core/node_modules/lodash/fp/wrapperReverse.js
deleted file mode 100644
index e1481aa..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/wrapperReverse.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('wrapperReverse', require('../wrapperReverse'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/wrapperValue.js b/node_modules/babel-core/node_modules/lodash/fp/wrapperValue.js
deleted file mode 100644
index 8eb9112..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/wrapperValue.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('wrapperValue', require('../wrapperValue'), require('./_falseOptions'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/xor.js b/node_modules/babel-core/node_modules/lodash/fp/xor.js
deleted file mode 100644
index 29e2819..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/xor.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('xor', require('../xor'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/xorBy.js b/node_modules/babel-core/node_modules/lodash/fp/xorBy.js
deleted file mode 100644
index b355686..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/xorBy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('xorBy', require('../xorBy'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/xorWith.js b/node_modules/babel-core/node_modules/lodash/fp/xorWith.js
deleted file mode 100644
index 8e05739..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/xorWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('xorWith', require('../xorWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/zip.js b/node_modules/babel-core/node_modules/lodash/fp/zip.js
deleted file mode 100644
index 69e147a..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/zip.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('zip', require('../zip'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/zipAll.js b/node_modules/babel-core/node_modules/lodash/fp/zipAll.js
deleted file mode 100644
index efa8ccb..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/zipAll.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('zipAll', require('../zip'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/zipObj.js b/node_modules/babel-core/node_modules/lodash/fp/zipObj.js
deleted file mode 100644
index f4a3453..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/zipObj.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./zipObject');
diff --git a/node_modules/babel-core/node_modules/lodash/fp/zipObject.js b/node_modules/babel-core/node_modules/lodash/fp/zipObject.js
deleted file mode 100644
index 462dbb6..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/zipObject.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('zipObject', require('../zipObject'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/zipObjectDeep.js b/node_modules/babel-core/node_modules/lodash/fp/zipObjectDeep.js
deleted file mode 100644
index 53a5d33..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/zipObjectDeep.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('zipObjectDeep', require('../zipObjectDeep'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fp/zipWith.js b/node_modules/babel-core/node_modules/lodash/fp/zipWith.js
deleted file mode 100644
index c5cf9e2..0000000
--- a/node_modules/babel-core/node_modules/lodash/fp/zipWith.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var convert = require('./convert'),
- func = convert('zipWith', require('../zipWith'));
-
-func.placeholder = require('./placeholder');
-module.exports = func;
diff --git a/node_modules/babel-core/node_modules/lodash/fromPairs.js b/node_modules/babel-core/node_modules/lodash/fromPairs.js
deleted file mode 100644
index ee7940d..0000000
--- a/node_modules/babel-core/node_modules/lodash/fromPairs.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = fromPairs;
diff --git a/node_modules/babel-core/node_modules/lodash/function.js b/node_modules/babel-core/node_modules/lodash/function.js
deleted file mode 100644
index b0fc6d9..0000000
--- a/node_modules/babel-core/node_modules/lodash/function.js
+++ /dev/null
@@ -1,25 +0,0 @@
-module.exports = {
- 'after': require('./after'),
- 'ary': require('./ary'),
- 'before': require('./before'),
- 'bind': require('./bind'),
- 'bindKey': require('./bindKey'),
- 'curry': require('./curry'),
- 'curryRight': require('./curryRight'),
- 'debounce': require('./debounce'),
- 'defer': require('./defer'),
- 'delay': require('./delay'),
- 'flip': require('./flip'),
- 'memoize': require('./memoize'),
- 'negate': require('./negate'),
- 'once': require('./once'),
- 'overArgs': require('./overArgs'),
- 'partial': require('./partial'),
- 'partialRight': require('./partialRight'),
- 'rearg': require('./rearg'),
- 'rest': require('./rest'),
- 'spread': require('./spread'),
- 'throttle': require('./throttle'),
- 'unary': require('./unary'),
- 'wrap': require('./wrap')
-};
diff --git a/node_modules/babel-core/node_modules/lodash/functions.js b/node_modules/babel-core/node_modules/lodash/functions.js
deleted file mode 100644
index 9722928..0000000
--- a/node_modules/babel-core/node_modules/lodash/functions.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var baseFunctions = require('./_baseFunctions'),
- keys = require('./keys');
-
-/**
- * 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));
-}
-
-module.exports = functions;
diff --git a/node_modules/babel-core/node_modules/lodash/functionsIn.js b/node_modules/babel-core/node_modules/lodash/functionsIn.js
deleted file mode 100644
index f00345d..0000000
--- a/node_modules/babel-core/node_modules/lodash/functionsIn.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var baseFunctions = require('./_baseFunctions'),
- keysIn = require('./keysIn');
-
-/**
- * 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));
-}
-
-module.exports = functionsIn;
diff --git a/node_modules/babel-core/node_modules/lodash/get.js b/node_modules/babel-core/node_modules/lodash/get.js
deleted file mode 100644
index 8805ff9..0000000
--- a/node_modules/babel-core/node_modules/lodash/get.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var baseGet = require('./_baseGet');
-
-/**
- * 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;
-}
-
-module.exports = get;
diff --git a/node_modules/babel-core/node_modules/lodash/groupBy.js b/node_modules/babel-core/node_modules/lodash/groupBy.js
deleted file mode 100644
index babf4f6..0000000
--- a/node_modules/babel-core/node_modules/lodash/groupBy.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var baseAssignValue = require('./_baseAssignValue'),
- createAggregator = require('./_createAggregator');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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]);
- }
-});
-
-module.exports = groupBy;
diff --git a/node_modules/babel-core/node_modules/lodash/gt.js b/node_modules/babel-core/node_modules/lodash/gt.js
deleted file mode 100644
index 3a66282..0000000
--- a/node_modules/babel-core/node_modules/lodash/gt.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var baseGt = require('./_baseGt'),
- createRelationalOperation = require('./_createRelationalOperation');
-
-/**
- * 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);
-
-module.exports = gt;
diff --git a/node_modules/babel-core/node_modules/lodash/gte.js b/node_modules/babel-core/node_modules/lodash/gte.js
deleted file mode 100644
index 4180a68..0000000
--- a/node_modules/babel-core/node_modules/lodash/gte.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var createRelationalOperation = require('./_createRelationalOperation');
-
-/**
- * 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;
-});
-
-module.exports = gte;
diff --git a/node_modules/babel-core/node_modules/lodash/has.js b/node_modules/babel-core/node_modules/lodash/has.js
deleted file mode 100644
index 34df55e..0000000
--- a/node_modules/babel-core/node_modules/lodash/has.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var baseHas = require('./_baseHas'),
- hasPath = require('./_hasPath');
-
-/**
- * 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);
-}
-
-module.exports = has;
diff --git a/node_modules/babel-core/node_modules/lodash/hasIn.js b/node_modules/babel-core/node_modules/lodash/hasIn.js
deleted file mode 100644
index 06a3686..0000000
--- a/node_modules/babel-core/node_modules/lodash/hasIn.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var baseHasIn = require('./_baseHasIn'),
- hasPath = require('./_hasPath');
-
-/**
- * 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);
-}
-
-module.exports = hasIn;
diff --git a/node_modules/babel-core/node_modules/lodash/head.js b/node_modules/babel-core/node_modules/lodash/head.js
deleted file mode 100644
index dee9d1f..0000000
--- a/node_modules/babel-core/node_modules/lodash/head.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = head;
diff --git a/node_modules/babel-core/node_modules/lodash/identity.js b/node_modules/babel-core/node_modules/lodash/identity.js
deleted file mode 100644
index 2d5d963..0000000
--- a/node_modules/babel-core/node_modules/lodash/identity.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * This method returns the first argument it receives.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Util
- * @param {*} value Any value.
- * @returns {*} Returns `value`.
- * @example
- *
- * var object = { 'a': 1 };
- *
- * console.log(_.identity(object) === object);
- * // => true
- */
-function identity(value) {
- return value;
-}
-
-module.exports = identity;
diff --git a/node_modules/babel-core/node_modules/lodash/inRange.js b/node_modules/babel-core/node_modules/lodash/inRange.js
deleted file mode 100644
index f20728d..0000000
--- a/node_modules/babel-core/node_modules/lodash/inRange.js
+++ /dev/null
@@ -1,55 +0,0 @@
-var baseInRange = require('./_baseInRange'),
- toFinite = require('./toFinite'),
- toNumber = require('./toNumber');
-
-/**
- * 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);
-}
-
-module.exports = inRange;
diff --git a/node_modules/babel-core/node_modules/lodash/includes.js b/node_modules/babel-core/node_modules/lodash/includes.js
deleted file mode 100644
index ae0deed..0000000
--- a/node_modules/babel-core/node_modules/lodash/includes.js
+++ /dev/null
@@ -1,53 +0,0 @@
-var baseIndexOf = require('./_baseIndexOf'),
- isArrayLike = require('./isArrayLike'),
- isString = require('./isString'),
- toInteger = require('./toInteger'),
- values = require('./values');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max;
-
-/**
- * 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);
-}
-
-module.exports = includes;
diff --git a/node_modules/babel-core/node_modules/lodash/index.js b/node_modules/babel-core/node_modules/lodash/index.js
deleted file mode 100644
index 5d063e2..0000000
--- a/node_modules/babel-core/node_modules/lodash/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lodash');
\ No newline at end of file
diff --git a/node_modules/babel-core/node_modules/lodash/indexOf.js b/node_modules/babel-core/node_modules/lodash/indexOf.js
deleted file mode 100644
index 3c644af..0000000
--- a/node_modules/babel-core/node_modules/lodash/indexOf.js
+++ /dev/null
@@ -1,42 +0,0 @@
-var baseIndexOf = require('./_baseIndexOf'),
- toInteger = require('./toInteger');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max;
-
-/**
- * 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);
-}
-
-module.exports = indexOf;
diff --git a/node_modules/babel-core/node_modules/lodash/initial.js b/node_modules/babel-core/node_modules/lodash/initial.js
deleted file mode 100644
index f47fc50..0000000
--- a/node_modules/babel-core/node_modules/lodash/initial.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var baseSlice = require('./_baseSlice');
-
-/**
- * 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) : [];
-}
-
-module.exports = initial;
diff --git a/node_modules/babel-core/node_modules/lodash/intersection.js b/node_modules/babel-core/node_modules/lodash/intersection.js
deleted file mode 100644
index a94c135..0000000
--- a/node_modules/babel-core/node_modules/lodash/intersection.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var arrayMap = require('./_arrayMap'),
- baseIntersection = require('./_baseIntersection'),
- baseRest = require('./_baseRest'),
- castArrayLikeObject = require('./_castArrayLikeObject');
-
-/**
- * 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)
- : [];
-});
-
-module.exports = intersection;
diff --git a/node_modules/babel-core/node_modules/lodash/intersectionBy.js b/node_modules/babel-core/node_modules/lodash/intersectionBy.js
deleted file mode 100644
index 31461aa..0000000
--- a/node_modules/babel-core/node_modules/lodash/intersectionBy.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var arrayMap = require('./_arrayMap'),
- baseIntersection = require('./_baseIntersection'),
- baseIteratee = require('./_baseIteratee'),
- baseRest = require('./_baseRest'),
- castArrayLikeObject = require('./_castArrayLikeObject'),
- last = require('./last');
-
-/**
- * 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, baseIteratee(iteratee, 2))
- : [];
-});
-
-module.exports = intersectionBy;
diff --git a/node_modules/babel-core/node_modules/lodash/intersectionWith.js b/node_modules/babel-core/node_modules/lodash/intersectionWith.js
deleted file mode 100644
index 63cabfa..0000000
--- a/node_modules/babel-core/node_modules/lodash/intersectionWith.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var arrayMap = require('./_arrayMap'),
- baseIntersection = require('./_baseIntersection'),
- baseRest = require('./_baseRest'),
- castArrayLikeObject = require('./_castArrayLikeObject'),
- last = require('./last');
-
-/**
- * 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)
- : [];
-});
-
-module.exports = intersectionWith;
diff --git a/node_modules/babel-core/node_modules/lodash/invert.js b/node_modules/babel-core/node_modules/lodash/invert.js
deleted file mode 100644
index 21d10ab..0000000
--- a/node_modules/babel-core/node_modules/lodash/invert.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var constant = require('./constant'),
- createInverter = require('./_createInverter'),
- identity = require('./identity');
-
-/**
- * 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) {
- result[value] = key;
-}, constant(identity));
-
-module.exports = invert;
diff --git a/node_modules/babel-core/node_modules/lodash/invertBy.js b/node_modules/babel-core/node_modules/lodash/invertBy.js
deleted file mode 100644
index e5ba0f7..0000000
--- a/node_modules/babel-core/node_modules/lodash/invertBy.js
+++ /dev/null
@@ -1,44 +0,0 @@
-var baseIteratee = require('./_baseIteratee'),
- createInverter = require('./_createInverter');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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 (hasOwnProperty.call(result, value)) {
- result[value].push(key);
- } else {
- result[value] = [key];
- }
-}, baseIteratee);
-
-module.exports = invertBy;
diff --git a/node_modules/babel-core/node_modules/lodash/invoke.js b/node_modules/babel-core/node_modules/lodash/invoke.js
deleted file mode 100644
index 97d51eb..0000000
--- a/node_modules/babel-core/node_modules/lodash/invoke.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var baseInvoke = require('./_baseInvoke'),
- baseRest = require('./_baseRest');
-
-/**
- * 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);
-
-module.exports = invoke;
diff --git a/node_modules/babel-core/node_modules/lodash/invokeMap.js b/node_modules/babel-core/node_modules/lodash/invokeMap.js
deleted file mode 100644
index 8da5126..0000000
--- a/node_modules/babel-core/node_modules/lodash/invokeMap.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var apply = require('./_apply'),
- baseEach = require('./_baseEach'),
- baseInvoke = require('./_baseInvoke'),
- baseRest = require('./_baseRest'),
- isArrayLike = require('./isArrayLike');
-
-/**
- * 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;
-});
-
-module.exports = invokeMap;
diff --git a/node_modules/babel-core/node_modules/lodash/isArguments.js b/node_modules/babel-core/node_modules/lodash/isArguments.js
deleted file mode 100644
index 8b9ed66..0000000
--- a/node_modules/babel-core/node_modules/lodash/isArguments.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var baseIsArguments = require('./_baseIsArguments'),
- isObjectLike = require('./isObjectLike');
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/** Built-in value references. */
-var propertyIsEnumerable = objectProto.propertyIsEnumerable;
-
-/**
- * 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');
-};
-
-module.exports = isArguments;
diff --git a/node_modules/babel-core/node_modules/lodash/isArray.js b/node_modules/babel-core/node_modules/lodash/isArray.js
deleted file mode 100644
index 88ab55f..0000000
--- a/node_modules/babel-core/node_modules/lodash/isArray.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * 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;
-
-module.exports = isArray;
diff --git a/node_modules/babel-core/node_modules/lodash/isArrayBuffer.js b/node_modules/babel-core/node_modules/lodash/isArrayBuffer.js
deleted file mode 100644
index 12904a6..0000000
--- a/node_modules/babel-core/node_modules/lodash/isArrayBuffer.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var baseIsArrayBuffer = require('./_baseIsArrayBuffer'),
- baseUnary = require('./_baseUnary'),
- nodeUtil = require('./_nodeUtil');
-
-/* Node.js helper references. */
-var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer;
-
-/**
- * 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;
-
-module.exports = isArrayBuffer;
diff --git a/node_modules/babel-core/node_modules/lodash/isArrayLike.js b/node_modules/babel-core/node_modules/lodash/isArrayLike.js
deleted file mode 100644
index 0f96680..0000000
--- a/node_modules/babel-core/node_modules/lodash/isArrayLike.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var isFunction = require('./isFunction'),
- isLength = require('./isLength');
-
-/**
- * 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);
-}
-
-module.exports = isArrayLike;
diff --git a/node_modules/babel-core/node_modules/lodash/isArrayLikeObject.js b/node_modules/babel-core/node_modules/lodash/isArrayLikeObject.js
deleted file mode 100644
index 6c4812a..0000000
--- a/node_modules/babel-core/node_modules/lodash/isArrayLikeObject.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var isArrayLike = require('./isArrayLike'),
- isObjectLike = require('./isObjectLike');
-
-/**
- * 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);
-}
-
-module.exports = isArrayLikeObject;
diff --git a/node_modules/babel-core/node_modules/lodash/isBoolean.js b/node_modules/babel-core/node_modules/lodash/isBoolean.js
deleted file mode 100644
index a43ed4b..0000000
--- a/node_modules/babel-core/node_modules/lodash/isBoolean.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var boolTag = '[object Boolean]';
-
-/**
- * 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);
-}
-
-module.exports = isBoolean;
diff --git a/node_modules/babel-core/node_modules/lodash/isBuffer.js b/node_modules/babel-core/node_modules/lodash/isBuffer.js
deleted file mode 100644
index c103cc7..0000000
--- a/node_modules/babel-core/node_modules/lodash/isBuffer.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var root = require('./_root'),
- stubFalse = require('./stubFalse');
-
-/** 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;
-
-/** Built-in value references. */
-var Buffer = moduleExports ? root.Buffer : undefined;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;
-
-/**
- * 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;
-
-module.exports = isBuffer;
diff --git a/node_modules/babel-core/node_modules/lodash/isDate.js b/node_modules/babel-core/node_modules/lodash/isDate.js
deleted file mode 100644
index 7f0209f..0000000
--- a/node_modules/babel-core/node_modules/lodash/isDate.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var baseIsDate = require('./_baseIsDate'),
- baseUnary = require('./_baseUnary'),
- nodeUtil = require('./_nodeUtil');
-
-/* Node.js helper references. */
-var nodeIsDate = nodeUtil && nodeUtil.isDate;
-
-/**
- * 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;
-
-module.exports = isDate;
diff --git a/node_modules/babel-core/node_modules/lodash/isElement.js b/node_modules/babel-core/node_modules/lodash/isElement.js
deleted file mode 100644
index 76ae29c..0000000
--- a/node_modules/babel-core/node_modules/lodash/isElement.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var isObjectLike = require('./isObjectLike'),
- isPlainObject = require('./isPlainObject');
-
-/**
- * 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);
-}
-
-module.exports = isElement;
diff --git a/node_modules/babel-core/node_modules/lodash/isEmpty.js b/node_modules/babel-core/node_modules/lodash/isEmpty.js
deleted file mode 100644
index 3597294..0000000
--- a/node_modules/babel-core/node_modules/lodash/isEmpty.js
+++ /dev/null
@@ -1,77 +0,0 @@
-var baseKeys = require('./_baseKeys'),
- getTag = require('./_getTag'),
- isArguments = require('./isArguments'),
- isArray = require('./isArray'),
- isArrayLike = require('./isArrayLike'),
- isBuffer = require('./isBuffer'),
- isPrototype = require('./_isPrototype'),
- isTypedArray = require('./isTypedArray');
-
-/** `Object#toString` result references. */
-var mapTag = '[object Map]',
- setTag = '[object Set]';
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * 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;
-}
-
-module.exports = isEmpty;
diff --git a/node_modules/babel-core/node_modules/lodash/isEqual.js b/node_modules/babel-core/node_modules/lodash/isEqual.js
deleted file mode 100644
index 5e23e76..0000000
--- a/node_modules/babel-core/node_modules/lodash/isEqual.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var baseIsEqual = require('./_baseIsEqual');
-
-/**
- * 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);
-}
-
-module.exports = isEqual;
diff --git a/node_modules/babel-core/node_modules/lodash/isEqualWith.js b/node_modules/babel-core/node_modules/lodash/isEqualWith.js
deleted file mode 100644
index 21bdc7f..0000000
--- a/node_modules/babel-core/node_modules/lodash/isEqualWith.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var baseIsEqual = require('./_baseIsEqual');
-
-/**
- * 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;
-}
-
-module.exports = isEqualWith;
diff --git a/node_modules/babel-core/node_modules/lodash/isError.js b/node_modules/babel-core/node_modules/lodash/isError.js
deleted file mode 100644
index b4f41e0..0000000
--- a/node_modules/babel-core/node_modules/lodash/isError.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- isObjectLike = require('./isObjectLike'),
- isPlainObject = require('./isPlainObject');
-
-/** `Object#toString` result references. */
-var domExcTag = '[object DOMException]',
- errorTag = '[object Error]';
-
-/**
- * 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));
-}
-
-module.exports = isError;
diff --git a/node_modules/babel-core/node_modules/lodash/isFinite.js b/node_modules/babel-core/node_modules/lodash/isFinite.js
deleted file mode 100644
index 601842b..0000000
--- a/node_modules/babel-core/node_modules/lodash/isFinite.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var root = require('./_root');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeIsFinite = root.isFinite;
-
-/**
- * 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);
-}
-
-module.exports = isFinite;
diff --git a/node_modules/babel-core/node_modules/lodash/isFunction.js b/node_modules/babel-core/node_modules/lodash/isFunction.js
deleted file mode 100644
index 907a8cd..0000000
--- a/node_modules/babel-core/node_modules/lodash/isFunction.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- isObject = require('./isObject');
-
-/** `Object#toString` result references. */
-var asyncTag = '[object AsyncFunction]',
- funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- proxyTag = '[object Proxy]';
-
-/**
- * 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;
-}
-
-module.exports = isFunction;
diff --git a/node_modules/babel-core/node_modules/lodash/isInteger.js b/node_modules/babel-core/node_modules/lodash/isInteger.js
deleted file mode 100644
index 66aa87d..0000000
--- a/node_modules/babel-core/node_modules/lodash/isInteger.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var toInteger = require('./toInteger');
-
-/**
- * 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);
-}
-
-module.exports = isInteger;
diff --git a/node_modules/babel-core/node_modules/lodash/isLength.js b/node_modules/babel-core/node_modules/lodash/isLength.js
deleted file mode 100644
index 3a95caa..0000000
--- a/node_modules/babel-core/node_modules/lodash/isLength.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/** Used as references for various `Number` constants. */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/**
- * 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;
-}
-
-module.exports = isLength;
diff --git a/node_modules/babel-core/node_modules/lodash/isMap.js b/node_modules/babel-core/node_modules/lodash/isMap.js
deleted file mode 100644
index 44f8517..0000000
--- a/node_modules/babel-core/node_modules/lodash/isMap.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var baseIsMap = require('./_baseIsMap'),
- baseUnary = require('./_baseUnary'),
- nodeUtil = require('./_nodeUtil');
-
-/* Node.js helper references. */
-var nodeIsMap = nodeUtil && nodeUtil.isMap;
-
-/**
- * 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;
-
-module.exports = isMap;
diff --git a/node_modules/babel-core/node_modules/lodash/isMatch.js b/node_modules/babel-core/node_modules/lodash/isMatch.js
deleted file mode 100644
index 9773a18..0000000
--- a/node_modules/babel-core/node_modules/lodash/isMatch.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var baseIsMatch = require('./_baseIsMatch'),
- getMatchData = require('./_getMatchData');
-
-/**
- * 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));
-}
-
-module.exports = isMatch;
diff --git a/node_modules/babel-core/node_modules/lodash/isMatchWith.js b/node_modules/babel-core/node_modules/lodash/isMatchWith.js
deleted file mode 100644
index 187b6a6..0000000
--- a/node_modules/babel-core/node_modules/lodash/isMatchWith.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var baseIsMatch = require('./_baseIsMatch'),
- getMatchData = require('./_getMatchData');
-
-/**
- * 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);
-}
-
-module.exports = isMatchWith;
diff --git a/node_modules/babel-core/node_modules/lodash/isNaN.js b/node_modules/babel-core/node_modules/lodash/isNaN.js
deleted file mode 100644
index 7d0d783..0000000
--- a/node_modules/babel-core/node_modules/lodash/isNaN.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var isNumber = require('./isNumber');
-
-/**
- * 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;
-}
-
-module.exports = isNaN;
diff --git a/node_modules/babel-core/node_modules/lodash/isNative.js b/node_modules/babel-core/node_modules/lodash/isNative.js
deleted file mode 100644
index f0cb8d5..0000000
--- a/node_modules/babel-core/node_modules/lodash/isNative.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var baseIsNative = require('./_baseIsNative'),
- isMaskable = require('./_isMaskable');
-
-/** Error message constants. */
-var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.';
-
-/**
- * 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);
-}
-
-module.exports = isNative;
diff --git a/node_modules/babel-core/node_modules/lodash/isNil.js b/node_modules/babel-core/node_modules/lodash/isNil.js
deleted file mode 100644
index 79f0505..0000000
--- a/node_modules/babel-core/node_modules/lodash/isNil.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = isNil;
diff --git a/node_modules/babel-core/node_modules/lodash/isNull.js b/node_modules/babel-core/node_modules/lodash/isNull.js
deleted file mode 100644
index c0a374d..0000000
--- a/node_modules/babel-core/node_modules/lodash/isNull.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = isNull;
diff --git a/node_modules/babel-core/node_modules/lodash/isNumber.js b/node_modules/babel-core/node_modules/lodash/isNumber.js
deleted file mode 100644
index cd34ee4..0000000
--- a/node_modules/babel-core/node_modules/lodash/isNumber.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var numberTag = '[object Number]';
-
-/**
- * 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);
-}
-
-module.exports = isNumber;
diff --git a/node_modules/babel-core/node_modules/lodash/isObject.js b/node_modules/babel-core/node_modules/lodash/isObject.js
deleted file mode 100644
index 1dc8939..0000000
--- a/node_modules/babel-core/node_modules/lodash/isObject.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * 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');
-}
-
-module.exports = isObject;
diff --git a/node_modules/babel-core/node_modules/lodash/isObjectLike.js b/node_modules/babel-core/node_modules/lodash/isObjectLike.js
deleted file mode 100644
index 301716b..0000000
--- a/node_modules/babel-core/node_modules/lodash/isObjectLike.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * 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';
-}
-
-module.exports = isObjectLike;
diff --git a/node_modules/babel-core/node_modules/lodash/isPlainObject.js b/node_modules/babel-core/node_modules/lodash/isPlainObject.js
deleted file mode 100644
index 2387373..0000000
--- a/node_modules/babel-core/node_modules/lodash/isPlainObject.js
+++ /dev/null
@@ -1,62 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- getPrototype = require('./_getPrototype'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var objectTag = '[object Object]';
-
-/** Used for built-in method references. */
-var funcProto = Function.prototype,
- objectProto = Object.prototype;
-
-/** 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 infer the `Object` constructor. */
-var objectCtorString = funcToString.call(Object);
-
-/**
- * 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;
-}
-
-module.exports = isPlainObject;
diff --git a/node_modules/babel-core/node_modules/lodash/isRegExp.js b/node_modules/babel-core/node_modules/lodash/isRegExp.js
deleted file mode 100644
index 76c9b6e..0000000
--- a/node_modules/babel-core/node_modules/lodash/isRegExp.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var baseIsRegExp = require('./_baseIsRegExp'),
- baseUnary = require('./_baseUnary'),
- nodeUtil = require('./_nodeUtil');
-
-/* Node.js helper references. */
-var nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;
-
-/**
- * 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;
-
-module.exports = isRegExp;
diff --git a/node_modules/babel-core/node_modules/lodash/isSafeInteger.js b/node_modules/babel-core/node_modules/lodash/isSafeInteger.js
deleted file mode 100644
index 2a48526..0000000
--- a/node_modules/babel-core/node_modules/lodash/isSafeInteger.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var isInteger = require('./isInteger');
-
-/** Used as references for various `Number` constants. */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/**
- * 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;
-}
-
-module.exports = isSafeInteger;
diff --git a/node_modules/babel-core/node_modules/lodash/isSet.js b/node_modules/babel-core/node_modules/lodash/isSet.js
deleted file mode 100644
index ab88bdf..0000000
--- a/node_modules/babel-core/node_modules/lodash/isSet.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var baseIsSet = require('./_baseIsSet'),
- baseUnary = require('./_baseUnary'),
- nodeUtil = require('./_nodeUtil');
-
-/* Node.js helper references. */
-var nodeIsSet = nodeUtil && nodeUtil.isSet;
-
-/**
- * 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;
-
-module.exports = isSet;
diff --git a/node_modules/babel-core/node_modules/lodash/isString.js b/node_modules/babel-core/node_modules/lodash/isString.js
deleted file mode 100644
index 627eb9c..0000000
--- a/node_modules/babel-core/node_modules/lodash/isString.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- isArray = require('./isArray'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var stringTag = '[object String]';
-
-/**
- * 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);
-}
-
-module.exports = isString;
diff --git a/node_modules/babel-core/node_modules/lodash/isSymbol.js b/node_modules/babel-core/node_modules/lodash/isSymbol.js
deleted file mode 100644
index dfb60b9..0000000
--- a/node_modules/babel-core/node_modules/lodash/isSymbol.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var symbolTag = '[object Symbol]';
-
-/**
- * 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);
-}
-
-module.exports = isSymbol;
diff --git a/node_modules/babel-core/node_modules/lodash/isTypedArray.js b/node_modules/babel-core/node_modules/lodash/isTypedArray.js
deleted file mode 100644
index da3f8dd..0000000
--- a/node_modules/babel-core/node_modules/lodash/isTypedArray.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var baseIsTypedArray = require('./_baseIsTypedArray'),
- baseUnary = require('./_baseUnary'),
- nodeUtil = require('./_nodeUtil');
-
-/* Node.js helper references. */
-var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
-
-/**
- * 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;
-
-module.exports = isTypedArray;
diff --git a/node_modules/babel-core/node_modules/lodash/isUndefined.js b/node_modules/babel-core/node_modules/lodash/isUndefined.js
deleted file mode 100644
index 377d121..0000000
--- a/node_modules/babel-core/node_modules/lodash/isUndefined.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = isUndefined;
diff --git a/node_modules/babel-core/node_modules/lodash/isWeakMap.js b/node_modules/babel-core/node_modules/lodash/isWeakMap.js
deleted file mode 100644
index 8d36f66..0000000
--- a/node_modules/babel-core/node_modules/lodash/isWeakMap.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var getTag = require('./_getTag'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var weakMapTag = '[object WeakMap]';
-
-/**
- * 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;
-}
-
-module.exports = isWeakMap;
diff --git a/node_modules/babel-core/node_modules/lodash/isWeakSet.js b/node_modules/babel-core/node_modules/lodash/isWeakSet.js
deleted file mode 100644
index e628b26..0000000
--- a/node_modules/babel-core/node_modules/lodash/isWeakSet.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var baseGetTag = require('./_baseGetTag'),
- isObjectLike = require('./isObjectLike');
-
-/** `Object#toString` result references. */
-var weakSetTag = '[object WeakSet]';
-
-/**
- * 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;
-}
-
-module.exports = isWeakSet;
diff --git a/node_modules/babel-core/node_modules/lodash/iteratee.js b/node_modules/babel-core/node_modules/lodash/iteratee.js
deleted file mode 100644
index 61b73a8..0000000
--- a/node_modules/babel-core/node_modules/lodash/iteratee.js
+++ /dev/null
@@ -1,53 +0,0 @@
-var baseClone = require('./_baseClone'),
- baseIteratee = require('./_baseIteratee');
-
-/** Used to compose bitmasks for cloning. */
-var CLONE_DEEP_FLAG = 1;
-
-/**
- * Creates a function that invokes `func` with the arguments of the created
- * function. If `func` is a property name, the created function returns the
- * property value for a given element. If `func` is an array or object, the
- * created function returns `true` for elements that contain the equivalent
- * source properties, otherwise it returns `false`.
- *
- * @static
- * @since 4.0.0
- * @memberOf _
- * @category Util
- * @param {*} [func=_.identity] The value to convert to a callback.
- * @returns {Function} Returns the callback.
- * @example
- *
- * var users = [
- * { 'user': 'barney', 'age': 36, 'active': true },
- * { 'user': 'fred', 'age': 40, 'active': false }
- * ];
- *
- * // The `_.matches` iteratee shorthand.
- * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));
- * // => [{ 'user': 'barney', 'age': 36, 'active': true }]
- *
- * // The `_.matchesProperty` iteratee shorthand.
- * _.filter(users, _.iteratee(['user', 'fred']));
- * // => [{ 'user': 'fred', 'age': 40 }]
- *
- * // The `_.property` iteratee shorthand.
- * _.map(users, _.iteratee('user'));
- * // => ['barney', 'fred']
- *
- * // Create custom iteratee shorthands.
- * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {
- * return !_.isRegExp(func) ? iteratee(func) : function(string) {
- * return func.test(string);
- * };
- * });
- *
- * _.filter(['abc', 'def'], /ef/);
- * // => ['def']
- */
-function iteratee(func) {
- return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));
-}
-
-module.exports = iteratee;
diff --git a/node_modules/babel-core/node_modules/lodash/join.js b/node_modules/babel-core/node_modules/lodash/join.js
deleted file mode 100644
index 45de079..0000000
--- a/node_modules/babel-core/node_modules/lodash/join.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/** Used for built-in method references. */
-var arrayProto = Array.prototype;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeJoin = arrayProto.join;
-
-/**
- * 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);
-}
-
-module.exports = join;
diff --git a/node_modules/babel-core/node_modules/lodash/kebabCase.js b/node_modules/babel-core/node_modules/lodash/kebabCase.js
deleted file mode 100644
index 8a52be6..0000000
--- a/node_modules/babel-core/node_modules/lodash/kebabCase.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var createCompounder = require('./_createCompounder');
-
-/**
- * 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();
-});
-
-module.exports = kebabCase;
diff --git a/node_modules/babel-core/node_modules/lodash/keyBy.js b/node_modules/babel-core/node_modules/lodash/keyBy.js
deleted file mode 100644
index acc007a..0000000
--- a/node_modules/babel-core/node_modules/lodash/keyBy.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var baseAssignValue = require('./_baseAssignValue'),
- createAggregator = require('./_createAggregator');
-
-/**
- * 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);
-});
-
-module.exports = keyBy;
diff --git a/node_modules/babel-core/node_modules/lodash/keys.js b/node_modules/babel-core/node_modules/lodash/keys.js
deleted file mode 100644
index d143c71..0000000
--- a/node_modules/babel-core/node_modules/lodash/keys.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var arrayLikeKeys = require('./_arrayLikeKeys'),
- baseKeys = require('./_baseKeys'),
- isArrayLike = require('./isArrayLike');
-
-/**
- * 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);
-}
-
-module.exports = keys;
diff --git a/node_modules/babel-core/node_modules/lodash/keysIn.js b/node_modules/babel-core/node_modules/lodash/keysIn.js
deleted file mode 100644
index a62308f..0000000
--- a/node_modules/babel-core/node_modules/lodash/keysIn.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var arrayLikeKeys = require('./_arrayLikeKeys'),
- baseKeysIn = require('./_baseKeysIn'),
- isArrayLike = require('./isArrayLike');
-
-/**
- * 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);
-}
-
-module.exports = keysIn;
diff --git a/node_modules/babel-core/node_modules/lodash/lang.js b/node_modules/babel-core/node_modules/lodash/lang.js
deleted file mode 100644
index a396216..0000000
--- a/node_modules/babel-core/node_modules/lodash/lang.js
+++ /dev/null
@@ -1,58 +0,0 @@
-module.exports = {
- 'castArray': require('./castArray'),
- 'clone': require('./clone'),
- 'cloneDeep': require('./cloneDeep'),
- 'cloneDeepWith': require('./cloneDeepWith'),
- 'cloneWith': require('./cloneWith'),
- 'conformsTo': require('./conformsTo'),
- 'eq': require('./eq'),
- 'gt': require('./gt'),
- 'gte': require('./gte'),
- 'isArguments': require('./isArguments'),
- 'isArray': require('./isArray'),
- 'isArrayBuffer': require('./isArrayBuffer'),
- 'isArrayLike': require('./isArrayLike'),
- 'isArrayLikeObject': require('./isArrayLikeObject'),
- 'isBoolean': require('./isBoolean'),
- 'isBuffer': require('./isBuffer'),
- 'isDate': require('./isDate'),
- 'isElement': require('./isElement'),
- 'isEmpty': require('./isEmpty'),
- 'isEqual': require('./isEqual'),
- 'isEqualWith': require('./isEqualWith'),
- 'isError': require('./isError'),
- 'isFinite': require('./isFinite'),
- 'isFunction': require('./isFunction'),
- 'isInteger': require('./isInteger'),
- 'isLength': require('./isLength'),
- 'isMap': require('./isMap'),
- 'isMatch': require('./isMatch'),
- 'isMatchWith': require('./isMatchWith'),
- 'isNaN': require('./isNaN'),
- 'isNative': require('./isNative'),
- 'isNil': require('./isNil'),
- 'isNull': require('./isNull'),
- 'isNumber': require('./isNumber'),
- 'isObject': require('./isObject'),
- 'isObjectLike': require('./isObjectLike'),
- 'isPlainObject': require('./isPlainObject'),
- 'isRegExp': require('./isRegExp'),
- 'isSafeInteger': require('./isSafeInteger'),
- 'isSet': require('./isSet'),
- 'isString': require('./isString'),
- 'isSymbol': require('./isSymbol'),
- 'isTypedArray': require('./isTypedArray'),
- 'isUndefined': require('./isUndefined'),
- 'isWeakMap': require('./isWeakMap'),
- 'isWeakSet': require('./isWeakSet'),
- 'lt': require('./lt'),
- 'lte': require('./lte'),
- 'toArray': require('./toArray'),
- 'toFinite': require('./toFinite'),
- 'toInteger': require('./toInteger'),
- 'toLength': require('./toLength'),
- 'toNumber': require('./toNumber'),
- 'toPlainObject': require('./toPlainObject'),
- 'toSafeInteger': require('./toSafeInteger'),
- 'toString': require('./toString')
-};
diff --git a/node_modules/babel-core/node_modules/lodash/last.js b/node_modules/babel-core/node_modules/lodash/last.js
deleted file mode 100644
index cad1eaf..0000000
--- a/node_modules/babel-core/node_modules/lodash/last.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * 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;
-}
-
-module.exports = last;
diff --git a/node_modules/babel-core/node_modules/lodash/lastIndexOf.js b/node_modules/babel-core/node_modules/lodash/lastIndexOf.js
deleted file mode 100644
index dabfb61..0000000
--- a/node_modules/babel-core/node_modules/lodash/lastIndexOf.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var baseFindIndex = require('./_baseFindIndex'),
- baseIsNaN = require('./_baseIsNaN'),
- strictLastIndexOf = require('./_strictLastIndexOf'),
- toInteger = require('./toInteger');
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max,
- nativeMin = Math.min;
-
-/**
- * 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);
-}
-
-module.exports = lastIndexOf;
diff --git a/node_modules/babel-core/node_modules/lodash/lodash.js b/node_modules/babel-core/node_modules/lodash/lodash.js
deleted file mode 100644
index b39ddce..0000000
--- a/node_modules/babel-core/node_modules/lodash/lodash.js
+++ /dev/null
@@ -1,17084 +0,0 @@
-/**
- * @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.4';
-
- /** 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*$/,
- reLeadingDot = /^\./,
- 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)',
- rsOrdUpper = '\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)',
- 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 {
- 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;
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Adds the key-value `pair` to `map`.
- *
- * @private
- * @param {Object} map The map to modify.
- * @param {Array} pair The key-value pair to add.
- * @returns {Object} Returns `map`.
- */
- function addMapEntry(map, pair) {
- // Don't return `map.set` because it's not chainable in IE 11.
- map.set(pair[0], pair[1]);
- return map;
- }
-
- /**
- * Adds `value` to `set`.
- *
- * @private
- * @param {Object} set The set to modify.
- * @param {*} value The value to add.
- * @returns {Object} Returns `set`.
- */
- function addSetEntry(set, value) {
- // Don't return `set.add` because it's not chainable in IE 11.
- set.add(value);
- return set;
- }
-
- /**
- * 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;
- }
-
- /**
- * 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, baseClone, 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);
-
- 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(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 = object[key],
- srcValue = 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 `map`.
- *
- * @private
- * @param {Object} map The map to clone.
- * @param {Function} cloneFunc The function to clone values.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned map.
- */
- function cloneMap(map, isDeep, cloneFunc) {
- var array = isDeep ? cloneFunc(mapToArray(map), CLONE_DEEP_FLAG) : mapToArray(map);
- return arrayReduce(array, addMapEntry, new map.constructor);
- }
-
- /**
- * 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 `set`.
- *
- * @private
- * @param {Object} set The set to clone.
- * @param {Function} cloneFunc The function to clone values.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned set.
- */
- function cloneSet(set, isDeep, cloneFunc) {
- var array = isDeep ? cloneFunc(setToArray(set), CLONE_DEEP_FLAG) : setToArray(set);
- return arrayReduce(array, addSetEntry, new set.constructor);
- }
-
- /**
- * 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 = 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`, `Number`, `RegExp`, or `String`.
- *
- * @private
- * @param {Object} object The object to clone.
- * @param {string} tag The `toStringTag` of the object to clone.
- * @param {Function} cloneFunc The function to clone values.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the initialized clone.
- */
- function initCloneByTag(object, tag, cloneFunc, 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 cloneMap(object, isDeep, cloneFunc);
-
- case numberTag:
- case stringTag:
- return new Ctor(object);
-
- case regexpTag:
- return cloneRegExp(object);
-
- case setTag:
- return cloneSet(object, isDeep, cloneFunc);
-
- 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) {
- length = length == null ? MAX_SAFE_INTEGER : length;
- return !!length &&
- (typeof value == 'number' || 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 (reLeadingDot.test(string)) {
- result.push('');
- }
- string.replace(rePropName, function(match, number, quote, string) {
- result.push(quote ? string.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,
- result = wait - timeSinceLastCall;
-
- return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
- }
-
- 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(args) {
- args.push(undefined, customDefaultsAssignIn);
- return apply(assignInWith, undefined, args);
- });
-
- /**
- * 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) {
- 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 (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': '